code: def _update_limits_from_api(self):
          
          self.connect()
          self.connect_resource()
          logger.info("Querying EC2 DescribeAccountAttributes for limits")
          # no need to paginate
          attribs = self.conn.describe_account_attributes()
          for attrib in attribs['AccountAttributes']:
              aname = attrib['AttributeName']
              val = attrib['AttributeValues'][0]['AttributeValue']
              lname = None
              if aname == 'max-elastic-ips':
                  lname = 'Elastic IP addresses (EIPs)'
              elif aname == 'max-instances':
                  lname = 'Running On-Demand EC2 instances'
              elif aname == 'vpc-max-elastic-ips':
                  lname = 'VPC Elastic IP addresses (EIPs)'
              elif aname == 'vpc-max-security-groups-per-interface':
                  lname = 'VPC security groups per elastic network interface'
              if lname is not None:
                  if int(val) == 0:
                      continue
                  self.limits[lname]._set_api_limit(int(val))
          logger.debug("Done setting limits from API")
docs: Query EC2's DescribeAccountAttributes API action, and update limits
          with the quotas returned. Updates ``self.limits``.