diff --git a/CHANGELOG.md b/CHANGELOG.md index d091f5a59a5..fdfd050972a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +Release v1.10.34 (2017-08-29) +=== + +### Service Client Updates +* `service/config`: Updates service API and documentation +* `service/ec2`: Updates service API and documentation + * Provides capability to add secondary CIDR blocks to a VPC. + +### SDK Bugs +* `aws/signer/v4`: Fix Signing Unordered Multi Value Query Parameters ([#1491](https://github.com/aws/aws-sdk-go/pull/1491)) + * Removes sorting of query string values when calculating v4 signing as this is not part of the spec. The spec only requires the keys, not values, to be sorted which is achieved by Query.Encode(). Release v1.10.33 (2017-08-25) === diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index fcd1eb81413..8a1927a39ca 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -3,5 +3,3 @@ ### SDK Enhancements ### SDK Bugs -* `aws/signer/v4`: Fix Signing Unordered Multi Value Query Parameters ([#1491](https://github.com/aws/aws-sdk-go/pull/1491)) - * Removes sorting of query string values when calculating v4 signing as this is not part of the spec. The spec only requires the keys, not values, to be sorted which is achieved by Query.Encode(). diff --git a/aws/version.go b/aws/version.go index 4bc8317d996..4e5f22c979f 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.10.33" +const SDKVersion = "1.10.34" diff --git a/models/apis/config/2014-11-12/api-2.json b/models/apis/config/2014-11-12/api-2.json index 7beadfa3d50..0019023b4ad 100644 --- a/models/apis/config/2014-11-12/api-2.json +++ b/models/apis/config/2014-11-12/api-2.json @@ -373,6 +373,11 @@ "AllSupported":{"type":"boolean"}, "AvailabilityZone":{"type":"string"}, "AwsRegion":{"type":"string"}, + "BaseResourceId":{ + "type":"string", + "max":768, + "min":1 + }, "Boolean":{"type":"boolean"}, "ChannelName":{ "type":"string", @@ -408,7 +413,7 @@ "type":"structure", "members":{ "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"}, + "ResourceId":{"shape":"BaseResourceId"}, "Compliance":{"shape":"Compliance"} } }, @@ -721,7 +726,7 @@ "type":"structure", "members":{ "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"}, + "ResourceId":{"shape":"BaseResourceId"}, "ComplianceTypes":{"shape":"ComplianceTypes"}, "Limit":{"shape":"Limit"}, "NextToken":{"shape":"NextToken"} @@ -827,7 +832,7 @@ ], "members":{ "ComplianceResourceType":{"shape":"StringWithCharLimit256"}, - "ComplianceResourceId":{"shape":"StringWithCharLimit256"}, + "ComplianceResourceId":{"shape":"BaseResourceId"}, "ComplianceType":{"shape":"ComplianceType"}, "Annotation":{"shape":"StringWithCharLimit256"}, "OrderingTimestamp":{"shape":"OrderingTimestamp"} @@ -856,7 +861,7 @@ "members":{ "ConfigRuleName":{"shape":"StringWithCharLimit64"}, "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"} + "ResourceId":{"shape":"BaseResourceId"} } }, "EvaluationResults":{ @@ -898,7 +903,7 @@ ], "members":{ "ResourceType":{"shape":"StringWithCharLimit256"}, - "ResourceId":{"shape":"StringWithCharLimit256"}, + "ResourceId":{"shape":"BaseResourceId"}, "ComplianceTypes":{"shape":"ComplianceTypes"}, "NextToken":{"shape":"String"} } @@ -1362,7 +1367,7 @@ "ComplianceResourceTypes":{"shape":"ComplianceResourceTypes"}, "TagKey":{"shape":"StringWithCharLimit128"}, "TagValue":{"shape":"StringWithCharLimit256"}, - "ComplianceResourceId":{"shape":"StringWithCharLimit256"} + "ComplianceResourceId":{"shape":"BaseResourceId"} } }, "Source":{ diff --git a/models/apis/config/2014-11-12/docs-2.json b/models/apis/config/2014-11-12/docs-2.json index 11774113f0d..8b7a1d4f630 100644 --- a/models/apis/config/2014-11-12/docs-2.json +++ b/models/apis/config/2014-11-12/docs-2.json @@ -61,6 +61,17 @@ "ConfigurationItem$awsRegion": "

The region where the resource resides.

" } }, + "BaseResourceId": { + "base": null, + "refs": { + "ComplianceByResource$ResourceId": "

The ID of the AWS resource that was evaluated.

", + "DescribeComplianceByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information. You can specify only one resource ID. If you specify a resource ID, you must also specify a type for ResourceType.

", + "Evaluation$ComplianceResourceId": "

The ID of the AWS resource that was evaluated.

", + "EvaluationResultQualifier$ResourceId": "

The ID of the evaluated AWS resource.

", + "GetComplianceDetailsByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information.

", + "Scope$ComplianceResourceId": "

The IDs of the only AWS resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for ComplianceResourceTypes.

" + } + }, "Boolean": { "base": null, "refs": { @@ -1082,22 +1093,16 @@ "base": null, "refs": { "ComplianceByResource$ResourceType": "

The type of the AWS resource that was evaluated.

", - "ComplianceByResource$ResourceId": "

The ID of the AWS resource that was evaluated.

