def get_all_transit_gateway_route_tables( self, transit_gateway_route_table_ids=None, filters=None): transit_gateway_route_tables = list( self.transit_gateways_route_tables.values()) attr_pairs = ( ("default-association-route-table", "default_association_route_table"), ("default-propagation-route-table", "default_propagation_route_table"), ("state", "state"), ("transit-gateway-id", "transit_gateway_id"), ("transit-gateway-route-table-id", "id"), ) if transit_gateway_route_table_ids: transit_gateway_route_tables = [ transit_gateway_route_table for transit_gateway_route_table in transit_gateway_route_tables if transit_gateway_route_table.id in transit_gateway_route_table_ids ] result = transit_gateway_route_tables if filters: result = filter_resources(transit_gateway_route_tables, filters, attr_pairs) return result
def describe_managed_prefix_lists(self, prefix_list_ids=None, filters=None): managed_prefix_lists = list(self.managed_prefix_lists.copy().values()) attr_pairs = ( ("owner-id", "owner_id"), ("prefix-list-id", "id"), ("prefix-list-name", "prefix_list_name"), ) if prefix_list_ids: managed_prefix_lists = [ managed_prefix_list for managed_prefix_list in managed_prefix_lists if managed_prefix_list.id in prefix_list_ids ] result = managed_prefix_lists if filters: result = filter_resources(result, filters, attr_pairs) result = describe_tag_filter(filters, result) for item in result.copy(): if not item.delete_counter: self.managed_prefix_lists.pop(item.id, None) result.remove(item) if item.state == "delete-complete": item.delete_counter -= 1 return result
def get_all_transit_gateway_route_table_propagations( self, transit_gateway_route_table_id=None, filters=None): transit_gateway_route_tables = list( self.transit_gateways_route_tables.values()) if transit_gateway_route_tables: transit_gateway_route_tables = [ transit_gateway_route_table for transit_gateway_route_table in transit_gateway_route_tables if transit_gateway_route_table.id in transit_gateway_route_table_id ] attr_pairs = ( ("resource-id", "route_table_propagation", "resourceId"), ("resource-type", "route_table_propagation", "resourceType"), ( "transit-gateway-attachment-id", "route_table_propagation", "transitGatewayAttachmentId", ), ) result = transit_gateway_route_tables if filters: result = filter_resources(transit_gateway_route_tables, filters, attr_pairs) return result
def describe_transit_gateway_peering_attachments( self, transit_gateways_attachment_ids=None, filters=None): transit_gateway_attachments = list( self.transit_gateway_attachments.values()) attr_pairs = ( ("state", "state"), ("transit-gateway-attachment-id", "id"), ("local-owner-id", "requester_tgw_info", "ownerId"), ("remote-owner-id", "accepter_tgw_info", "ownerId"), ) if transit_gateways_attachment_ids: transit_gateway_attachments = [ transit_gateways_attachment for transit_gateways_attachment in transit_gateway_attachments if transit_gateways_attachment.id in transit_gateways_attachment_ids ] if filters: transit_gateway_attachments = filter_resources( transit_gateway_attachments, filters, attr_pairs) transit_gateway_attachments = describe_tag_filter( filters, transit_gateway_attachments) return transit_gateway_attachments
def describe_transit_gateway_vpc_attachments( self, transit_gateways_attachment_ids=None, filters=None): transit_gateway_attachments = list( self.transit_gateway_attachments.values()) attr_pairs = ( ("state", "state"), ("transit-gateway-attachment-id", "id"), ("transit-gateway-id", "transit_gateway_id"), ("vpc-id", "resource_id"), ) if (not transit_gateways_attachment_ids == [] and transit_gateways_attachment_ids is not None): transit_gateway_attachments = [ transit_gateways_attachment for transit_gateways_attachment in transit_gateway_attachments if transit_gateways_attachment.id in transit_gateways_attachment_ids ] result = transit_gateway_attachments if filters: result = filter_resources(transit_gateway_attachments, filters, attr_pairs) return result
def describe_availability_zones(self, filters=None): # We might not have any zones for the current region, if it was introduced recently zones = self.zones.get(self.region_name, []) attr_pairs = ( ("zone-id", "zone_id"), ("zone-type", "zone_type"), ("zone-name", "name"), ("region-name", "region_name"), ) result = zones if filters: result = filter_resources(zones, filters, attr_pairs) return result
def describe_transit_gateways(self, filters, transit_gateway_ids): transit_gateways = list(self.transit_gateways.copy().values()) if transit_gateway_ids: transit_gateways = [ item for item in transit_gateways if item.id in transit_gateway_ids ] attr_pairs = ( ("transit-gateway-id", "id"), ("state", "state"), ("owner-id", "owner_id"), ) result = transit_gateways if filters: result = filter_resources(transit_gateways, filters, attr_pairs) return result
def describe_carrier_gateways(self, ids=None, filters=None): carrier_gateways = list(self.carrier_gateways.values()) if ids: carrier_gateways = [ carrier_gateway for carrier_gateway in carrier_gateways if carrier_gateway.id in ids ] attr_pairs = ( ("carrier-gateway-id", "id"), ("state", "state"), ("vpc-id", "vpc_id"), ("owner-id", "owner_id"), ) result = carrier_gateways if filters: result = filter_resources(carrier_gateways, filters, attr_pairs) return result