| Index: tools/telemetry/third_party/gsutilz/third_party/boto/boto/vpc/__init__.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/vpc/__init__.py b/tools/telemetry/third_party/gsutilz/third_party/boto/boto/vpc/__init__.py
|
| deleted file mode 100644
|
| index 2c87adfc9ad2620c2477356e9fe04cbc7606cb6f..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/vpc/__init__.py
|
| +++ /dev/null
|
| @@ -1,1828 +0,0 @@
|
| -# Copyright (c) 2009 Mitch Garnaat http://garnaat.org/
|
| -#
|
| -# Permission is hereby granted, free of charge, to any person obtaining a
|
| -# copy of this software and associated documentation files (the
|
| -# "Software"), to deal in the Software without restriction, including
|
| -# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| -# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| -# persons to whom the Software is furnished to do so, subject to the fol-
|
| -# lowing conditions:
|
| -#
|
| -# The above copyright notice and this permission notice shall be included
|
| -# in all copies or substantial portions of the Software.
|
| -#
|
| -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| -# IN THE SOFTWARE.
|
| -
|
| -"""
|
| -Represents a connection to the EC2 service.
|
| -"""
|
| -
|
| -from boto.ec2.connection import EC2Connection
|
| -from boto.resultset import ResultSet
|
| -from boto.vpc.vpc import VPC
|
| -from boto.vpc.customergateway import CustomerGateway
|
| -from boto.vpc.networkacl import NetworkAcl
|
| -from boto.vpc.routetable import RouteTable
|
| -from boto.vpc.internetgateway import InternetGateway
|
| -from boto.vpc.vpngateway import VpnGateway, Attachment
|
| -from boto.vpc.dhcpoptions import DhcpOptions
|
| -from boto.vpc.subnet import Subnet
|
| -from boto.vpc.vpnconnection import VpnConnection
|
| -from boto.vpc.vpc_peering_connection import VpcPeeringConnection
|
| -from boto.ec2 import RegionData
|
| -from boto.regioninfo import RegionInfo, get_regions
|
| -
|
| -
|
| -def regions(**kw_params):
|
| - """
|
| - Get all available regions for the EC2 service.
|
| - You may pass any of the arguments accepted by the VPCConnection
|
| - object's constructor as keyword arguments and they will be
|
| - passed along to the VPCConnection object.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.ec2.regioninfo.RegionInfo`
|
| - """
|
| - return get_regions('ec2', connection_cls=VPCConnection)
|
| -
|
| -
|
| -def connect_to_region(region_name, **kw_params):
|
| - """
|
| - Given a valid region name, return a
|
| - :class:`boto.vpc.VPCConnection`.
|
| - Any additional parameters after the region_name are passed on to
|
| - the connect method of the region object.
|
| -
|
| - :type: str
|
| - :param region_name: The name of the region to connect to.
|
| -
|
| - :rtype: :class:`boto.vpc.VPCConnection` or ``None``
|
| - :return: A connection to the given region, or None if an invalid region
|
| - name is given
|
| - """
|
| - for region in regions(**kw_params):
|
| - if region.name == region_name:
|
| - return region.connect(**kw_params)
|
| - return None
|
| -
|
| -
|
| -class VPCConnection(EC2Connection):
|
| -
|
| - # VPC methods
|
| -
|
| - def get_all_vpcs(self, vpc_ids=None, filters=None, dry_run=False):
|
| - """
|
| - Retrieve information about your VPCs. You can filter results to
|
| - return information only about those VPCs that match your search
|
| - parameters. Otherwise, all VPCs associated with your account
|
| - are returned.
|
| -
|
| - :type vpc_ids: list
|
| - :param vpc_ids: A list of strings with the desired VPC ID's
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| - Possible filter keys are:
|
| -
|
| - * *state* - a list of states of the VPC (pending or available)
|
| - * *cidrBlock* - a list CIDR blocks of the VPC
|
| - * *dhcpOptionsId* - a list of IDs of a set of DHCP options
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.vpc.VPC`
|
| - """
|
| - params = {}
|
| - if vpc_ids:
|
| - self.build_list_params(params, vpc_ids, 'VpcId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeVpcs', params, [('item', VPC)])
|
| -
|
| - def create_vpc(self, cidr_block, instance_tenancy=None, dry_run=False):
|
| - """
|
| - Create a new Virtual Private Cloud.
|
| -
|
| - :type cidr_block: str
|
| - :param cidr_block: A valid CIDR block
|
| -
|
| - :type instance_tenancy: str
|
| - :param instance_tenancy: The supported tenancy options for instances
|
| - launched into the VPC. Valid values are 'default' and 'dedicated'.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created VPC
|
| - :return: A :class:`boto.vpc.vpc.VPC` object
|
| - """
|
| - params = {'CidrBlock': cidr_block}
|
| - if instance_tenancy:
|
| - params['InstanceTenancy'] = instance_tenancy
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateVpc', params, VPC)
|
| -
|
| - def delete_vpc(self, vpc_id, dry_run=False):
|
| - """
|
| - Delete a Virtual Private Cloud.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the vpc to be deleted.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteVpc', params)
|
| -
|
| - def modify_vpc_attribute(self, vpc_id,
|
| - enable_dns_support=None,
|
| - enable_dns_hostnames=None, dry_run=False):
|
| - """
|
| - Modifies the specified attribute of the specified VPC.
|
| - You can only modify one attribute at a time.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the vpc to be deleted.
|
| -
|
| - :type enable_dns_support: bool
|
| - :param enable_dns_support: Specifies whether the DNS server
|
| - provided by Amazon is enabled for the VPC.
|
| -
|
| - :type enable_dns_hostnames: bool
|
| - :param enable_dns_hostnames: Specifies whether DNS hostnames are
|
| - provided for the instances launched in this VPC. You can only
|
| - set this attribute to ``true`` if EnableDnsSupport
|
| - is also ``true``.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - """
|
| - params = {'VpcId': vpc_id}
|
| - if enable_dns_support is not None:
|
| - if enable_dns_support:
|
| - params['EnableDnsSupport.Value'] = 'true'
|
| - else:
|
| - params['EnableDnsSupport.Value'] = 'false'
|
| - if enable_dns_hostnames is not None:
|
| - if enable_dns_hostnames:
|
| - params['EnableDnsHostnames.Value'] = 'true'
|
| - else:
|
| - params['EnableDnsHostnames.Value'] = 'false'
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('ModifyVpcAttribute', params)
|
| -
|
| - # Route Tables
|
| -
|
| - def get_all_route_tables(self, route_table_ids=None, filters=None,
|
| - dry_run=False):
|
| - """
|
| - Retrieve information about your routing tables. You can filter results
|
| - to return information only about those route tables that match your
|
| - search parameters. Otherwise, all route tables associated with your
|
| - account are returned.
|
| -
|
| - :type route_table_ids: list
|
| - :param route_table_ids: A list of strings with the desired route table
|
| - IDs.
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.routetable.RouteTable`
|
| - """
|
| - params = {}
|
| - if route_table_ids:
|
| - self.build_list_params(params, route_table_ids, "RouteTableId")
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeRouteTables', params,
|
| - [('item', RouteTable)])
|
| -
|
| - def associate_route_table(self, route_table_id, subnet_id, dry_run=False):
|
| - """
|
| - Associates a route table with a specific subnet.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the route table to associate.
|
| -
|
| - :type subnet_id: str
|
| - :param subnet_id: The ID of the subnet to associate with.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: str
|
| - :return: The ID of the association created
|
| - """
|
| - params = {
|
| - 'RouteTableId': route_table_id,
|
| - 'SubnetId': subnet_id
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - result = self.get_object('AssociateRouteTable', params, ResultSet)
|
| - return result.associationId
|
| -
|
| - def disassociate_route_table(self, association_id, dry_run=False):
|
| - """
|
| - Removes an association from a route table. This will cause all subnets
|
| - that would've used this association to now use the main routing
|
| - association instead.
|
| -
|
| - :type association_id: str
|
| - :param association_id: The ID of the association to disassociate.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'AssociationId': association_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DisassociateRouteTable', params)
|
| -
|
| - def create_route_table(self, vpc_id, dry_run=False):
|
| - """
|
| - Creates a new route table.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The VPC ID to associate this route table with.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created route table
|
| - :return: A :class:`boto.vpc.routetable.RouteTable` object
|
| - """
|
| - params = {'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateRouteTable', params, RouteTable)
|
| -
|
| - def delete_route_table(self, route_table_id, dry_run=False):
|
| - """
|
| - Delete a route table.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the route table to delete.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'RouteTableId': route_table_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteRouteTable', params)
|
| -
|
| - def _replace_route_table_association(self, association_id,
|
| - route_table_id, dry_run=False):
|
| - """
|
| - Helper function for replace_route_table_association and
|
| - replace_route_table_association_with_assoc. Should not be used directly.
|
| -
|
| - :type association_id: str
|
| - :param association_id: The ID of the existing association to replace.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The route table to ID to be used in the
|
| - association.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: ResultSet
|
| - :return: ResultSet of Amazon resposne
|
| - """
|
| - params = {
|
| - 'AssociationId': association_id,
|
| - 'RouteTableId': route_table_id
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('ReplaceRouteTableAssociation', params,
|
| - ResultSet)
|
| -
|
| - def replace_route_table_assocation(self, association_id,
|
| - route_table_id, dry_run=False):
|
| - """
|
| - Replaces a route association with a new route table. This can be
|
| - used to replace the 'main' route table by using the main route
|
| - table association instead of the more common subnet type
|
| - association.
|
| -
|
| - NOTE: It may be better to use replace_route_table_association_with_assoc
|
| - instead of this function; this function does not return the new
|
| - association ID. This function is retained for backwards compatibility.
|
| -
|
| -
|
| - :type association_id: str
|
| - :param association_id: The ID of the existing association to replace.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The route table to ID to be used in the
|
| - association.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - return self._replace_route_table_association(
|
| - association_id, route_table_id, dry_run=dry_run).status
|
| -
|
| - def replace_route_table_association_with_assoc(self, association_id,
|
| - route_table_id,
|
| - dry_run=False):
|
| - """
|
| - Replaces a route association with a new route table. This can be
|
| - used to replace the 'main' route table by using the main route
|
| - table association instead of the more common subnet type
|
| - association. Returns the new association ID.
|
| -
|
| - :type association_id: str
|
| - :param association_id: The ID of the existing association to replace.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The route table to ID to be used in the
|
| - association.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: str
|
| - :return: New association ID
|
| - """
|
| - return self._replace_route_table_association(
|
| - association_id, route_table_id, dry_run=dry_run).newAssociationId
|
| -
|
| - def create_route(self, route_table_id, destination_cidr_block,
|
| - gateway_id=None, instance_id=None, interface_id=None,
|
| - vpc_peering_connection_id=None,
|
| - dry_run=False):
|
| - """
|
| - Creates a new route in the route table within a VPC. The route's target
|
| - can be either a gateway attached to the VPC or a NAT instance in the
|
| - VPC.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the route table for the route.
|
| -
|
| - :type destination_cidr_block: str
|
| - :param destination_cidr_block: The CIDR address block used for the
|
| - destination match.
|
| -
|
| - :type gateway_id: str
|
| - :param gateway_id: The ID of the gateway attached to your VPC.
|
| -
|
| - :type instance_id: str
|
| - :param instance_id: The ID of a NAT instance in your VPC.
|
| -
|
| - :type interface_id: str
|
| - :param interface_id: Allows routing to network interface attachments.
|
| -
|
| - :type vpc_peering_connection_id: str
|
| - :param vpc_peering_connection_id: Allows routing to VPC peering
|
| - connection.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'RouteTableId': route_table_id,
|
| - 'DestinationCidrBlock': destination_cidr_block
|
| - }
|
| -
|
| - if gateway_id is not None:
|
| - params['GatewayId'] = gateway_id
|
| - elif instance_id is not None:
|
| - params['InstanceId'] = instance_id
|
| - elif interface_id is not None:
|
| - params['NetworkInterfaceId'] = interface_id
|
| - elif vpc_peering_connection_id is not None:
|
| - params['VpcPeeringConnectionId'] = vpc_peering_connection_id
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| -
|
| - return self.get_status('CreateRoute', params)
|
| -
|
| - def replace_route(self, route_table_id, destination_cidr_block,
|
| - gateway_id=None, instance_id=None, interface_id=None,
|
| - vpc_peering_connection_id=None,
|
| - dry_run=False):
|
| - """
|
| - Replaces an existing route within a route table in a VPC.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the route table for the route.
|
| -
|
| - :type destination_cidr_block: str
|
| - :param destination_cidr_block: The CIDR address block used for the
|
| - destination match.
|
| -
|
| - :type gateway_id: str
|
| - :param gateway_id: The ID of the gateway attached to your VPC.
|
| -
|
| - :type instance_id: str
|
| - :param instance_id: The ID of a NAT instance in your VPC.
|
| -
|
| - :type interface_id: str
|
| - :param interface_id: Allows routing to network interface attachments.
|
| -
|
| - :type vpc_peering_connection_id: str
|
| - :param vpc_peering_connection_id: Allows routing to VPC peering
|
| - connection.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'RouteTableId': route_table_id,
|
| - 'DestinationCidrBlock': destination_cidr_block
|
| - }
|
| -
|
| - if gateway_id is not None:
|
| - params['GatewayId'] = gateway_id
|
| - elif instance_id is not None:
|
| - params['InstanceId'] = instance_id
|
| - elif interface_id is not None:
|
| - params['NetworkInterfaceId'] = interface_id
|
| - elif vpc_peering_connection_id is not None:
|
| - params['VpcPeeringConnectionId'] = vpc_peering_connection_id
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| -
|
| - return self.get_status('ReplaceRoute', params)
|
| -
|
| - def delete_route(self, route_table_id, destination_cidr_block,
|
| - dry_run=False):
|
| - """
|
| - Deletes a route from a route table within a VPC.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the route table with the route.
|
| -
|
| - :type destination_cidr_block: str
|
| - :param destination_cidr_block: The CIDR address block used for
|
| - destination match.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'RouteTableId': route_table_id,
|
| - 'DestinationCidrBlock': destination_cidr_block
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteRoute', params)
|
| -
|
| - #Network ACLs
|
| -
|
| - def get_all_network_acls(self, network_acl_ids=None, filters=None):
|
| - """
|
| - Retrieve information about your network acls. You can filter results
|
| - to return information only about those network acls that match your
|
| - search parameters. Otherwise, all network acls associated with your
|
| - account are returned.
|
| -
|
| - :type network_acl_ids: list
|
| - :param network_acl_ids: A list of strings with the desired network ACL
|
| - IDs.
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.networkacl.NetworkAcl`
|
| - """
|
| - params = {}
|
| - if network_acl_ids:
|
| - self.build_list_params(params, network_acl_ids, "NetworkAclId")
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - return self.get_list('DescribeNetworkAcls', params,
|
| - [('item', NetworkAcl)])
|
| -
|
| - def associate_network_acl(self, network_acl_id, subnet_id):
|
| - """
|
| - Associates a network acl with a specific subnet.
|
| -
|
| - :type network_acl_id: str
|
| - :param network_acl_id: The ID of the network ACL to associate.
|
| -
|
| - :type subnet_id: str
|
| - :param subnet_id: The ID of the subnet to associate with.
|
| -
|
| - :rtype: str
|
| - :return: The ID of the association created
|
| - """
|
| -
|
| - acl = self.get_all_network_acls(filters=[('association.subnet-id', subnet_id)])[0]
|
| - association = [ association for association in acl.associations if association.subnet_id == subnet_id ][0]
|
| -
|
| - params = {
|
| - 'AssociationId': association.id,
|
| - 'NetworkAclId': network_acl_id
|
| - }
|
| -
|
| - result = self.get_object('ReplaceNetworkAclAssociation', params, ResultSet)
|
| - return result.newAssociationId
|
| -
|
| - def disassociate_network_acl(self, subnet_id, vpc_id=None):
|
| - """
|
| - Figures out what the default ACL is for the VPC, and associates
|
| - current network ACL with the default.
|
| -
|
| - :type subnet_id: str
|
| - :param subnet_id: The ID of the subnet to which the ACL belongs.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC to which the ACL/subnet belongs. Queries EC2 if omitted.
|
| -
|
| - :rtype: str
|
| - :return: The ID of the association created
|
| - """
|
| - if not vpc_id:
|
| - vpc_id = self.get_all_subnets([subnet_id])[0].vpc_id
|
| - acls = self.get_all_network_acls(filters=[('vpc-id', vpc_id), ('default', 'true')])
|
| - default_acl_id = acls[0].id
|
| -
|
| - return self.associate_network_acl(default_acl_id, subnet_id)
|
| -
|
| - def create_network_acl(self, vpc_id):
|
| - """
|
| - Creates a new network ACL.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The VPC ID to associate this network ACL with.
|
| -
|
| - :rtype: The newly created network ACL
|
| - :return: A :class:`boto.vpc.networkacl.NetworkAcl` object
|
| - """
|
| - params = {'VpcId': vpc_id}
|
| - return self.get_object('CreateNetworkAcl', params, NetworkAcl)
|
| -
|
| - def delete_network_acl(self, network_acl_id):
|
| - """
|
| - Delete a network ACL
|
| -
|
| - :type network_acl_id: str
|
| - :param network_acl_id: The ID of the network_acl to delete.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'NetworkAclId': network_acl_id}
|
| - return self.get_status('DeleteNetworkAcl', params)
|
| -
|
| - def create_network_acl_entry(self, network_acl_id, rule_number, protocol, rule_action,
|
| - cidr_block, egress=None, icmp_code=None, icmp_type=None,
|
| - port_range_from=None, port_range_to=None):
|
| - """
|
| - Creates a new network ACL entry in a network ACL within a VPC.
|
| -
|
| - :type network_acl_id: str
|
| - :param network_acl_id: The ID of the network ACL for this network ACL entry.
|
| -
|
| - :type rule_number: int
|
| - :param rule_number: The rule number to assign to the entry (for example, 100).
|
| -
|
| - :type protocol: int
|
| - :param protocol: Valid values: -1 or a protocol number
|
| - (http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)
|
| -
|
| - :type rule_action: str
|
| - :param rule_action: Indicates whether to allow or deny traffic that matches the rule.
|
| -
|
| - :type cidr_block: str
|
| - :param cidr_block: The CIDR range to allow or deny, in CIDR notation (for example,
|
| - 172.16.0.0/24).
|
| -
|
| - :type egress: bool
|
| - :param egress: Indicates whether this rule applies to egress traffic from the subnet (true)
|
| - or ingress traffic to the subnet (false).
|
| -
|
| - :type icmp_type: int
|
| - :param icmp_type: For the ICMP protocol, the ICMP type. You can use -1 to specify
|
| - all ICMP types.
|
| -
|
| - :type icmp_code: int
|
| - :param icmp_code: For the ICMP protocol, the ICMP code. You can use -1 to specify
|
| - all ICMP codes for the given ICMP type.
|
| -
|
| - :type port_range_from: int
|
| - :param port_range_from: The first port in the range.
|
| -
|
| - :type port_range_to: int
|
| - :param port_range_to: The last port in the range.
|
| -
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'NetworkAclId': network_acl_id,
|
| - 'RuleNumber': rule_number,
|
| - 'Protocol': protocol,
|
| - 'RuleAction': rule_action,
|
| - 'CidrBlock': cidr_block
|
| - }
|
| -
|
| - if egress is not None:
|
| - if isinstance(egress, bool):
|
| - egress = str(egress).lower()
|
| - params['Egress'] = egress
|
| - if icmp_code is not None:
|
| - params['Icmp.Code'] = icmp_code
|
| - if icmp_type is not None:
|
| - params['Icmp.Type'] = icmp_type
|
| - if port_range_from is not None:
|
| - params['PortRange.From'] = port_range_from
|
| - if port_range_to is not None:
|
| - params['PortRange.To'] = port_range_to
|
| -
|
| - return self.get_status('CreateNetworkAclEntry', params)
|
| -
|
| - def replace_network_acl_entry(self, network_acl_id, rule_number, protocol, rule_action,
|
| - cidr_block, egress=None, icmp_code=None, icmp_type=None,
|
| - port_range_from=None, port_range_to=None):
|
| - """
|
| - Creates a new network ACL entry in a network ACL within a VPC.
|
| -
|
| - :type network_acl_id: str
|
| - :param network_acl_id: The ID of the network ACL for the id you want to replace
|
| -
|
| - :type rule_number: int
|
| - :param rule_number: The rule number that you want to replace(for example, 100).
|
| -
|
| - :type protocol: int
|
| - :param protocol: Valid values: -1 or a protocol number
|
| - (http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)
|
| -
|
| - :type rule_action: str
|
| - :param rule_action: Indicates whether to allow or deny traffic that matches the rule.
|
| -
|
| - :type cidr_block: str
|
| - :param cidr_block: The CIDR range to allow or deny, in CIDR notation (for example,
|
| - 172.16.0.0/24).
|
| -
|
| - :type egress: bool
|
| - :param egress: Indicates whether this rule applies to egress traffic from the subnet (true)
|
| - or ingress traffic to the subnet (false).
|
| -
|
| - :type icmp_type: int
|
| - :param icmp_type: For the ICMP protocol, the ICMP type. You can use -1 to specify
|
| - all ICMP types.
|
| -
|
| - :type icmp_code: int
|
| - :param icmp_code: For the ICMP protocol, the ICMP code. You can use -1 to specify
|
| - all ICMP codes for the given ICMP type.
|
| -
|
| - :type port_range_from: int
|
| - :param port_range_from: The first port in the range.
|
| -
|
| - :type port_range_to: int
|
| - :param port_range_to: The last port in the range.
|
| -
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'NetworkAclId': network_acl_id,
|
| - 'RuleNumber': rule_number,
|
| - 'Protocol': protocol,
|
| - 'RuleAction': rule_action,
|
| - 'CidrBlock': cidr_block
|
| - }
|
| -
|
| - if egress is not None:
|
| - if isinstance(egress, bool):
|
| - egress = str(egress).lower()
|
| - params['Egress'] = egress
|
| - if icmp_code is not None:
|
| - params['Icmp.Code'] = icmp_code
|
| - if icmp_type is not None:
|
| - params['Icmp.Type'] = icmp_type
|
| - if port_range_from is not None:
|
| - params['PortRange.From'] = port_range_from
|
| - if port_range_to is not None:
|
| - params['PortRange.To'] = port_range_to
|
| -
|
| - return self.get_status('ReplaceNetworkAclEntry', params)
|
| -
|
| - def delete_network_acl_entry(self, network_acl_id, rule_number, egress=None):
|
| - """
|
| - Deletes a network ACL entry from a network ACL within a VPC.
|
| -
|
| - :type network_acl_id: str
|
| - :param network_acl_id: The ID of the network ACL with the network ACL entry.
|
| -
|
| - :type rule_number: int
|
| - :param rule_number: The rule number for the entry to delete.
|
| -
|
| - :type egress: bool
|
| - :param egress: Specifies whether the rule to delete is an egress rule (true)
|
| - or ingress rule (false).
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'NetworkAclId': network_acl_id,
|
| - 'RuleNumber': rule_number
|
| - }
|
| -
|
| - if egress is not None:
|
| - if isinstance(egress, bool):
|
| - egress = str(egress).lower()
|
| - params['Egress'] = egress
|
| -
|
| - return self.get_status('DeleteNetworkAclEntry', params)
|
| -
|
| - # Internet Gateways
|
| -
|
| - def get_all_internet_gateways(self, internet_gateway_ids=None,
|
| - filters=None, dry_run=False):
|
| - """
|
| - Get a list of internet gateways. You can filter results to return information
|
| - about only those gateways that you're interested in.
|
| -
|
| - :type internet_gateway_ids: list
|
| - :param internet_gateway_ids: A list of strings with the desired gateway IDs.
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - """
|
| - params = {}
|
| -
|
| - if internet_gateway_ids:
|
| - self.build_list_params(params, internet_gateway_ids,
|
| - 'InternetGatewayId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeInternetGateways', params,
|
| - [('item', InternetGateway)])
|
| -
|
| - def create_internet_gateway(self, dry_run=False):
|
| - """
|
| - Creates an internet gateway for VPC.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: Newly created internet gateway.
|
| - :return: `boto.vpc.internetgateway.InternetGateway`
|
| - """
|
| - params = {}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateInternetGateway', params, InternetGateway)
|
| -
|
| - def delete_internet_gateway(self, internet_gateway_id, dry_run=False):
|
| - """
|
| - Deletes an internet gateway from the VPC.
|
| -
|
| - :type internet_gateway_id: str
|
| - :param internet_gateway_id: The ID of the internet gateway to delete.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: Bool
|
| - :return: True if successful
|
| - """
|
| - params = {'InternetGatewayId': internet_gateway_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteInternetGateway', params)
|
| -
|
| - def attach_internet_gateway(self, internet_gateway_id, vpc_id,
|
| - dry_run=False):
|
| - """
|
| - Attach an internet gateway to a specific VPC.
|
| -
|
| - :type internet_gateway_id: str
|
| - :param internet_gateway_id: The ID of the internet gateway to attach.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC to attach to.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: Bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'InternetGatewayId': internet_gateway_id,
|
| - 'VpcId': vpc_id
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('AttachInternetGateway', params)
|
| -
|
| - def detach_internet_gateway(self, internet_gateway_id, vpc_id,
|
| - dry_run=False):
|
| - """
|
| - Detach an internet gateway from a specific VPC.
|
| -
|
| - :type internet_gateway_id: str
|
| - :param internet_gateway_id: The ID of the internet gateway to detach.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC to attach to.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: Bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'InternetGatewayId': internet_gateway_id,
|
| - 'VpcId': vpc_id
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DetachInternetGateway', params)
|
| -
|
| - # Customer Gateways
|
| -
|
| - def get_all_customer_gateways(self, customer_gateway_ids=None,
|
| - filters=None, dry_run=False):
|
| - """
|
| - Retrieve information about your CustomerGateways. You can filter
|
| - results to return information only about those CustomerGateways that
|
| - match your search parameters. Otherwise, all CustomerGateways
|
| - associated with your account are returned.
|
| -
|
| - :type customer_gateway_ids: list
|
| - :param customer_gateway_ids: A list of strings with the desired
|
| - CustomerGateway ID's.
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| - Possible filter keys are:
|
| -
|
| - - *state*, the state of the CustomerGateway
|
| - (pending,available,deleting,deleted)
|
| - - *type*, the type of customer gateway (ipsec.1)
|
| - - *ipAddress* the IP address of customer gateway's
|
| - internet-routable external inteface
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.customergateway.CustomerGateway`
|
| - """
|
| - params = {}
|
| - if customer_gateway_ids:
|
| - self.build_list_params(params, customer_gateway_ids,
|
| - 'CustomerGatewayId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| -
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| -
|
| - return self.get_list('DescribeCustomerGateways', params,
|
| - [('item', CustomerGateway)])
|
| -
|
| - def create_customer_gateway(self, type, ip_address, bgp_asn, dry_run=False):
|
| - """
|
| - Create a new Customer Gateway
|
| -
|
| - :type type: str
|
| - :param type: Type of VPN Connection. Only valid value currently is 'ipsec.1'
|
| -
|
| - :type ip_address: str
|
| - :param ip_address: Internet-routable IP address for customer's gateway.
|
| - Must be a static address.
|
| -
|
| - :type bgp_asn: int
|
| - :param bgp_asn: Customer gateway's Border Gateway Protocol (BGP)
|
| - Autonomous System Number (ASN)
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created CustomerGateway
|
| - :return: A :class:`boto.vpc.customergateway.CustomerGateway` object
|
| - """
|
| - params = {'Type': type,
|
| - 'IpAddress': ip_address,
|
| - 'BgpAsn': bgp_asn}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateCustomerGateway', params, CustomerGateway)
|
| -
|
| - def delete_customer_gateway(self, customer_gateway_id, dry_run=False):
|
| - """
|
| - Delete a Customer Gateway.
|
| -
|
| - :type customer_gateway_id: str
|
| - :param customer_gateway_id: The ID of the customer_gateway to be deleted.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'CustomerGatewayId': customer_gateway_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteCustomerGateway', params)
|
| -
|
| - # VPN Gateways
|
| -
|
| - def get_all_vpn_gateways(self, vpn_gateway_ids=None, filters=None,
|
| - dry_run=False):
|
| - """
|
| - Retrieve information about your VpnGateways. You can filter results to
|
| - return information only about those VpnGateways that match your search
|
| - parameters. Otherwise, all VpnGateways associated with your account
|
| - are returned.
|
| -
|
| - :type vpn_gateway_ids: list
|
| - :param vpn_gateway_ids: A list of strings with the desired VpnGateway ID's
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| - Possible filter keys are:
|
| -
|
| - - *state*, a list of states of the VpnGateway
|
| - (pending,available,deleting,deleted)
|
| - - *type*, a list types of customer gateway (ipsec.1)
|
| - - *availabilityZone*, a list of Availability zones the
|
| - VPN gateway is in.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.customergateway.VpnGateway`
|
| - """
|
| - params = {}
|
| - if vpn_gateway_ids:
|
| - self.build_list_params(params, vpn_gateway_ids, 'VpnGatewayId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeVpnGateways', params,
|
| - [('item', VpnGateway)])
|
| -
|
| - def create_vpn_gateway(self, type, availability_zone=None, dry_run=False):
|
| - """
|
| - Create a new Vpn Gateway
|
| -
|
| - :type type: str
|
| - :param type: Type of VPN Connection. Only valid value currently is 'ipsec.1'
|
| -
|
| - :type availability_zone: str
|
| - :param availability_zone: The Availability Zone where you want the VPN gateway.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created VpnGateway
|
| - :return: A :class:`boto.vpc.vpngateway.VpnGateway` object
|
| - """
|
| - params = {'Type': type}
|
| - if availability_zone:
|
| - params['AvailabilityZone'] = availability_zone
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateVpnGateway', params, VpnGateway)
|
| -
|
| - def delete_vpn_gateway(self, vpn_gateway_id, dry_run=False):
|
| - """
|
| - Delete a Vpn Gateway.
|
| -
|
| - :type vpn_gateway_id: str
|
| - :param vpn_gateway_id: The ID of the vpn_gateway to be deleted.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpnGatewayId': vpn_gateway_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteVpnGateway', params)
|
| -
|
| - def attach_vpn_gateway(self, vpn_gateway_id, vpc_id, dry_run=False):
|
| - """
|
| - Attaches a VPN gateway to a VPC.
|
| -
|
| - :type vpn_gateway_id: str
|
| - :param vpn_gateway_id: The ID of the vpn_gateway to attach
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC you want to attach the gateway to.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: An attachment
|
| - :return: a :class:`boto.vpc.vpngateway.Attachment`
|
| - """
|
| - params = {'VpnGatewayId': vpn_gateway_id,
|
| - 'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('AttachVpnGateway', params, Attachment)
|
| -
|
| - def detach_vpn_gateway(self, vpn_gateway_id, vpc_id, dry_run=False):
|
| - """
|
| - Detaches a VPN gateway from a VPC.
|
| -
|
| - :type vpn_gateway_id: str
|
| - :param vpn_gateway_id: The ID of the vpn_gateway to detach
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC you want to detach the gateway from.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpnGatewayId': vpn_gateway_id,
|
| - 'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DetachVpnGateway', params)
|
| -
|
| - # Subnets
|
| -
|
| - def get_all_subnets(self, subnet_ids=None, filters=None, dry_run=False):
|
| - """
|
| - Retrieve information about your Subnets. You can filter results to
|
| - return information only about those Subnets that match your search
|
| - parameters. Otherwise, all Subnets associated with your account
|
| - are returned.
|
| -
|
| - :type subnet_ids: list
|
| - :param subnet_ids: A list of strings with the desired Subnet ID's
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| - Possible filter keys are:
|
| -
|
| - - *state*, a list of states of the Subnet
|
| - (pending,available)
|
| - - *vpcId*, a list of IDs of the VPC that the subnet is in.
|
| - - *cidrBlock*, a list of CIDR blocks of the subnet
|
| - - *availabilityZone*, list of the Availability Zones
|
| - the subnet is in.
|
| -
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.subnet.Subnet`
|
| - """
|
| - params = {}
|
| - if subnet_ids:
|
| - self.build_list_params(params, subnet_ids, 'SubnetId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeSubnets', params, [('item', Subnet)])
|
| -
|
| - def create_subnet(self, vpc_id, cidr_block, availability_zone=None,
|
| - dry_run=False):
|
| - """
|
| - Create a new Subnet
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC where you want to create the subnet.
|
| -
|
| - :type cidr_block: str
|
| - :param cidr_block: The CIDR block you want the subnet to cover.
|
| -
|
| - :type availability_zone: str
|
| - :param availability_zone: The AZ you want the subnet in
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created Subnet
|
| - :return: A :class:`boto.vpc.customergateway.Subnet` object
|
| - """
|
| - params = {'VpcId': vpc_id,
|
| - 'CidrBlock': cidr_block}
|
| - if availability_zone:
|
| - params['AvailabilityZone'] = availability_zone
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateSubnet', params, Subnet)
|
| -
|
| - def delete_subnet(self, subnet_id, dry_run=False):
|
| - """
|
| - Delete a subnet.
|
| -
|
| - :type subnet_id: str
|
| - :param subnet_id: The ID of the subnet to be deleted.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'SubnetId': subnet_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteSubnet', params)
|
| -
|
| - # DHCP Options
|
| -
|
| - def get_all_dhcp_options(self, dhcp_options_ids=None, filters=None, dry_run=False):
|
| - """
|
| - Retrieve information about your DhcpOptions.
|
| -
|
| - :type dhcp_options_ids: list
|
| - :param dhcp_options_ids: A list of strings with the desired DhcpOption ID's
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.dhcpoptions.DhcpOptions`
|
| - """
|
| - params = {}
|
| - if dhcp_options_ids:
|
| - self.build_list_params(params, dhcp_options_ids, 'DhcpOptionsId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeDhcpOptions', params,
|
| - [('item', DhcpOptions)])
|
| -
|
| - def create_dhcp_options(self, domain_name=None, domain_name_servers=None,
|
| - ntp_servers=None, netbios_name_servers=None,
|
| - netbios_node_type=None, dry_run=False):
|
| - """
|
| - Create a new DhcpOption
|
| -
|
| - This corresponds to
|
| - http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateDhcpOptions.html
|
| -
|
| - :type domain_name: str
|
| - :param domain_name: A domain name of your choice (for example,
|
| - example.com)
|
| -
|
| - :type domain_name_servers: list of strings
|
| - :param domain_name_servers: The IP address of a domain name server. You
|
| - can specify up to four addresses.
|
| -
|
| - :type ntp_servers: list of strings
|
| - :param ntp_servers: The IP address of a Network Time Protocol (NTP)
|
| - server. You can specify up to four addresses.
|
| -
|
| - :type netbios_name_servers: list of strings
|
| - :param netbios_name_servers: The IP address of a NetBIOS name server.
|
| - You can specify up to four addresses.
|
| -
|
| - :type netbios_node_type: str
|
| - :param netbios_node_type: The NetBIOS node type (1, 2, 4, or 8). For
|
| - more information about the values, see RFC 2132. We recommend you
|
| - only use 2 at this time (broadcast and multicast are currently not
|
| - supported).
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created DhcpOption
|
| - :return: A :class:`boto.vpc.customergateway.DhcpOption` object
|
| - """
|
| -
|
| - key_counter = 1
|
| - params = {}
|
| -
|
| - def insert_option(params, name, value):
|
| - params['DhcpConfiguration.%d.Key' % (key_counter,)] = name
|
| - if isinstance(value, (list, tuple)):
|
| - for idx, value in enumerate(value, 1):
|
| - key_name = 'DhcpConfiguration.%d.Value.%d' % (
|
| - key_counter, idx)
|
| - params[key_name] = value
|
| - else:
|
| - key_name = 'DhcpConfiguration.%d.Value.1' % (key_counter,)
|
| - params[key_name] = value
|
| -
|
| - return key_counter + 1
|
| -
|
| - if domain_name:
|
| - key_counter = insert_option(params,
|
| - 'domain-name', domain_name)
|
| - if domain_name_servers:
|
| - key_counter = insert_option(params,
|
| - 'domain-name-servers', domain_name_servers)
|
| - if ntp_servers:
|
| - key_counter = insert_option(params,
|
| - 'ntp-servers', ntp_servers)
|
| - if netbios_name_servers:
|
| - key_counter = insert_option(params,
|
| - 'netbios-name-servers', netbios_name_servers)
|
| - if netbios_node_type:
|
| - key_counter = insert_option(params,
|
| - 'netbios-node-type', netbios_node_type)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| -
|
| - return self.get_object('CreateDhcpOptions', params, DhcpOptions)
|
| -
|
| - def delete_dhcp_options(self, dhcp_options_id, dry_run=False):
|
| - """
|
| - Delete a DHCP Options
|
| -
|
| - :type dhcp_options_id: str
|
| - :param dhcp_options_id: The ID of the DHCP Options to be deleted.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'DhcpOptionsId': dhcp_options_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteDhcpOptions', params)
|
| -
|
| - def associate_dhcp_options(self, dhcp_options_id, vpc_id, dry_run=False):
|
| - """
|
| - Associate a set of Dhcp Options with a VPC.
|
| -
|
| - :type dhcp_options_id: str
|
| - :param dhcp_options_id: The ID of the Dhcp Options
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'DhcpOptionsId': dhcp_options_id,
|
| - 'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('AssociateDhcpOptions', params)
|
| -
|
| - # VPN Connection
|
| -
|
| - def get_all_vpn_connections(self, vpn_connection_ids=None, filters=None,
|
| - dry_run=False):
|
| - """
|
| - Retrieve information about your VPN_CONNECTIONs. You can filter results to
|
| - return information only about those VPN_CONNECTIONs that match your search
|
| - parameters. Otherwise, all VPN_CONNECTIONs associated with your account
|
| - are returned.
|
| -
|
| - :type vpn_connection_ids: list
|
| - :param vpn_connection_ids: A list of strings with the desired VPN_CONNECTION ID's
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| - Possible filter keys are:
|
| -
|
| - - *state*, a list of states of the VPN_CONNECTION
|
| - pending,available,deleting,deleted
|
| - - *type*, a list of types of connection, currently 'ipsec.1'
|
| - - *customerGatewayId*, a list of IDs of the customer gateway
|
| - associated with the VPN
|
| - - *vpnGatewayId*, a list of IDs of the VPN gateway associated
|
| - with the VPN connection
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpn_connection.vpnconnection.VpnConnection`
|
| - """
|
| - params = {}
|
| - if vpn_connection_ids:
|
| - self.build_list_params(params, vpn_connection_ids,
|
| - 'VpnConnectionId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeVpnConnections', params,
|
| - [('item', VpnConnection)])
|
| -
|
| - def create_vpn_connection(self, type, customer_gateway_id, vpn_gateway_id,
|
| - static_routes_only=None, dry_run=False):
|
| - """
|
| - Create a new VPN Connection.
|
| -
|
| - :type type: str
|
| - :param type: The type of VPN Connection. Currently only 'ipsec.1'
|
| - is supported
|
| -
|
| - :type customer_gateway_id: str
|
| - :param customer_gateway_id: The ID of the customer gateway.
|
| -
|
| - :type vpn_gateway_id: str
|
| - :param vpn_gateway_id: The ID of the VPN gateway.
|
| -
|
| - :type static_routes_only: bool
|
| - :param static_routes_only: Indicates whether the VPN connection
|
| - requires static routes. If you are creating a VPN connection
|
| - for a device that does not support BGP, you must specify true.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: The newly created VpnConnection
|
| - :return: A :class:`boto.vpc.vpnconnection.VpnConnection` object
|
| - """
|
| - params = {'Type': type,
|
| - 'CustomerGatewayId': customer_gateway_id,
|
| - 'VpnGatewayId': vpn_gateway_id}
|
| - if static_routes_only is not None:
|
| - if isinstance(static_routes_only, bool):
|
| - static_routes_only = str(static_routes_only).lower()
|
| - params['Options.StaticRoutesOnly'] = static_routes_only
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_object('CreateVpnConnection', params, VpnConnection)
|
| -
|
| - def delete_vpn_connection(self, vpn_connection_id, dry_run=False):
|
| - """
|
| - Delete a VPN Connection.
|
| -
|
| - :type vpn_connection_id: str
|
| - :param vpn_connection_id: The ID of the vpn_connection to be deleted.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpnConnectionId': vpn_connection_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteVpnConnection', params)
|
| -
|
| - def disable_vgw_route_propagation(self, route_table_id, gateway_id,
|
| - dry_run=False):
|
| - """
|
| - Disables a virtual private gateway (VGW) from propagating routes to the
|
| - routing tables of an Amazon VPC.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the routing table.
|
| -
|
| - :type gateway_id: str
|
| - :param gateway_id: The ID of the virtual private gateway.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'RouteTableId': route_table_id,
|
| - 'GatewayId': gateway_id,
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DisableVgwRoutePropagation', params)
|
| -
|
| - def enable_vgw_route_propagation(self, route_table_id, gateway_id,
|
| - dry_run=False):
|
| - """
|
| - Enables a virtual private gateway (VGW) to propagate routes to the
|
| - routing tables of an Amazon VPC.
|
| -
|
| - :type route_table_id: str
|
| - :param route_table_id: The ID of the routing table.
|
| -
|
| - :type gateway_id: str
|
| - :param gateway_id: The ID of the virtual private gateway.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'RouteTableId': route_table_id,
|
| - 'GatewayId': gateway_id,
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('EnableVgwRoutePropagation', params)
|
| -
|
| - def create_vpn_connection_route(self, destination_cidr_block,
|
| - vpn_connection_id, dry_run=False):
|
| - """
|
| - Creates a new static route associated with a VPN connection between an
|
| - existing virtual private gateway and a VPN customer gateway. The static
|
| - route allows traffic to be routed from the virtual private gateway to
|
| - the VPN customer gateway.
|
| -
|
| - :type destination_cidr_block: str
|
| - :param destination_cidr_block: The CIDR block associated with the local
|
| - subnet of the customer data center.
|
| -
|
| - :type vpn_connection_id: str
|
| - :param vpn_connection_id: The ID of the VPN connection.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'DestinationCidrBlock': destination_cidr_block,
|
| - 'VpnConnectionId': vpn_connection_id,
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('CreateVpnConnectionRoute', params)
|
| -
|
| - def delete_vpn_connection_route(self, destination_cidr_block,
|
| - vpn_connection_id, dry_run=False):
|
| - """
|
| - Deletes a static route associated with a VPN connection between an
|
| - existing virtual private gateway and a VPN customer gateway. The static
|
| - route allows traffic to be routed from the virtual private gateway to
|
| - the VPN customer gateway.
|
| -
|
| - :type destination_cidr_block: str
|
| - :param destination_cidr_block: The CIDR block associated with the local
|
| - subnet of the customer data center.
|
| -
|
| - :type vpn_connection_id: str
|
| - :param vpn_connection_id: The ID of the VPN connection.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'DestinationCidrBlock': destination_cidr_block,
|
| - 'VpnConnectionId': vpn_connection_id,
|
| - }
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteVpnConnectionRoute', params)
|
| -
|
| - def get_all_vpc_peering_connections(self, vpc_peering_connection_ids=None,
|
| - filters=None, dry_run=False):
|
| - """
|
| - Retrieve information about your VPC peering connections. You
|
| - can filter results to return information only about those VPC
|
| - peering connections that match your search parameters.
|
| - Otherwise, all VPC peering connections associated with your
|
| - account are returned.
|
| -
|
| - :type vpc_peering_connection_ids: list
|
| - :param vpc_peering_connection_ids: A list of strings with the desired VPC
|
| - peering connection ID's
|
| -
|
| - :type filters: list of tuples
|
| - :param filters: A list of tuples containing filters. Each tuple
|
| - consists of a filter key and a filter value.
|
| - Possible filter keys are:
|
| -
|
| - * *accepter-vpc-info.cidr-block* - The CIDR block of the peer VPC.
|
| - * *accepter-vpc-info.owner-id* - The AWS account ID of the owner
|
| - of the peer VPC.
|
| - * *accepter-vpc-info.vpc-id* - The ID of the peer VPC.
|
| - * *expiration-time* - The expiration date and time for the VPC
|
| - peering connection.
|
| - * *requester-vpc-info.cidr-block* - The CIDR block of the
|
| - requester's VPC.
|
| - * *requester-vpc-info.owner-id* - The AWS account ID of the
|
| - owner of the requester VPC.
|
| - * *requester-vpc-info.vpc-id* - The ID of the requester VPC.
|
| - * *status-code* - The status of the VPC peering connection.
|
| - * *status-message* - A message that provides more information
|
| - about the status of the VPC peering connection, if applicable.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.vpc.VPC`
|
| - """
|
| - params = {}
|
| - if vpc_peering_connection_ids:
|
| - self.build_list_params(params, vpc_peering_connection_ids, 'VpcPeeringConnectionId')
|
| - if filters:
|
| - self.build_filter_params(params, dict(filters))
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeVpcPeeringConnections', params, [('item', VpcPeeringConnection)])
|
| -
|
| - def create_vpc_peering_connection(self, vpc_id, peer_vpc_id,
|
| - peer_owner_id=None, dry_run=False):
|
| - """
|
| - Create a new VPN Peering connection.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the requester VPC.
|
| -
|
| - :type peer_vpc_id: str
|
| - :param vpc_peer_id: The ID of the VPC with which you are creating the peering connection.
|
| -
|
| - :type peer_owner_id: str
|
| - :param peer_owner_id: The AWS account ID of the owner of the peer VPC.
|
| -
|
| - :rtype: The newly created VpcPeeringConnection
|
| - :return: A :class:`boto.vpc.vpc_peering_connection.VpcPeeringConnection` object
|
| - """
|
| - params = {'VpcId': vpc_id,
|
| - 'PeerVpcId': peer_vpc_id }
|
| - if peer_owner_id is not None:
|
| - params['PeerOwnerId'] = peer_owner_id
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| -
|
| - return self.get_object('CreateVpcPeeringConnection', params,
|
| - VpcPeeringConnection)
|
| -
|
| - def delete_vpc_peering_connection(self, vpc_peering_connection_id, dry_run=False):
|
| - """
|
| - Deletes a VPC peering connection. Either the owner of the requester
|
| - VPC or the owner of the peer VPC can delete the VPC peering connection
|
| - if it's in the active state. The owner of the requester VPC can delete
|
| - a VPC peering connection in the pending-acceptance state.
|
| -
|
| - :type vpc_peering_connection_id: str
|
| - :param vpc_peering_connection_id: The ID of the VPC peering connection.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'VpcPeeringConnectionId': vpc_peering_connection_id
|
| - }
|
| -
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DeleteVpcPeeringConnection', params)
|
| -
|
| - def reject_vpc_peering_connection(self, vpc_peering_connection_id, dry_run=False):
|
| - """
|
| - Rejects a VPC peering connection request. The VPC peering connection
|
| - must be in the pending-acceptance state.
|
| -
|
| - :type vpc_peering_connection_id: str
|
| - :param vpc_peering_connection_id: The ID of the VPC peering connection.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {
|
| - 'VpcPeeringConnectionId': vpc_peering_connection_id
|
| - }
|
| -
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('RejectVpcPeeringConnection', params)
|
| -
|
| - def accept_vpc_peering_connection(self, vpc_peering_connection_id, dry_run=False):
|
| - """
|
| - Acceptss a VPC peering connection request. The VPC peering connection
|
| - must be in the pending-acceptance state.
|
| -
|
| - :type vpc_peering_connection_id: str
|
| - :param vpc_peering_connection_id: The ID of the VPC peering connection.
|
| -
|
| - :rtype: Accepted VpcPeeringConnection
|
| - :return: A :class:`boto.vpc.vpc_peering_connection.VpcPeeringConnection` object
|
| - """
|
| - params = {
|
| - 'VpcPeeringConnectionId': vpc_peering_connection_id
|
| - }
|
| -
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| -
|
| - return self.get_object('AcceptVpcPeeringConnection', params,
|
| - VpcPeeringConnection)
|
| -
|
| - def get_all_classic_link_vpcs(self, vpc_ids=None, filters=None,
|
| - dry_run=False):
|
| - """
|
| - Describes the ClassicLink status of one or more VPCs.
|
| -
|
| - :type vpc_ids: list
|
| - :param vpc_ids: A list of strings with the desired VPC ID's
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :type filters: list of tuples or dict
|
| - :param filters: A list of tuples or dict containing filters. Each tuple
|
| - or dict item consists of a filter key and a filter value.
|
| -
|
| - :rtype: list
|
| - :return: A list of :class:`boto.vpc.vpc.VPC`
|
| - """
|
| - params = {}
|
| - if vpc_ids:
|
| - self.build_list_params(params, vpc_ids, 'VpcId')
|
| - if filters:
|
| - self.build_filter_params(params, filters)
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_list('DescribeVpcClassicLink', params, [('item', VPC)],
|
| - verb='POST')
|
| -
|
| - def attach_classic_link_vpc(self, vpc_id, instance_id, groups,
|
| - dry_run=False):
|
| - """
|
| - Links an EC2-Classic instance to a ClassicLink-enabled VPC through one
|
| - or more of the VPC's security groups. You cannot link an EC2-Classic
|
| - instance to more than one VPC at a time. You can only link an instance
|
| - that's in the running state. An instance is automatically unlinked from
|
| - a VPC when it's stopped. You can link it to the VPC again when you
|
| - restart it.
|
| -
|
| - After you've linked an instance, you cannot change the VPC security
|
| - groups that are associated with it. To change the security groups, you
|
| - must first unlink the instance, and then link it again.
|
| -
|
| - Linking your instance to a VPC is sometimes referred to as attaching
|
| - your instance.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of a ClassicLink-enabled VPC.
|
| -
|
| - :type intance_id: str
|
| - :param instance_is: The ID of a ClassicLink-enabled VPC.
|
| -
|
| - :tye groups: list
|
| - :param groups: The ID of one or more of the VPC's security groups.
|
| - You cannot specify security groups from a different VPC. The
|
| - members of the list can be
|
| - :class:`boto.ec2.securitygroup.SecurityGroup` objects or
|
| - strings of the id's of the security groups.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpcId': vpc_id, 'InstanceId': instance_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - l = []
|
| - for group in groups:
|
| - if hasattr(group, 'id'):
|
| - l.append(group.id)
|
| - else:
|
| - l.append(group)
|
| - self.build_list_params(params, l, 'SecurityGroupId')
|
| - return self.get_status('AttachClassicLinkVpc', params)
|
| -
|
| - def detach_classic_link_vpc(self, vpc_id, instance_id, dry_run=False):
|
| - """
|
| - Unlinks a linked EC2-Classic instance from a VPC. After the instance
|
| - has been unlinked, the VPC security groups are no longer associated
|
| - with it. An instance is automatically unlinked from a VPC when
|
| - it's stopped.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the instance to unlink from the VPC.
|
| -
|
| - :type intance_id: str
|
| - :param instance_is: The ID of the VPC to which the instance is linked.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpcId': vpc_id, 'InstanceId': instance_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DetachClassicLinkVpc', params)
|
| -
|
| - def disable_vpc_classic_link(self, vpc_id, dry_run=False):
|
| - """
|
| - Disables ClassicLink for a VPC. You cannot disable ClassicLink for a
|
| - VPC that has EC2-Classic instances linked to it.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('DisableVpcClassicLink', params)
|
| -
|
| - def enable_vpc_classic_link(self, vpc_id, dry_run=False):
|
| - """
|
| - Enables a VPC for ClassicLink. You can then link EC2-Classic instances
|
| - to your ClassicLink-enabled VPC to allow communication over private IP
|
| - addresses. You cannot enable your VPC for ClassicLink if any of your
|
| - VPC's route tables have existing routes for address ranges within the
|
| - 10.0.0.0/8 IP address range, excluding local routes for VPCs in the
|
| - 10.0.0.0/16 and 10.1.0.0/16 IP address ranges.
|
| -
|
| - :type vpc_id: str
|
| - :param vpc_id: The ID of the VPC.
|
| -
|
| - :type dry_run: bool
|
| - :param dry_run: Set to True if the operation should not actually run.
|
| -
|
| - :rtype: bool
|
| - :return: True if successful
|
| - """
|
| - params = {'VpcId': vpc_id}
|
| - if dry_run:
|
| - params['DryRun'] = 'true'
|
| - return self.get_status('EnableVpcClassicLink', params)
|
|
|