", "ComplianceResourceTypes$member": null, "ComplianceSummaryByResourceType$ResourceType": "

The type of AWS resource.

", "DescribeComplianceByResourceRequest$ResourceType": "

The types of AWS resources for which you want compliance information; for example, AWS::EC2::Instance. For this action, you can specify that the resource type is an AWS account by specifying AWS::::Account.

", - "DescribeComplianceByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information. You can specify only one resource ID. If you specify a resource ID, you must also specify a type for ResourceType.

", "Evaluation$ComplianceResourceType": "

The type of AWS resource that was evaluated.

", - "Evaluation$ComplianceResourceId": "

The ID of the AWS resource that was evaluated.

", "Evaluation$Annotation": "

Supplementary information about how the evaluation determined the compliance.

", "EvaluationResult$Annotation": "

Supplementary information about how the evaluation determined the compliance.

", "EvaluationResultQualifier$ResourceType": "

The type of AWS resource that was evaluated.

", - "EvaluationResultQualifier$ResourceId": "

The ID of the evaluated AWS resource.

", "GetComplianceDetailsByResourceRequest$ResourceType": "

The type of the AWS resource for which you want compliance information.

", - "GetComplianceDetailsByResourceRequest$ResourceId": "

The ID of the AWS resource for which you want compliance information.

", "ResourceTypes$member": null, "Scope$TagValue": "

The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for TagValue, you must also specify a value for TagKey.

", - "Scope$ComplianceResourceId": "

The IDs of the only AWS resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for ComplianceResourceTypes.

", "Source$SourceIdentifier": "

For AWS Config managed rules, a predefined identifier from a list. For example, IAM_PASSWORD_POLICY is a managed rule. To reference a managed rule, see Using AWS Managed Config Rules.

For custom rules, the identifier is the Amazon Resource Name (ARN) of the rule's AWS Lambda function, such as arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name.

" } }, diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index de4faca6f41..3d013189ee5 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -2529,6 +2529,7 @@ "shape":"Boolean", "locationName":"amazonProvidedIpv6CidrBlock" }, + "CidrBlock":{"shape":"String"}, "VpcId":{ "shape":"String", "locationName":"vpcId" @@ -2542,6 +2543,10 @@ "shape":"VpcIpv6CidrBlockAssociation", "locationName":"ipv6CidrBlockAssociation" }, + "CidrBlockAssociation":{ + "shape":"VpcCidrBlockAssociation", + "locationName":"cidrBlockAssociation" + }, "VpcId":{ "shape":"String", "locationName":"vpcId" @@ -3277,6 +3282,22 @@ "locationName":"item" } }, + "CidrBlock":{ + "type":"structure", + "members":{ + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + } + } + }, + "CidrBlockSet":{ + "type":"list", + "member":{ + "shape":"CidrBlock", + "locationName":"item" + } + }, "ClassicLinkDnsSupport":{ "type":"structure", "members":{ @@ -7170,6 +7191,10 @@ "shape":"VpcIpv6CidrBlockAssociation", "locationName":"ipv6CidrBlockAssociation" }, + "CidrBlockAssociation":{ + "shape":"VpcCidrBlockAssociation", + "locationName":"cidrBlockAssociation" + }, "VpcId":{ "shape":"String", "locationName":"vpcId" @@ -15502,6 +15527,10 @@ "shape":"VpcIpv6CidrBlockAssociationSet", "locationName":"ipv6CidrBlockAssociationSet" }, + "CidrBlockAssociationSet":{ + "shape":"VpcCidrBlockAssociationSet", + "locationName":"cidrBlockAssociationSet" + }, "IsDefault":{ "shape":"Boolean", "locationName":"isDefault" @@ -15539,6 +15568,30 @@ "enableDnsHostnames" ] }, + "VpcCidrBlockAssociation":{ + "type":"structure", + "members":{ + "AssociationId":{ + "shape":"String", + "locationName":"associationId" + }, + "CidrBlock":{ + "shape":"String", + "locationName":"cidrBlock" + }, + "CidrBlockState":{ + "shape":"VpcCidrBlockState", + "locationName":"cidrBlockState" + } + } + }, + "VpcCidrBlockAssociationSet":{ + "type":"list", + "member":{ + "shape":"VpcCidrBlockAssociation", + "locationName":"item" + } + }, "VpcCidrBlockState":{ "type":"structure", "members":{ @@ -15763,6 +15816,10 @@ "shape":"Ipv6CidrBlockSet", "locationName":"ipv6CidrBlockSet" }, + "CidrBlockSet":{ + "shape":"CidrBlockSet", + "locationName":"cidrBlockSet" + }, "OwnerId":{ "shape":"String", "locationName":"ownerId" diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 2ecfb53b0f4..eed48f2b14e 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -13,7 +13,7 @@ "AssociateIamInstanceProfile": "

Associates an IAM instance profile with a running or stopped instance. You cannot associate more than one IAM instance profile with an instance.

", "AssociateRouteTable": "

Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. The action returns an association ID, which you need in order to disassociate the route table from the subnet later. A route table can be associated with multiple subnets.

For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "AssociateSubnetCidrBlock": "

Associates a CIDR block with your subnet. You can only associate a single IPv6 CIDR block with your subnet. An IPv6 CIDR block must have a prefix length of /64.

