Provided by: libvm-ec2-perl_1.28-1_all bug

NAME VM::EC2::REST::vpc - EC2 virtual private clouds

SYNOPSIS

        use VM::EC2 ':vpc';

METHODS

       EC2 virtual private clouds (VPCs) provide facilities for creating tiered applications
       combining public and private subnetworks, and for extending your home/corporate network
       into the cloud.

       Implemented:
        AcceptVpcPeeringConnection
        CreateVpc
        CreateVpcPeeringConnection
        DeleteVpc
        DeleteVpcPeeringConnection
        DescribeVpcPeeringConnections
        DescribeVpcs
        DescribeVpcAttribute
        ModifyVpcAttribute
        RejectVpcPeeringConnection

       Unimplemented:
        (none)

   $vpx = $ec2->accept_vpc_peering_connection(-vpc_peering_connection_id => $id)
   $vpx = $ec2->accept_vpc_peering_connection($id)
       Accepts a VPC peering connection request. To accept a request, the VPC peering connection
       must be in the pending-acceptance state, and the request must come from the owner of the
       peer VPC.  Use describe_vpc_peering_connections(-filter => { 'status-code' =>
       'pending-acceptance' }) to view outstanding VPC peering connection requests.

       Required arguments:

        -vpc_peering_connection_id    -- The ID of the VPC peering connection

       Returns a VM::EC2::VPC::PeeringConnection object.

   $vpc = $ec2->create_vpc(-cidr_block=>$cidr,-instance_tenancy=>$tenancy)
       Create a new VPC. This can be called with a single argument, in which case it is
       interpreted as the desired CIDR block, or

        $vpc = $ec2->$ec2->create_vpc('10.0.0.0/16') or die $ec2->error_str;

       Or it can be called with named arguments.

       Required arguments:

        -cidr_block         The Classless Internet Domain Routing address, in the
                            form xx.xx.xx.xx/xx. One or more subnets will be allocated
                            from within this block.

       Optional arguments:

        -instance_tenancy   "default" or "dedicated". The latter requests AWS to
                            launch all your instances in the VPC on single-tenant
                            hardware (at additional cost).

       See http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html for a
       description of the valid CIDRs that can be used with EC2.

       On success, this method will return a new VM::EC2::VPC object. You can then use this
       object to create new subnets within the VPC:

        $vpc     = $ec2->create_vpc('10.0.0.0/16')    or die $ec2->error_str;
        $subnet1 = $vpc->create_subnet('10.0.0.0/24') or die $vpc->error_str;
        $subnet2 = $vpc->create_subnet('10.0.1.0/24') or die $vpc->error_str;
        $subnet3 = $vpc->create_subnet('10.0.2.0/24') or die $vpc->error_str;

   $pcx = $ec2->create_vpc_peering_connection(-vpc_id        => $vpc_id, -peer_vpc_id   =>
       $peer_id, -peer_owner_id => $owner_id)
       Requests a VPC peering connection between two VPCs: a requester VPC and a peer VPC with
       which to create the connection. The peer VPC can belong to another AWS account. The
       requester VPC and peer VPC must not have overlapping CIDR blocks.

       The owner of the peer VPC must accept the peering request to activate the peering
       connection. The VPC peering connection request expires after seven days, after which it
       cannot be accepted or rejected.

       Required arguments:

        -vpc_id           The ID of the requester VPC

        -peer_vpc_id      The ID of the VPC with which the peering connection is to be
                          made

       Conditional arguments:

        -peer_owner_id    The AWS account ID of the owner of the peer VPC
                          Required if the peer VPC is not in the same account as the
                          requester VPC

       Returns a VM::EC2::VPC::PeeringConnection object.

   @vpc = $ec2->describe_vpcs(@vpc_ids)
   @vpc = $ec2->describe_vpcs(\%filter)
   @vpc = $ec2->describe_vpcs(-vpc_id=>\@list,-filter=>\%filter)
       Describe VPCs that you own and return a list of VM::EC2::VPC objects. Call with no
       arguments to return all VPCs, or provide a list of VPC IDs to return information on those
       only. You may also provide a filter list, or named argument forms.

       Optional arguments:

        -vpc_id      A scalar or array ref containing the VPC IDs you want
                     information on.

        -filter      A hashref of filters to apply to the query.

       The filters you can use are described at
       http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVpcs.html

   @vpx = $ec2->describe_vpc_peering_connections(@vpx_ids)
   @vpx = $ec2->describe_vpc_peering_connections(\%filter)
   @vpx =
       $ec2->describe_vpc_peering_connections(vpc_peering_connection_id=>\@list,-filter=>\%filter)
       Describes one or more of your VPC peering connections.

       Optional arguments:

        -vpc_peering_connection_id    A scalar or array ref containing the VPC IDs you want
                                      information on.

        -filter                       A hashref of filters to apply to the query.

       The filters you can use are described at
       http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeVpcPeeringConnections.html

       Returns a scalar or array of VM::EC2::VPC::PeeringConnection objects.

   $success = $ec2->delete_vpc($vpc_id)
   $success = $ec2->delete_vpc(-vpc_id=>$vpc_id)
       Delete the indicated VPC, returning true if successful.

   $success = $ec2->delete_vpc_peering_connection(-vpc_peering_connection_id => $id)
   $success = $ec2->delete_vpc_peering_connection($id)
       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.

       Required arguments:

        -vpc_peering_connection_id    The ID of the VPC peering connection to delete

       Returns true if the deletion was successful.

   $attr = $ec2->describe_vpc_attribute(-vpc_id => $id, -attribute => $attr)
       Describes an attribute of the specified VPC.

       Required arguments:

        -vpc_id                  The ID of the VPC.

        -attribute               The VPC attribute.
                                 Valid values:
                                 enableDnsSupport | enableDnsHostnames

       Returns true if attribute is set.

   $success = $ec2->modify_vpc_attribute(-vpc_id               => $id, -enable_dns_support   =>
       $boolen, -enable_dns_hostnames => $boolean)
       Modify attributes of a VPC.

       Required Arguments:

        -vpc_id                  The ID of the VPC.

       One or more of the following arguments is required:

        -enable_dns_support      Specifies whether the DNS server provided
                                 by Amazon is enabled for the VPC.

        -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
                                 -enable_dns_support is also true.

       Returns true on success.

   $success = $ec2->reject_vpc_peering_connection(-vpc_peering_connection_id => $id)
       Rejects a VPC peering connection request. The VPC peering connection must be in the
       'pending-acceptance' state.  Use describe_vpc_peering_connections(-filter => {
       'status-code' => 'pending-acceptance' }) to view outstanding VPC peering connection
       requests.

       Required arguments:

        -vpc_peering_connection_id    The ID of the VPC peering connection to delete

       Returns true if the deletion was successful.

SEE ALSO

       VM::EC2

AUTHOR

       Lincoln Stein <lincoln.stein@gmail.com>.

       Copyright (c) 2011 Ontario Institute for Cancer Research

       Lance Kinley <lkinley@loyaltymethods.com>

       Copyright (c) 2014 Loyalty Methods, Inc.

       This package and its accompanying libraries is free software; you can redistribute it
       and/or modify it under the terms of the GPL (either version 1, or at your option, any
       later version) or the Artistic License 2.0.  Refer to LICENSE for the full license text.
       In addition, please see DISCLAIMER.txt for disclaimers of warranty.