", - "AssociateVpcCidrBlock": "

Associates a CIDR block with your VPC. You can only associate a single Amazon-provided IPv6 CIDR block with your VPC. The IPv6 CIDR block size is fixed at /56.

", + "AssociateVpcCidrBlock": "

Associates a CIDR block with your VPC. You can associate a secondary IPv4 CIDR block, or you can associate an Amazon-provided IPv6 CIDR block. The IPv6 CIDR block size is fixed at /56.

For more information about associating CIDR blocks with your VPC and applicable restrictions, see VPC and Subnet Sizing in the Amazon Virtual Private Cloud User Guide.

", "AttachClassicLinkVpc": "

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.

", "AttachInternetGateway": "

Attaches an Internet gateway to a VPC, enabling connectivity between the Internet and the VPC. For more information about your VPC and Internet gateway, see the Amazon Virtual Private Cloud User Guide.

", "AttachNetworkInterface": "

Attaches a network interface to an instance.

", @@ -54,7 +54,7 @@ "CreateSecurityGroup": "

Creates a security group.

A security group is for use with instances either in the EC2-Classic platform or in a specific VPC. For more information, see Amazon EC2 Security Groups in the Amazon Elastic Compute Cloud User Guide and Security Groups for Your VPC in the Amazon Virtual Private Cloud User Guide.

EC2-Classic: You can have up to 500 security groups.

EC2-VPC: You can create up to 500 security groups per VPC.

When you create a security group, you specify a friendly name of your choice. You can have a security group for use in EC2-Classic with the same name as a security group for use in a VPC. However, you can't have two security groups for use in EC2-Classic with the same name or two security groups for use in a VPC with the same name.

You have a default security group for use in EC2-Classic and a default security group for use in your VPC. If you don't specify a security group when you launch an instance, the instance is launched into the appropriate default security group. A default security group includes a default rule that grants instances unrestricted network access to each other.

You can add or remove rules from your security groups using AuthorizeSecurityGroupIngress, AuthorizeSecurityGroupEgress, RevokeSecurityGroupIngress, and RevokeSecurityGroupEgress.

", "CreateSnapshot": "

Creates a snapshot of an EBS volume and stores it in Amazon S3. You can use snapshots for backups, to make copies of EBS volumes, and to save data before shutting down an instance.

When a snapshot is created, any AWS Marketplace product codes that are associated with the source volume are propagated to the snapshot.

You can take a snapshot of an attached volume that is in use. However, snapshots only capture data that has been written to your EBS volume at the time the snapshot command is issued; this may exclude any data that has been cached by any applications or the operating system. If you can pause any file systems on the volume long enough to take a snapshot, your snapshot should be complete. However, if you cannot pause all file writes to the volume, you should unmount the volume from within the instance, issue the snapshot command, and then remount the volume to ensure a consistent and complete snapshot. You may remount and use your volume while the snapshot status is pending.

To create a snapshot for EBS volumes that serve as root devices, you should stop the instance before taking the snapshot.

Snapshots that are taken from encrypted volumes are automatically encrypted. Volumes that are created from encrypted snapshots are also automatically encrypted. Your encrypted volumes and any associated snapshots always remain protected.

For more information, see Amazon Elastic Block Store and Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

", "CreateSpotDatafeedSubscription": "

Creates a data feed for Spot instances, enabling you to view Spot instance usage logs. You can create one data feed per AWS account. For more information, see Spot Instance Data Feed in the Amazon Elastic Compute Cloud User Guide.

", - "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and the CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The subnet's IPv4 CIDR block can be the same as the VPC's IPv4 CIDR block (assuming you want only a single subnet in the VPC), or a subset of the VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", + "CreateSubnet": "

Creates a subnet in an existing VPC.

When you create each subnet, you provide the VPC ID and the IPv4 CIDR block you want for the subnet. After you create a subnet, you can't change its CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses).

If you've associated an IPv6 CIDR block with your VPC, you can create a subnet with an IPv6 CIDR block that uses a /64 prefix length.

AWS reserves both the first four and the last IPv4 address in each subnet's CIDR block. They're not available for use.

If you add more than one subnet to a VPC, they're set up in a star topology with a logical router in the middle.

If you launch an instance in a VPC using an Amazon EBS-backed AMI, the IP address doesn't change if you stop and restart the instance (unlike a similar instance launched outside a VPC, which gets a new IP address when restarted). It's therefore possible to have a subnet with no running instances (they're all stopped), but no remaining IP addresses available.

For more information about subnets, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

", "CreateTags": "

Adds or overwrites one or more tags for the specified Amazon EC2 resource or resources. Each resource can have a maximum of 50 tags. Each tag consists of a key and optional value. Tag keys must be unique per resource.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide. For more information about creating IAM policies that control users' access to resources based on tags, see Supported Resource-Level Permissions for Amazon EC2 API Actions in the Amazon Elastic Compute Cloud User Guide.

", "CreateVolume": "

Creates an EBS volume that can be attached to an instance in the same Availability Zone. The volume is created in the regional endpoint that you send the HTTP request to. For more information see Regions and Endpoints.

You can create a new empty volume or restore a volume from an EBS snapshot. Any AWS Marketplace product codes from the snapshot are propagated to the volume.

You can create encrypted volumes with the Encrypted parameter. Encrypted volumes may only be attached to instances that support Amazon EBS encryption. Volumes that are created from encrypted snapshots are also automatically encrypted. For more information, see Amazon EBS Encryption in the Amazon Elastic Compute Cloud User Guide.

You can tag your volumes during creation. For more information, see Tagging Your Amazon EC2 Resources.

For more information, see Creating an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", "CreateVpc": "

Creates a VPC with the specified IPv4 CIDR block. The smallest VPC you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). To help you decide how big to make your VPC, see Your VPC and Subnets in the Amazon Virtual Private Cloud User Guide.

You can optionally request an Amazon-provided IPv6 CIDR block for the VPC. The IPv6 CIDR block uses a /56 prefix length, and is allocated from Amazon's pool of IPv6 addresses. You cannot choose the IPv6 range for your VPC.

By default, each instance you launch in the VPC has the default DHCP options, which includes only a default DNS server that we provide (AmazonProvidedDNS). For more information about DHCP options, see DHCP Options Sets in the Amazon Virtual Private Cloud User Guide.

You can specify the instance tenancy value for the VPC when you create it. You can't change this value for the VPC after you create it. For more information, see Dedicated Instances in the Amazon Elastic Compute Cloud User Guide.

", @@ -81,7 +81,7 @@ "DeleteSnapshot": "

Deletes the specified snapshot.

When you make periodic snapshots of a volume, the snapshots are incremental, and only the blocks on the device that have changed since your last snapshot are saved in the new snapshot. When you delete a snapshot, only the data not needed for any other snapshot is removed. So regardless of which prior snapshots have been deleted, all active snapshots will have access to all the information needed to restore the volume.

You cannot delete a snapshot of the root device of an EBS volume used by a registered AMI. You must first de-register the AMI before you can delete the snapshot.

For more information, see Deleting an Amazon EBS Snapshot in the Amazon Elastic Compute Cloud User Guide.

", "DeleteSpotDatafeedSubscription": "

Deletes the data feed for Spot instances.

", "DeleteSubnet": "

Deletes the specified subnet. You must terminate all running instances in the subnet before you can delete the subnet.

", - "DeleteTags": "

Deletes the specified set of tags from the specified set of resources. This call is designed to follow a DescribeTags request.

For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", + "DeleteTags": "

Deletes the specified set of tags from the specified set of resources.

To list the current tags, use DescribeTags. For more information about tags, see Tagging Your Resources in the Amazon Elastic Compute Cloud User Guide.

", "DeleteVolume": "

Deletes the specified EBS volume. The volume must be in the available state (not attached to an instance).

The volume may remain in the deleting state for several minutes.

For more information, see Deleting an Amazon EBS Volume in the Amazon Elastic Compute Cloud User Guide.

", "DeleteVpc": "

Deletes the specified VPC. You must detach or delete all gateways and resources that are associated with the VPC before you can delete it. For example, you must terminate all instances running in the VPC, delete all security groups associated with the VPC (except the default one), delete all route tables associated with the VPC (except the default one), and so on.

", "DeleteVpcEndpoints": "

Deletes one or more specified VPC endpoints. Deleting the endpoint also deletes the endpoint routes in the route tables that were associated with the endpoint.

", @@ -172,7 +172,7 @@ "DisassociateIamInstanceProfile": "

Disassociates an IAM instance profile from a running or stopped instance.

Use DescribeIamInstanceProfileAssociations to get the association ID.

", "DisassociateRouteTable": "

Disassociates a subnet from a route table.

After you perform this action, the subnet no longer uses the routes in the route table. Instead, it uses the routes in the VPC's main route table. For more information about route tables, see Route Tables in the Amazon Virtual Private Cloud User Guide.

", "DisassociateSubnetCidrBlock": "

Disassociates a CIDR block from a subnet. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

", - "DisassociateVpcCidrBlock": "

Disassociates a CIDR block from a VPC. Currently, you can disassociate an IPv6 CIDR block only. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

", + "DisassociateVpcCidrBlock": "

Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you must specify its association ID. You can get the association ID by using DescribeVpcs. You must detach or delete all gateways and resources that are associated with the CIDR block before you can disassociate it.

You cannot disassociate the CIDR block with which you originally created the VPC (the primary CIDR block).

", "EnableVgwRoutePropagation": "

Enables a virtual private gateway (VGW) to propagate routes to the specified route table of a VPC.

", "EnableVolumeIO": "

Enables I/O operations for a volume that had I/O operations disabled because the data on the volume was potentially inconsistent.

", "EnableVpcClassicLink": "

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. For more information, see ClassicLink in the Amazon Elastic Compute Cloud User Guide.

", @@ -1114,6 +1114,18 @@ "CancelSpotInstanceRequestsResult$CancelledSpotInstanceRequests": "

One or more Spot instance requests.

" } }, + "CidrBlock": { + "base": "

Describes an IPv4 CIDR block.

", + "refs": { + "CidrBlockSet$member": null + } + }, + "CidrBlockSet": { + "base": null, + "refs": { + "VpcPeeringConnectionVpcInfo$CidrBlockSet": "

Information about the IPv4 CIDR blocks for the VPC.

" + } + }, "ClassicLinkDnsSupport": { "base": "

Describes the ClassicLink DNS support status of a VPC.

", "refs": { @@ -2945,7 +2957,7 @@ "DescribeVpcClassicLinkRequest$Filters": "

One or more filters.

", "DescribeVpcEndpointsRequest$Filters": "

One or more filters.

", "DescribeVpcPeeringConnectionsRequest$Filters": "

One or more filters.

", - "DescribeVpcsRequest$Filters": "

One or more filters.

", + "DescribeVpcsRequest$Filters": "

One or more filters.

", "DescribeVpnConnectionsRequest$Filters": "

One or more filters.

", "DescribeVpnGatewaysRequest$Filters": "

One or more filters.

" } @@ -5144,7 +5156,7 @@ "base": null, "refs": { "CreateTagsRequest$Resources": "

The IDs of one or more resources to tag. For example, ami-1a2b3c4d.

", - "DeleteTagsRequest$Resources": "

The ID of the resource. For example, ami-1a2b3c4d. You can specify more than one resource ID.

" + "DeleteTagsRequest$Resources": "

The IDs of one or more resources.

" } }, "ResourceType": { @@ -5772,6 +5784,7 @@ "AssociateSubnetCidrBlockRequest$Ipv6CidrBlock": "

The IPv6 CIDR block for your subnet. The subnet must have a /64 prefix length.

", "AssociateSubnetCidrBlockRequest$SubnetId": "

The ID of your subnet.

", "AssociateSubnetCidrBlockResult$SubnetId": "

The ID of the subnet.

", + "AssociateVpcCidrBlockRequest$CidrBlock": "

An IPv4 CIDR block to associate with the VPC.

", "AssociateVpcCidrBlockRequest$VpcId": "

The ID of the VPC.

", "AssociateVpcCidrBlockResult$VpcId": "

The ID of the VPC.

", "AssociationIdList$member": null, @@ -5827,6 +5840,7 @@ "CancelSpotFleetRequestsErrorItem$SpotFleetRequestId": "

The ID of the Spot fleet request.

", "CancelSpotFleetRequestsSuccessItem$SpotFleetRequestId": "

The ID of the Spot fleet request.

", "CancelledSpotInstanceRequest$SpotInstanceRequestId": "

The ID of the Spot instance request.

", + "CidrBlock$CidrBlock": "

The IPv4 CIDR block.

", "ClassicLinkDnsSupport$VpcId": "

The ID of the VPC.

", "ClassicLinkInstance$InstanceId": "

The ID of the instance.

", "ClassicLinkInstance$VpcId": "

The ID of the VPC.

", @@ -6666,7 +6680,7 @@ "StaleSecurityGroup$VpcId": "

The ID of the VPC for the security group.

", "StartInstancesRequest$AdditionalInfo": "

Reserved.

", "StateReason$Code": "

The reason code for the state change.

", - "StateReason$Message": "

The message for the state change.

", + "StateReason$Message": "

The message for the state change.

", "StorageLocation$Bucket": "

The name of the S3 bucket.

", "StorageLocation$Key": "

The key.

", "Subnet$AvailabilityZone": "

The Availability Zone of the subnet.

", @@ -6726,10 +6740,12 @@ "VolumeStatusEvent$EventType": "

The type of this event.

", "VolumeStatusItem$AvailabilityZone": "

The Availability Zone of the volume.

", "VolumeStatusItem$VolumeId": "

The volume ID.

", - "Vpc$CidrBlock": "

The IPv4 CIDR block for the VPC.

", + "Vpc$CidrBlock": "

The primary IPv4 CIDR block for the VPC.

", "Vpc$DhcpOptionsId": "

The ID of the set of DHCP options you've associated with the VPC (or default if the default options are associated with the VPC).

", "Vpc$VpcId": "

The ID of the VPC.

", "VpcAttachment$VpcId": "

The ID of the VPC.

", + "VpcCidrBlockAssociation$AssociationId": "

The association ID for the IPv4 CIDR block.

", + "VpcCidrBlockAssociation$CidrBlock": "

The IPv4 CIDR block.

", "VpcCidrBlockState$StatusMessage": "

A message about the status of the CIDR block, if applicable.

", "VpcClassicLink$VpcId": "

The ID of the VPC.

", "VpcClassicLinkIdList$member": null, @@ -6839,7 +6855,7 @@ "ConversionTask$Tags": "

Any tags assigned to the task.

", "CreateTagsRequest$Tags": "

One or more tags. The value parameter is required, but if you don't want the tag to have a value, specify the parameter with no value, and we set the value to an empty string.

", "CustomerGateway$Tags": "

Any tags assigned to the customer gateway.

", - "DeleteTagsRequest$Tags": "

One or more tags to delete. If you omit the value parameter, we delete the tag regardless of its value. If you specify this parameter with an empty string as the value, we delete the key only if its value is an empty string.

", + "DeleteTagsRequest$Tags": "

One or more tags to delete. If you omit this parameter, we delete all tags for the specified resources. Specify a tag key and an optional tag value to delete specific tags. If you specify a tag key without a tag value, we delete any tag with this key regardless of its value. If you specify a tag key with an empty string as the tag value, we delete the tag only if its value is an empty string.

", "DhcpOptions$Tags": "

Any tags assigned to the DHCP options set.

", "FpgaImage$Tags": "

Any tags assigned to the AFI.

", "Image$Tags": "

Any tags assigned to the image.

", @@ -7277,9 +7293,24 @@ "DescribeVpcAttributeRequest$Attribute": "

The VPC attribute.

" } }, + "VpcCidrBlockAssociation": { + "base": "

Describes an IPv4 CIDR block associated with a VPC.

", + "refs": { + "AssociateVpcCidrBlockResult$CidrBlockAssociation": "

Information about the IPv4 CIDR block association.

", + "DisassociateVpcCidrBlockResult$CidrBlockAssociation": "

Information about the IPv4 CIDR block association.

", + "VpcCidrBlockAssociationSet$member": null + } + }, + "VpcCidrBlockAssociationSet": { + "base": null, + "refs": { + "Vpc$CidrBlockAssociationSet": "

Information about the IPv4 CIDR blocks associated with the VPC.

" + } + }, "VpcCidrBlockState": { "base": "

Describes the state of a CIDR block.

", "refs": { + "VpcCidrBlockAssociation$CidrBlockState": "

Information about the state of the CIDR block.

", "VpcIpv6CidrBlockAssociation$Ipv6CidrBlockState": "

Information about the state of the CIDR block.

" } }, diff --git a/service/ec2/api.go b/service/ec2/api.go index 2b08d6c1c70..ea0748209ec 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -954,8 +954,13 @@ func (c *EC2) AssociateVpcCidrBlockRequest(input *AssociateVpcCidrBlockInput) (r // AssociateVpcCidrBlock API operation for Amazon Elastic Compute Cloud. // -// Associates a CIDR block with your VPC. You can only associate a single Amazon-provided -// IPv6 CIDR block with your VPC. The IPv6 CIDR block size is fixed at /56. +// Associates a CIDR block with your VPC. You can associate a secondary IPv4 +// CIDR block, or you can associate an Amazon-provided IPv6 CIDR block. The +// IPv6 CIDR block size is fixed at /56. +// +// For more information about associating CIDR blocks with your VPC and applicable +// restrictions, see VPC and Subnet Sizing (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Subnets.html#VPC_Sizing) +// in the Amazon Virtual Private Cloud User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -4412,14 +4417,13 @@ func (c *EC2) CreateSubnetRequest(input *CreateSubnetInput) (req *request.Reques // // Creates a subnet in an existing VPC. // -// When you create each subnet, you provide the VPC ID and the CIDR block you -// want for the subnet. After you create a subnet, you can't change its CIDR -// block. The subnet's IPv4 CIDR block can be the same as the VPC's IPv4 CIDR -// block (assuming you want only a single subnet in the VPC), or a subset of -// the VPC's IPv4 CIDR block. If you create more than one subnet in a VPC, the -// subnets' CIDR blocks must not overlap. The smallest IPv4 subnet (and VPC) -// you can create uses a /28 netmask (16 IPv4 addresses), and the largest uses -// a /16 netmask (65,536 IPv4 addresses). +// When you create each subnet, you provide the VPC ID and the IPv4 CIDR block +// you want for the subnet. After you create a subnet, you can't change its +// CIDR block. The size of the subnet's IPv4 CIDR block can be the same as a +// VPC's IPv4 CIDR block, or a subset of a VPC's IPv4 CIDR block. If you create +// more than one subnet in a VPC, the subnets' CIDR blocks must not overlap. +// The smallest IPv4 subnet (and VPC) you can create uses a /28 netmask (16 +// IPv4 addresses), and the largest uses a /16 netmask (65,536 IPv4 addresses). // // If you've associated an IPv6 CIDR block with your VPC, you can create a subnet // with an IPv6 CIDR block that uses a /64 prefix length. @@ -6598,10 +6602,10 @@ func (c *EC2) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, o // DeleteTags API operation for Amazon Elastic Compute Cloud. // -// Deletes the specified set of tags from the specified set of resources. This -// call is designed to follow a DescribeTags request. +// Deletes the specified set of tags from the specified set of resources. // -// For more information about tags, see Tagging Your Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) +// To list the current tags, use DescribeTags. For more information about tags, +// see Tagging Your Resources (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html) // in the Amazon Elastic Compute Cloud User Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -14446,9 +14450,13 @@ func (c *EC2) DisassociateVpcCidrBlockRequest(input *DisassociateVpcCidrBlockInp // DisassociateVpcCidrBlock API operation for Amazon Elastic Compute Cloud. // -// Disassociates a CIDR block from a VPC. Currently, you can disassociate an -// IPv6 CIDR block only. You must detach or delete all gateways and resources -// that are associated with the CIDR block before you can disassociate it. +// Disassociates a CIDR block from a VPC. To disassociate the CIDR block, you +// must specify its association ID. You can get the association ID by using +// DescribeVpcs. You must detach or delete all gateways and resources that are +// associated with the CIDR block before you can disassociate it. +// +// You cannot disassociate the CIDR block with which you originally created +// the VPC (the primary CIDR block). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -20975,6 +20983,9 @@ type AssociateVpcCidrBlockInput struct { // CIDR block. AmazonProvidedIpv6CidrBlock *bool `locationName:"amazonProvidedIpv6CidrBlock" type:"boolean"` + // An IPv4 CIDR block to associate with the VPC. + CidrBlock *string `type:"string"` + // The ID of the VPC. // // VpcId is a required field @@ -21010,6 +21021,12 @@ func (s *AssociateVpcCidrBlockInput) SetAmazonProvidedIpv6CidrBlock(v bool) *Ass return s } +// SetCidrBlock sets the CidrBlock field's value. +func (s *AssociateVpcCidrBlockInput) SetCidrBlock(v string) *AssociateVpcCidrBlockInput { + s.CidrBlock = &v + return s +} + // SetVpcId sets the VpcId field's value. func (s *AssociateVpcCidrBlockInput) SetVpcId(v string) *AssociateVpcCidrBlockInput { s.VpcId = &v @@ -21020,6 +21037,9 @@ func (s *AssociateVpcCidrBlockInput) SetVpcId(v string) *AssociateVpcCidrBlockIn type AssociateVpcCidrBlockOutput struct { _ struct{} `type:"structure"` + // Information about the IPv4 CIDR block association. + CidrBlockAssociation *VpcCidrBlockAssociation `locationName:"cidrBlockAssociation" type:"structure"` + // Information about the IPv6 CIDR block association. Ipv6CidrBlockAssociation *VpcIpv6CidrBlockAssociation `locationName:"ipv6CidrBlockAssociation" type:"structure"` @@ -21037,6 +21057,12 @@ func (s AssociateVpcCidrBlockOutput) GoString() string { return s.String() } +// SetCidrBlockAssociation sets the CidrBlockAssociation field's value. +func (s *AssociateVpcCidrBlockOutput) SetCidrBlockAssociation(v *VpcCidrBlockAssociation) *AssociateVpcCidrBlockOutput { + s.CidrBlockAssociation = v + return s +} + // SetIpv6CidrBlockAssociation sets the Ipv6CidrBlockAssociation field's value. func (s *AssociateVpcCidrBlockOutput) SetIpv6CidrBlockAssociation(v *VpcIpv6CidrBlockAssociation) *AssociateVpcCidrBlockOutput { s.Ipv6CidrBlockAssociation = v @@ -22964,6 +22990,31 @@ func (s *CancelledSpotInstanceRequest) SetState(v string) *CancelledSpotInstance return s } +// Describes an IPv4 CIDR block. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CidrBlock +type CidrBlock struct { + _ struct{} `type:"structure"` + + // The IPv4 CIDR block. + CidrBlock *string `locationName:"cidrBlock" type:"string"` +} + +// String returns the string representation +func (s CidrBlock) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CidrBlock) GoString() string { + return s.String() +} + +// SetCidrBlock sets the CidrBlock field's value. +func (s *CidrBlock) SetCidrBlock(v string) *CidrBlock { + s.CidrBlock = &v + return s +} + // Describes the ClassicLink DNS support status of a VPC. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ClassicLinkDnsSupport type ClassicLinkDnsSupport struct { @@ -28236,15 +28287,17 @@ type DeleteTagsInput struct { // it is UnauthorizedOperation. DryRun *bool `locationName:"dryRun" type:"boolean"` - // The ID of the resource. For example, ami-1a2b3c4d. You can specify more than - // one resource ID. + // The IDs of one or more resources. // // Resources is a required field Resources []*string `locationName:"resourceId" type:"list" required:"true"` - // One or more tags to delete. If you omit the value parameter, we delete the - // tag regardless of its value. If you specify this parameter with an empty - // string as the value, we delete the key only if its value is an empty string. + // One or more tags to delete. If you omit this parameter, we delete all tags + // for the specified resources. Specify a tag key and an optional tag value + // to delete specific tags. If you specify a tag key without a tag value, we + // delete any tag with this key regardless of its value. If you specify a tag + // key with an empty string as the tag value, we delete the tag only if its + // value is an empty string. Tags []*Tag `locationName:"tag" locationNameList:"item" type:"list"` } @@ -36816,10 +36869,19 @@ type DescribeVpcsInput struct { // One or more filters. // - // * cidr - The IPv4 CIDR block of the VPC. The CIDR block you specify must - // exactly match the VPC's CIDR block for information to be returned for - // the VPC. Must contain the slash followed by one or two digits (for example, - // /28). + // * cidr - The primary IPv4 CIDR block of the VPC. The CIDR block you specify + // must exactly match the VPC's CIDR block for information to be returned + // for the VPC. Must contain the slash followed by one or two digits (for + // example, /28). + // + // * cidr-block-association.cidr-block - An IPv4 CIDR block associated with + // the VPC. + // + // * cidr-block-association.association-id - The association ID for an IPv4 + // CIDR block associated with the VPC. + // + // * cidr-block-association.state - The state of an IPv4 CIDR block associated + // with the VPC. // // * dhcp-options-id - The ID of a set of DHCP options. // @@ -38129,6 +38191,9 @@ func (s *DisassociateVpcCidrBlockInput) SetAssociationId(v string) *Disassociate type DisassociateVpcCidrBlockOutput struct { _ struct{} `type:"structure"` + // Information about the IPv4 CIDR block association. + CidrBlockAssociation *VpcCidrBlockAssociation `locationName:"cidrBlockAssociation" type:"structure"` + // Information about the IPv6 CIDR block association. Ipv6CidrBlockAssociation *VpcIpv6CidrBlockAssociation `locationName:"ipv6CidrBlockAssociation" type:"structure"` @@ -38146,6 +38211,12 @@ func (s DisassociateVpcCidrBlockOutput) GoString() string { return s.String() } +// SetCidrBlockAssociation sets the CidrBlockAssociation field's value. +func (s *DisassociateVpcCidrBlockOutput) SetCidrBlockAssociation(v *VpcCidrBlockAssociation) *DisassociateVpcCidrBlockOutput { + s.CidrBlockAssociation = v + return s +} + // SetIpv6CidrBlockAssociation sets the Ipv6CidrBlockAssociation field's value. func (s *DisassociateVpcCidrBlockOutput) SetIpv6CidrBlockAssociation(v *VpcIpv6CidrBlockAssociation) *DisassociateVpcCidrBlockOutput { s.Ipv6CidrBlockAssociation = v @@ -55520,6 +55591,9 @@ type StateReason struct { // * Client.InstanceInitiatedShutdown: The instance was shut down using the // shutdown -h command from the instance. // + // * Client.InstanceTerminated: The instance was terminated or rebooted during + // AMI creation. + // // * Client.UserInitiatedShutdown: The instance was shut down using the Amazon // EC2 API. // @@ -57391,9 +57465,12 @@ func (s *VolumeStatusItem) SetVolumeStatus(v *VolumeStatusInfo) *VolumeStatusIte type Vpc struct { _ struct{} `type:"structure"` - // The IPv4 CIDR block for the VPC. + // The primary IPv4 CIDR block for the VPC. CidrBlock *string `locationName:"cidrBlock" type:"string"` + // Information about the IPv4 CIDR blocks associated with the VPC. + CidrBlockAssociationSet []*VpcCidrBlockAssociation `locationName:"cidrBlockAssociationSet" locationNameList:"item" type:"list"` + // The ID of the set of DHCP options you've associated with the VPC (or default // if the default options are associated with the VPC). DhcpOptionsId *string `locationName:"dhcpOptionsId" type:"string"` @@ -57433,6 +57510,12 @@ func (s *Vpc) SetCidrBlock(v string) *Vpc { return s } +// SetCidrBlockAssociationSet sets the CidrBlockAssociationSet field's value. +func (s *Vpc) SetCidrBlockAssociationSet(v []*VpcCidrBlockAssociation) *Vpc { + s.CidrBlockAssociationSet = v + return s +} + // SetDhcpOptionsId sets the DhcpOptionsId field's value. func (s *Vpc) SetDhcpOptionsId(v string) *Vpc { s.DhcpOptionsId = &v @@ -57509,6 +57592,49 @@ func (s *VpcAttachment) SetVpcId(v string) *VpcAttachment { return s } +// Describes an IPv4 CIDR block associated with a VPC. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcCidrBlockAssociation +type VpcCidrBlockAssociation struct { + _ struct{} `type:"structure"` + + // The association ID for the IPv4 CIDR block. + AssociationId *string `locationName:"associationId" type:"string"` + + // The IPv4 CIDR block. + CidrBlock *string `locationName:"cidrBlock" type:"string"` + + // Information about the state of the CIDR block. + CidrBlockState *VpcCidrBlockState `locationName:"cidrBlockState" type:"structure"` +} + +// String returns the string representation +func (s VpcCidrBlockAssociation) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s VpcCidrBlockAssociation) GoString() string { + return s.String() +} + +// SetAssociationId sets the AssociationId field's value. +func (s *VpcCidrBlockAssociation) SetAssociationId(v string) *VpcCidrBlockAssociation { + s.AssociationId = &v + return s +} + +// SetCidrBlock sets the CidrBlock field's value. +func (s *VpcCidrBlockAssociation) SetCidrBlock(v string) *VpcCidrBlockAssociation { + s.CidrBlock = &v + return s +} + +// SetCidrBlockState sets the CidrBlockState field's value. +func (s *VpcCidrBlockAssociation) SetCidrBlockState(v *VpcCidrBlockState) *VpcCidrBlockAssociation { + s.CidrBlockState = v + return s +} + // Describes the state of a CIDR block. // Please also see https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcCidrBlockState type VpcCidrBlockState struct { @@ -57868,6 +57994,9 @@ type VpcPeeringConnectionVpcInfo struct { // The IPv4 CIDR block for the VPC. CidrBlock *string `locationName:"cidrBlock" type:"string"` + // Information about the IPv4 CIDR blocks for the VPC. + CidrBlockSet []*CidrBlock `locationName:"cidrBlockSet" locationNameList:"item" type:"list"` + // The IPv6 CIDR block for the VPC. Ipv6CidrBlockSet []*Ipv6CidrBlock `locationName:"ipv6CidrBlockSet" locationNameList:"item" type:"list"` @@ -57898,6 +58027,12 @@ func (s *VpcPeeringConnectionVpcInfo) SetCidrBlock(v string) *VpcPeeringConnecti return s } +// SetCidrBlockSet sets the CidrBlockSet field's value. +func (s *VpcPeeringConnectionVpcInfo) SetCidrBlockSet(v []*CidrBlock) *VpcPeeringConnectionVpcInfo { + s.CidrBlockSet = v + return s +} + // SetIpv6CidrBlockSet sets the Ipv6CidrBlockSet field's value. func (s *VpcPeeringConnectionVpcInfo) SetIpv6CidrBlockSet(v []*Ipv6CidrBlock) *VpcPeeringConnectionVpcInfo { s.Ipv6CidrBlockSet = v