diff --git a/CHANGELOG.md b/CHANGELOG.md index 249dba56797..adabae842eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +Release v1.38.49 (2021-05-27) +=== + +### Service Client Updates +* `service/ec2`: Updates service API, documentation, and paginators + * This release removes resource ids and tagging support for VPC security group rules. + Release v1.38.48 (2021-05-26) === diff --git a/aws/version.go b/aws/version.go index cca6a68d158..e0d4f2a8665 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.38.48" +const SDKVersion = "1.38.49" diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 5b86edd6df7..40074613174 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -268,8 +268,7 @@ "method":"POST", "requestUri":"/" }, - "input":{"shape":"AuthorizeSecurityGroupEgressRequest"}, - "output":{"shape":"AuthorizeSecurityGroupEgressResult"} + "input":{"shape":"AuthorizeSecurityGroupEgressRequest"} }, "AuthorizeSecurityGroupIngress":{ "name":"AuthorizeSecurityGroupIngress", @@ -277,8 +276,7 @@ "method":"POST", "requestUri":"/" }, - "input":{"shape":"AuthorizeSecurityGroupIngressRequest"}, - "output":{"shape":"AuthorizeSecurityGroupIngressResult"} + "input":{"shape":"AuthorizeSecurityGroupIngressRequest"} }, "BundleInstance":{ "name":"BundleInstance", @@ -2189,15 +2187,6 @@ "input":{"shape":"DescribeSecurityGroupReferencesRequest"}, "output":{"shape":"DescribeSecurityGroupReferencesResult"} }, - "DescribeSecurityGroupRules":{ - "name":"DescribeSecurityGroupRules", - "http":{ - "method":"POST", - "requestUri":"/" - }, - "input":{"shape":"DescribeSecurityGroupRulesRequest"}, - "output":{"shape":"DescribeSecurityGroupRulesResult"} - }, "DescribeSecurityGroups":{ "name":"DescribeSecurityGroups", "http":{ @@ -3310,15 +3299,6 @@ "input":{"shape":"ModifyReservedInstancesRequest"}, "output":{"shape":"ModifyReservedInstancesResult"} }, - "ModifySecurityGroupRules":{ - "name":"ModifySecurityGroupRules", - "http":{ - "method":"POST", - "requestUri":"/" - }, - "input":{"shape":"ModifySecurityGroupRulesRequest"}, - "output":{"shape":"ModifySecurityGroupRulesResult"} - }, "ModifySnapshotAttribute":{ "name":"ModifySnapshotAttribute", "http":{ @@ -5491,10 +5471,6 @@ "shape":"IpPermissionList", "locationName":"ipPermissions" }, - "TagSpecifications":{ - "shape":"TagSpecificationList", - "locationName":"TagSpecification" - }, "CidrIp":{ "shape":"String", "locationName":"cidrIp" @@ -5521,19 +5497,6 @@ } } }, - "AuthorizeSecurityGroupEgressResult":{ - "type":"structure", - "members":{ - "Return":{ - "shape":"Boolean", - "locationName":"return" - }, - "SecurityGroupRules":{ - "shape":"SecurityGroupRuleList", - "locationName":"securityGroupRuleSet" - } - } - }, "AuthorizeSecurityGroupIngressRequest":{ "type":"structure", "members":{ @@ -5549,23 +5512,6 @@ "DryRun":{ "shape":"Boolean", "locationName":"dryRun" - }, - "TagSpecifications":{ - "shape":"TagSpecificationList", - "locationName":"TagSpecification" - } - } - }, - "AuthorizeSecurityGroupIngressResult":{ - "type":"structure", - "members":{ - "Return":{ - "shape":"Boolean", - "locationName":"return" - }, - "SecurityGroupRules":{ - "shape":"SecurityGroupRuleList", - "locationName":"securityGroupRuleSet" } } }, @@ -13227,40 +13173,6 @@ } } }, - "DescribeSecurityGroupRulesMaxResults":{ - "type":"integer", - "max":1000, - "min":5 - }, - "DescribeSecurityGroupRulesRequest":{ - "type":"structure", - "members":{ - "Filters":{ - "shape":"FilterList", - "locationName":"Filter" - }, - "SecurityGroupRuleIds":{ - "shape":"SecurityGroupRuleIdList", - "locationName":"SecurityGroupRuleId" - }, - "DryRun":{"shape":"Boolean"}, - "NextToken":{"shape":"String"}, - "MaxResults":{"shape":"DescribeSecurityGroupRulesMaxResults"} - } - }, - "DescribeSecurityGroupRulesResult":{ - "type":"structure", - "members":{ - "SecurityGroupRules":{ - "shape":"SecurityGroupRuleList", - "locationName":"securityGroupRuleSet" - }, - "NextToken":{ - "shape":"String", - "locationName":"nextToken" - } - } - }, "DescribeSecurityGroupsMaxResults":{ "type":"integer", "max":1000, @@ -20951,10 +20863,6 @@ "Description":{ "shape":"String", "locationName":"description" - }, - "SecurityGroupRuleId":{ - "shape":"SecurityGroupRuleId", - "locationName":"securityGroupRuleId" } } }, @@ -21069,10 +20977,6 @@ "Description":{ "shape":"String", "locationName":"description" - }, - "SecurityGroupRuleId":{ - "shape":"SecurityGroupRuleId", - "locationName":"securityGroupRuleId" } } }, @@ -23164,30 +23068,6 @@ } } }, - "ModifySecurityGroupRulesRequest":{ - "type":"structure", - "required":[ - "GroupId", - "SecurityGroupRules" - ], - "members":{ - "GroupId":{"shape":"SecurityGroupId"}, - "SecurityGroupRules":{ - "shape":"SecurityGroupRuleUpdateList", - "locationName":"SecurityGroupRule" - }, - "DryRun":{"shape":"Boolean"} - } - }, - "ModifySecurityGroupRulesResult":{ - "type":"structure", - "members":{ - "Return":{ - "shape":"Boolean", - "locationName":"return" - } - } - }, "ModifySnapshotAttributeRequest":{ "type":"structure", "required":["SnapshotId"], @@ -25305,10 +25185,6 @@ "PrefixListId":{ "shape":"String", "locationName":"prefixListId" - }, - "SecurityGroupRuleId":{ - "shape":"SecurityGroupRuleId", - "locationName":"securityGroupRuleId" } } }, @@ -25986,31 +25862,6 @@ "locationName":"item" } }, - "ReferencedSecurityGroup":{ - "type":"structure", - "members":{ - "GroupId":{ - "shape":"String", - "locationName":"groupId" - }, - "PeeringStatus":{ - "shape":"String", - "locationName":"peeringStatus" - }, - "UserId":{ - "shape":"String", - "locationName":"userId" - }, - "VpcId":{ - "shape":"String", - "locationName":"vpcId" - }, - "VpcPeeringConnectionId":{ - "shape":"String", - "locationName":"vpcPeeringConnectionId" - } - } - }, "Region":{ "type":"structure", "members":{ @@ -27522,7 +27373,6 @@ "reserved-instances", "route-table", "security-group", - "security-group-rule", "snapshot", "spot-fleet-request", "spot-instances-request", @@ -27776,10 +27626,6 @@ "shape":"IpPermissionList", "locationName":"ipPermissions" }, - "SecurityGroupRuleIds":{ - "shape":"SecurityGroupRuleIdList", - "locationName":"SecurityGroupRuleId" - }, "CidrIp":{ "shape":"String", "locationName":"cidrIp" @@ -27834,10 +27680,6 @@ "DryRun":{ "shape":"Boolean", "locationName":"dryRun" - }, - "SecurityGroupRuleIds":{ - "shape":"SecurityGroupRuleIdList", - "locationName":"SecurityGroupRuleId" } } }, @@ -28731,119 +28573,6 @@ "locationName":"item" } }, - "SecurityGroupRule":{ - "type":"structure", - "members":{ - "SecurityGroupRuleId":{ - "shape":"SecurityGroupRuleId", - "locationName":"securityGroupRuleId" - }, - "GroupId":{ - "shape":"SecurityGroupId", - "locationName":"groupId" - }, - "GroupOwnerId":{ - "shape":"String", - "locationName":"groupOwnerId" - }, - "IsEgress":{ - "shape":"Boolean", - "locationName":"isEgress" - }, - "IpProtocol":{ - "shape":"String", - "locationName":"ipProtocol" - }, - "FromPort":{ - "shape":"Integer", - "locationName":"fromPort" - }, - "ToPort":{ - "shape":"Integer", - "locationName":"toPort" - }, - "CidrIpv4":{ - "shape":"String", - "locationName":"cidrIpv4" - }, - "CidrIpv6":{ - "shape":"String", - "locationName":"cidrIpv6" - }, - "PrefixListId":{ - "shape":"PrefixListResourceId", - "locationName":"prefixListId" - }, - "ReferencedGroupInfo":{ - "shape":"ReferencedSecurityGroup", - "locationName":"referencedGroupInfo" - }, - "Description":{ - "shape":"String", - "locationName":"description" - }, - "Tags":{ - "shape":"TagList", - "locationName":"tagSet" - } - } - }, - "SecurityGroupRuleDescription":{ - "type":"structure", - "members":{ - "SecurityGroupRuleId":{"shape":"String"}, - "Description":{"shape":"String"} - } - }, - "SecurityGroupRuleDescriptionList":{ - "type":"list", - "member":{ - "shape":"SecurityGroupRuleDescription", - "locationName":"item" - } - }, - "SecurityGroupRuleId":{"type":"string"}, - "SecurityGroupRuleIdList":{ - "type":"list", - "member":{ - "shape":"String", - "locationName":"item" - } - }, - "SecurityGroupRuleList":{ - "type":"list", - "member":{ - "shape":"SecurityGroupRule", - "locationName":"item" - } - }, - "SecurityGroupRuleRequest":{ - "type":"structure", - "members":{ - "IpProtocol":{"shape":"String"}, - "FromPort":{"shape":"Integer"}, - "ToPort":{"shape":"Integer"}, - "CidrIpv4":{"shape":"String"}, - "CidrIpv6":{"shape":"String"}, - "PrefixListId":{"shape":"PrefixListResourceId"}, - "ReferencedGroupId":{"shape":"SecurityGroupId"}, - "Description":{"shape":"String"} - } - }, - "SecurityGroupRuleUpdate":{ - "type":"structure", - "members":{ - "SecurityGroupRuleId":{"shape":"SecurityGroupRuleId"}, - "SecurityGroupRule":{"shape":"SecurityGroupRuleRequest"} - } - }, - "SecurityGroupRuleUpdateList":{ - "type":"list", - "member":{ - "shape":"SecurityGroupRuleUpdate", - "locationName":"item" - } - }, "SecurityGroupStringList":{ "type":"list", "member":{ @@ -32381,15 +32110,12 @@ }, "UpdateSecurityGroupRuleDescriptionsEgressRequest":{ "type":"structure", + "required":["IpPermissions"], "members":{ "DryRun":{"shape":"Boolean"}, "GroupId":{"shape":"SecurityGroupId"}, "GroupName":{"shape":"SecurityGroupName"}, - "IpPermissions":{"shape":"IpPermissionList"}, - "SecurityGroupRuleDescriptions":{ - "shape":"SecurityGroupRuleDescriptionList", - "locationName":"SecurityGroupRuleDescription" - } + "IpPermissions":{"shape":"IpPermissionList"} } }, "UpdateSecurityGroupRuleDescriptionsEgressResult":{ @@ -32403,15 +32129,12 @@ }, "UpdateSecurityGroupRuleDescriptionsIngressRequest":{ "type":"structure", + "required":["IpPermissions"], "members":{ "DryRun":{"shape":"Boolean"}, "GroupId":{"shape":"SecurityGroupId"}, "GroupName":{"shape":"SecurityGroupName"}, - "IpPermissions":{"shape":"IpPermissionList"}, - "SecurityGroupRuleDescriptions":{ - "shape":"SecurityGroupRuleDescriptionList", - "locationName":"SecurityGroupRuleDescription" - } + "IpPermissions":{"shape":"IpPermissionList"} } }, "UpdateSecurityGroupRuleDescriptionsIngressResult":{ @@ -32504,10 +32227,6 @@ "VpcPeeringConnectionId":{ "shape":"String", "locationName":"vpcPeeringConnectionId" - }, - "SecurityGroupRuleId":{ - "shape":"SecurityGroupRuleId", - "locationName":"securityGroupRuleId" } } }, diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 8c2db8addc1..195a98bc6a6 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -30,8 +30,8 @@ "AttachVolume": "

Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.

Encrypted EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS encryption in the Amazon Elastic Compute Cloud User Guide.

After you attach an EBS volume, you must make it available. For more information, see Making an EBS volume available for use.

If a volume has an AWS Marketplace product code:

For more information, see Attaching Amazon EBS volumes in the Amazon Elastic Compute Cloud User Guide.

", "AttachVpnGateway": "

Attaches a virtual private gateway to a VPC. You can attach one virtual private gateway to one VPC at a time.

For more information, see AWS Site-to-Site VPN in the AWS Site-to-Site VPN User Guide.

", "AuthorizeClientVpnIngress": "

Adds an ingress authorization rule to a Client VPN endpoint. Ingress authorization rules act as firewall rules that grant access to networks. You must configure ingress authorization rules to enable clients to access resources in AWS or on-premises networks.

", - "AuthorizeSecurityGroupEgress": "

[VPC only] Adds the specified outbound (egress) rules to a security group for use with a VPC.

An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR address ranges, or to the instances that are associated with the specified destination security groups.

You specify a protocol for each rule (for example, TCP). For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

You can optionally add a tag to the security group rule.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

For information about VPC security group quotas, see Amazon VPC Limits.

", - "AuthorizeSecurityGroupIngress": "

Adds the specified inbound (ingress) rules to a security group.

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address ranges, or from the instances that are associated with the specified destination security groups.

You specify a protocol for each rule (for example, TCP). For TCP and UDP, you must also specify the destination port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean all types or all codes.

[VPC Only] You can optionally add a tag to the security group rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

For information about VPC security group quotas, see Amazon VPC Limits.

", + "AuthorizeSecurityGroupEgress": "

[VPC only] Adds the specified egress rules to a security group for use with a VPC.

An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 CIDR address ranges, or to the instances associated with the specified destination security groups.

You specify a protocol for each rule (for example, TCP). For the TCP and UDP protocols, you must also specify the destination port or port range. For the ICMP protocol, you must also specify the ICMP type and code. You can use -1 for the type or code to mean all types or all codes.

Rule changes are propagated to affected instances as quickly as possible. However, a small delay might occur.

For more information about VPC security group limits, see Amazon VPC Limits.

", + "AuthorizeSecurityGroupIngress": "

Adds the specified ingress rules to a security group.

An inbound rule permits instances to receive traffic from the specified IPv4 or IPv6 CIDR address ranges, or from the instances associated with the specified destination security groups.

You specify a protocol for each rule (for example, TCP). For TCP and UDP, you must also specify the destination port or port range. For ICMP/ICMPv6, you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean all types or all codes.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

For more information about VPC security group limits, see Amazon VPC Limits.

", "BundleInstance": "

Bundles an Amazon instance store-backed Windows instance.

During bundling, only the root device volume (C:\\) is bundled. Data on other instance store volumes is not preserved.

This action is not applicable for Linux/Unix instances or Windows instances that are backed by Amazon EBS.

", "CancelBundleTask": "

Cancels a bundling operation for an instance store-backed Windows instance.

", "CancelCapacityReservation": "

Cancels the specified Capacity Reservation, releases the reserved capacity, and changes the Capacity Reservation's state to cancelled.

Instances running in the reserved capacity continue running until you stop them. Stopped instances that target the Capacity Reservation can no longer launch. Modify these instances to either target a different Capacity Reservation, launch On-Demand Instance capacity, or run in any open Capacity Reservation that has matching attributes and sufficient capacity.

", @@ -247,7 +247,6 @@ "DescribeScheduledInstanceAvailability": "

Finds available schedules that meet the specified criteria.

You can search for an available schedule no more than 3 months in advance. You must meet the minimum required duration of 1,200 hours per year. For example, the minimum daily schedule is 4 hours, the minimum weekly schedule is 24 hours, and the minimum monthly schedule is 100 hours.

After you find a schedule that meets your needs, call PurchaseScheduledInstances to purchase Scheduled Instances with that schedule.

", "DescribeScheduledInstances": "

Describes the specified Scheduled Instances or all your Scheduled Instances.

", "DescribeSecurityGroupReferences": "

[VPC only] Describes the VPCs on the other side of a VPC peering connection that are referencing the security groups you've specified in this request.

", - "DescribeSecurityGroupRules": "

Describes one or more of your security group rules.

", "DescribeSecurityGroups": "

Describes the specified security groups or all of your security groups.

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.

", "DescribeSnapshotAttribute": "

Describes the specified attribute of the specified snapshot. You can specify only one attribute at a time.

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon Elastic Compute Cloud User Guide.

", "DescribeSnapshots": "

Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.

The snapshots available to you include public snapshots, private snapshots that you own, and private snapshots owned by other AWS accounts for which you have explicit create volume permissions.

The create volume permissions fall into the following categories:

The list of snapshots returned can be filtered by specifying snapshot IDs, snapshot owners, or AWS accounts with create volume permissions. If no options are specified, Amazon EC2 returns all snapshots for which you have create volume permissions.

If you specify one or more snapshot IDs, only snapshots that have the specified IDs are returned. If you specify an invalid snapshot ID, an error is returned. If you specify a snapshot ID for which you do not have access, it is not included in the returned results.

If you specify one or more snapshot owners using the OwnerIds option, only snapshots from the specified owners and for which you have access are returned. The results can include the AWS account IDs of the specified owners, amazon for snapshots owned by Amazon, or self for snapshots that you own.

If you specify a list of restorable users, only snapshots with create snapshot permissions for those users are returned. You can specify AWS account IDs (if you own the snapshots), self for snapshots for which you own or have explicit permissions, or all for public snapshots.

If you are describing a long list of snapshots, we recommend that you paginate the output to make the list more manageable. The MaxResults parameter sets the maximum number of results returned in a single page. If the list of results exceeds your MaxResults value, then that number of results is returned along with a NextToken value that can be passed to a subsequent DescribeSnapshots request to retrieve the remaining results.

To get the state of fast snapshot restores for a snapshot, use DescribeFastSnapshotRestores.

For more information about EBS snapshots, see Amazon EBS snapshots in the Amazon Elastic Compute Cloud User Guide.

", @@ -373,7 +372,6 @@ "ModifyManagedPrefixList": "

Modifies the specified managed prefix list.

Adding or removing entries in a prefix list creates a new version of the prefix list. Changing the name of the prefix list does not affect the version.

If you specify a current version number that does not match the true current version number, the request fails.

", "ModifyNetworkInterfaceAttribute": "

Modifies the specified network interface attribute. You can specify only one attribute at a time. You can use this action to attach and detach security groups from an existing EC2 instance.

", "ModifyReservedInstances": "

Modifies the Availability Zone, instance count, instance type, or network platform (EC2-Classic or EC2-VPC) of your Reserved Instances. The Reserved Instances to be modified must be identical, except for Availability Zone, network platform, and instance type.

For more information, see Modifying Reserved Instances in the Amazon EC2 User Guide.

", - "ModifySecurityGroupRules": "

Modifies the rules of a security group.

", "ModifySnapshotAttribute": "

Adds or removes permission settings for the specified snapshot. You may add or remove specified AWS account IDs from a snapshot's list of create volume permissions, but you cannot do both in a single operation. If you need to both add and remove account IDs for a snapshot, you must use multiple operations. You can make up to 500 modifications to a snapshot in a single operation.

Encrypted snapshots and snapshots with AWS Marketplace product codes cannot be made public. Snapshots encrypted with your default CMK cannot be shared with other accounts.

For more information about modifying snapshot permissions, see Sharing snapshots in the Amazon Elastic Compute Cloud User Guide.

", "ModifySpotFleetRequest": "

Modifies the specified Spot Fleet request.

You can only modify a Spot Fleet request of type maintain.

While the Spot Fleet request is being modified, it is in the modifying state.

To scale up your Spot Fleet, increase its target capacity. The Spot Fleet launches the additional Spot Instances according to the allocation strategy for the Spot Fleet request. If the allocation strategy is lowestPrice, the Spot Fleet launches instances using the Spot Instance pool with the lowest price. If the allocation strategy is diversified, the Spot Fleet distributes the instances across the Spot Instance pools. If the allocation strategy is capacityOptimized, Spot Fleet launches instances from Spot Instance pools with optimal capacity for the number of instances that are launching.

To scale down your Spot Fleet, decrease its target capacity. First, the Spot Fleet cancels any open requests that exceed the new target capacity. You can request that the Spot Fleet terminate Spot Instances until the size of the fleet no longer exceeds the new target capacity. If the allocation strategy is lowestPrice, the Spot Fleet terminates the instances with the highest price per unit. If the allocation strategy is capacityOptimized, the Spot Fleet terminates the instances in the Spot Instance pools that have the least available Spot Instance capacity. If the allocation strategy is diversified, the Spot Fleet terminates instances across the Spot Instance pools. Alternatively, you can request that the Spot Fleet keep the fleet at its current size, but not replace any Spot Instances that are interrupted or that you terminate manually.

If you are finished with your Spot Fleet for now, but will use it again later, you can set the target capacity to 0.

", "ModifySubnetAttribute": "

Modifies a subnet attribute. You can only modify one attribute at a time.

", @@ -433,8 +431,8 @@ "RestoreAddressToClassic": "

Restores an Elastic IP address that was previously moved to the EC2-VPC platform back to the EC2-Classic platform. You cannot move an Elastic IP address that was originally allocated for use in EC2-VPC. The Elastic IP address must not be associated with an instance or network interface.

", "RestoreManagedPrefixListVersion": "

Restores the entries from a previous version of a managed prefix list to a new version of the prefix list.

", "RevokeClientVpnIngress": "

Removes an ingress authorization rule from a Client VPN endpoint.

", - "RevokeSecurityGroupEgress": "

Removes the specified egress (outbound) rules from a security group for EC2-VPC. This action does not apply to security groups for use in EC2-Classic.

You can specify the rules that you want to remove by using one of the following methods:

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", - "RevokeSecurityGroupIngress": "

Removes the specified ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[EC2-Classic, default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked.

AWS recommends that you use DescribeSecurityGroups to verify that the rule has been removed.

You can specify the rules that you want to remove by using one of the following methods:

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RevokeSecurityGroupEgress": "

[VPC only] Removes the specified egress rules from a security group for EC2-VPC. This action does not apply to security groups for use in EC2-Classic. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[Default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked.

AWS recommends that you use DescribeSecurityGroups to verify that the rule has been removed.

Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", + "RevokeSecurityGroupIngress": "

Removes the specified ingress rules from a security group. To remove a rule, the values that you specify (for example, ports) must match the existing rule's values exactly.

[EC2-Classic , default VPC] If the values you specify do not match the existing rule's values, no error is returned, and the output describes the security group rules that were not revoked.

AWS recommends that you use DescribeSecurityGroups to verify that the rule has been removed.

Each rule consists of the protocol and the CIDR range or source security group. For the TCP and UDP protocols, you must also specify the destination port or range of ports. For the ICMP protocol, you must also specify the ICMP type and code. If the security group rule has a description, you do not have to specify the description to revoke the rule.

Rule changes are propagated to instances within the security group as quickly as possible. However, a small delay might occur.

", "RunInstances": "

Launches the specified number of instances using an AMI for which you have permissions.

You can specify a number of options, or leave the default options. The following rules apply:

You can create a launch template, which is a resource that contains the parameters to launch an instance. When you launch an instance using RunInstances, you can specify the launch template instead of specifying the launch parameters.

To ensure faster instance launches, break up large requests into smaller batches. For example, create five separate launch requests for 100 instances each instead of one launch request for 500 instances.

An instance is ready for you to use when it's in the running state. You can check the state of your instance using DescribeInstances. You can tag instances and EBS volumes during launch, after launch, or both. For more information, see CreateTags and Tagging your Amazon EC2 resources.

Linux instances have access to the public key of the key pair at boot. You can use this key to provide secure access to the instance. Amazon EC2 public images use this feature to provide secure access without passwords. For more information, see Key pairs.

For troubleshooting, see What to do if an instance immediately terminates, and Troubleshooting connecting to your instance.

", "RunScheduledInstances": "

Launches the specified Scheduled Instances.

Before you can launch a Scheduled Instance, you must purchase it and obtain an identifier using PurchaseScheduledInstances.

You must launch a Scheduled Instance during its scheduled time period. You can't stop or reboot a Scheduled Instance, but you can terminate it as needed. If you terminate a Scheduled Instance before the current scheduled time period ends, you can launch it again after a few minutes. For more information, see Scheduled Instances in the Amazon EC2 User Guide.

", "SearchLocalGatewayRoutes": "

Searches for routes in the specified local gateway route table.

", @@ -450,8 +448,8 @@ "UnassignIpv6Addresses": "

Unassigns one or more IPv6 addresses from a network interface.

", "UnassignPrivateIpAddresses": "

Unassigns one or more secondary private IP addresses from a network interface.

", "UnmonitorInstances": "

Disables detailed monitoring for a running instance. For more information, see Monitoring your instances and volumes in the Amazon EC2 User Guide.

", - "UpdateSecurityGroupRuleDescriptionsEgress": "

[VPC only] Updates the description of an egress (outbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.

You can specify the rule that you want to update by using one of the following methods:

You can remove a description for a security group rule by omitting the description parameter in the request.

", - "UpdateSecurityGroupRuleDescriptionsIngress": "

Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.

You can specify the rule that you want to update by using one of the following methods:

You can remove a description for a security group rule by omitting the description parameter in the request.

", + "UpdateSecurityGroupRuleDescriptionsEgress": "

[VPC only] Updates the description of an egress (outbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.

You specify the description as part of the IP permissions structure. You can remove a description for a security group rule by omitting the description parameter in the request.

", + "UpdateSecurityGroupRuleDescriptionsIngress": "

Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously.

You specify the description as part of the IP permissions structure. You can remove a description for a security group rule by omitting the description parameter in the request.

", "WithdrawByoipCidr": "

Stops advertising an address range that is provisioned as an address pool.

You can perform this operation at most once every 10 seconds, even if you specify different address ranges each time.

It can take a few minutes before traffic to the specified addresses stops routing to AWS because of BGP propagation delays.

" }, "shapes": { @@ -1175,21 +1173,11 @@ "refs": { } }, - "AuthorizeSecurityGroupEgressResult": { - "base": null, - "refs": { - } - }, "AuthorizeSecurityGroupIngressRequest": { "base": null, "refs": { } }, - "AuthorizeSecurityGroupIngressResult": { - "base": null, - "refs": { - } - }, "AutoAcceptSharedAssociationsValue": { "base": null, "refs": { @@ -1391,9 +1379,7 @@ "AuthorizeClientVpnIngressRequest$AuthorizeAllGroups": "

Indicates whether to grant access to all clients. Specify true to grant all clients who successfully establish a VPN connection access to the network. Must be set to true if AccessGroupId is not specified.

", "AuthorizeClientVpnIngressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "AuthorizeSecurityGroupEgressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "AuthorizeSecurityGroupEgressResult$Return": "

Returns true if the request succeeds; otherwise, returns an error.

", "AuthorizeSecurityGroupIngressRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "AuthorizeSecurityGroupIngressResult$Return": "

Returns true if the request succeeds; otherwise, returns an error.

", "BundleInstanceRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CancelBundleTaskRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "CancelCapacityReservationRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -1633,7 +1619,6 @@ "DescribeScheduledInstanceAvailabilityRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeScheduledInstancesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeSecurityGroupReferencesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "DescribeSecurityGroupRulesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeSecurityGroupsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeSnapshotAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "DescribeSnapshotsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -1826,8 +1811,6 @@ "ModifyLaunchTemplateRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifyManagedPrefixListRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifyNetworkInterfaceAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "ModifySecurityGroupRulesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", - "ModifySecurityGroupRulesResult$Return": "

Returns true if the request succeeds; otherwise, returns an error.

", "ModifySnapshotAttributeRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ModifySpotFleetRequestResponse$Return": "

Is true if the request succeeds, and an error otherwise.

", "ModifyTrafficMirrorFilterNetworkServicesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", @@ -1951,7 +1934,6 @@ "SearchTransitGatewayMulticastGroupsRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "SearchTransitGatewayRoutesRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "SearchTransitGatewayRoutesResult$AdditionalRoutesAvailable": "

Indicates whether there are additional routes available.

", - "SecurityGroupRule$IsEgress": "

Indicates whether the security group rule is an outbound rule.

", "SendDiagnosticInterruptRequest$DryRun": "

Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

", "ServiceConfiguration$AcceptanceRequired": "

Indicates whether requests from other AWS accounts to create an endpoint to the service must first be accepted.

", "ServiceConfiguration$ManagesVpcEndpoints": "

Indicates whether the service manages its VPC endpoints. Management of the service VPC endpoints using the VPC endpoint API is restricted.

", @@ -5333,22 +5315,6 @@ "refs": { } }, - "DescribeSecurityGroupRulesMaxResults": { - "base": null, - "refs": { - "DescribeSecurityGroupRulesRequest$MaxResults": "

The maximum number of results to return in a single call. To retrieve the remaining results, make another request with the returned NextToken value. This value can be between 5 and 1000. If this parameter is not specified, then all results are returned.

" - } - }, - "DescribeSecurityGroupRulesRequest": { - "base": null, - "refs": { - } - }, - "DescribeSecurityGroupRulesResult": { - "base": null, - "refs": { - } - }, "DescribeSecurityGroupsMaxResults": { "base": null, "refs": { @@ -6902,7 +6868,6 @@ "DescribeRouteTablesRequest$Filters": "

One or more filters.

", "DescribeScheduledInstanceAvailabilityRequest$Filters": "

The filters.

", "DescribeScheduledInstancesRequest$Filters": "

The filters.

", - "DescribeSecurityGroupRulesRequest$Filters": "

One or more filters.

", "DescribeSecurityGroupsRequest$Filters": "

The filters. If using multiple filters for rules, the results include security groups for which any combination of rules - not necessarily a single rule - match all filters.

", "DescribeSnapshotsRequest$Filters": "

The filters.

", "DescribeSpotInstanceRequestsRequest$Filters": "

One or more filters.

", @@ -7590,7 +7555,7 @@ "base": null, "refs": { "AttachClassicLinkVpcRequest$Groups": "

The ID of one or more of the VPC's security groups. You cannot specify security groups from a different VPC.

", - "DescribeSecurityGroupsRequest$GroupIds": "

The IDs of the security groups. Required for security groups in a nondefault VPC.

Default: Describes all of your security groups.

", + "DescribeSecurityGroupsRequest$GroupIds": "

The IDs of the security groups. Required for security groups in a nondefault VPC.

Default: Describes all your security groups.

", "LaunchTemplateInstanceNetworkInterfaceSpecification$Groups": "

The IDs of one or more security groups.

", "ModifyInstanceAttributeRequest$Groups": "

[EC2-VPC] Replaces the security groups of the instance with the specified security groups. You must specify at least one security group, even if it's just the default security group for the VPC. You must specify the security group ID, not the security group name.

" } @@ -7630,7 +7595,7 @@ "GroupNameStringList": { "base": null, "refs": { - "DescribeSecurityGroupsRequest$GroupNames": "

[EC2-Classic and default VPC only] The names of the security groups. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the group-name filter to describe security groups by name.

Default: Describes all of your security groups.

", + "DescribeSecurityGroupsRequest$GroupNames": "

[EC2-Classic and default VPC only] The names of the security groups. You can specify either the security group name or the security group ID. For security groups in a nondefault VPC, use the group-name filter to describe security groups by name.

Default: Describes all your security groups.

", "ModifySnapshotAttributeRequest$GroupNames": "

The group to modify for the snapshot.

" } }, @@ -8893,10 +8858,6 @@ "ScheduledInstancesNetworkInterface$DeviceIndex": "

The index of the device for the network interface attachment.

", "ScheduledInstancesNetworkInterface$Ipv6AddressCount": "

The number of IPv6 addresses to assign to the network interface. The IPv6 addresses are automatically selected from the subnet range.

", "ScheduledInstancesNetworkInterface$SecondaryPrivateIpAddressCount": "

The number of secondary private IPv4 addresses.

", - "SecurityGroupRule$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", - "SecurityGroupRule$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", - "SecurityGroupRuleRequest$FromPort": "

The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", - "SecurityGroupRuleRequest$ToPort": "

The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes.

", "Snapshot$VolumeSize": "

The size of the volume, in GiB.

", "SnapshotInfo$VolumeSize": "

Size of the volume from which this snapshot was created.

", "SpotFleetRequestConfigData$TargetCapacity": "

The number of units to request for the Spot Fleet. You can choose to set the target capacity in terms of instances or a performance characteristic that is important to your application workload, such as vCPUs, memory, or I/O. If the request type is maintain, you can specify a target capacity of 0 and add capacity later.

", @@ -9044,8 +9005,8 @@ "RevokeSecurityGroupIngressResult$UnknownIpPermissions": "

The inbound rules that were unknown to the service. In some cases, unknownIpPermissionSet might be in a different format from the request parameter.

", "SecurityGroup$IpPermissions": "

The inbound rules associated with the security group.

", "SecurityGroup$IpPermissionsEgress": "

[VPC only] The outbound rules associated with the security group.

", - "UpdateSecurityGroupRuleDescriptionsEgressRequest$IpPermissions": "

The IP permissions for the security group rule. You can either specify this parameter, or the SecurityGroupRuleDescriptions parameter.

", - "UpdateSecurityGroupRuleDescriptionsIngressRequest$IpPermissions": "

The IP permissions for the security group rule. You can either specify this parameter, or the SecurityGroupRuleDescriptions parameter.

" + "UpdateSecurityGroupRuleDescriptionsEgressRequest$IpPermissions": "

The IP permissions for the security group rule.

", + "UpdateSecurityGroupRuleDescriptionsIngressRequest$IpPermissions": "

The IP permissions for the security group rule.

" } }, "IpRange": { @@ -9185,7 +9146,7 @@ "KeyNameStringList": { "base": null, "refs": { - "DescribeKeyPairsRequest$KeyNames": "

The key pair names.

Default: Describes all of your key pairs.

" + "DescribeKeyPairsRequest$KeyNames": "

The key pair names.

Default: Describes all your key pairs.

" } }, "KeyPair": { @@ -10339,16 +10300,6 @@ "refs": { } }, - "ModifySecurityGroupRulesRequest": { - "base": null, - "refs": { - } - }, - "ModifySecurityGroupRulesResult": { - "base": null, - "refs": { - } - }, "ModifySnapshotAttributeRequest": { "base": null, "refs": { @@ -11559,8 +11510,6 @@ "PrefixListResourceIdStringList$member": null, "ReplaceRouteRequest$DestinationPrefixListId": "

The ID of the prefix list for the route.

", "RestoreManagedPrefixListVersionRequest$PrefixListId": "

The ID of the prefix list.

", - "SecurityGroupRule$PrefixListId": "

The ID of the prefix list.

", - "SecurityGroupRuleRequest$PrefixListId": "

The ID of the prefix list.

", "TransitGatewayPrefixListReference$PrefixListId": "

The ID of the prefix list.

", "TransitGatewayRoute$PrefixListId": "

The ID of the prefix list used for destination matches.

" } @@ -11936,12 +11885,6 @@ "ReservedInstancesOffering$RecurringCharges": "

The recurring charge tag assigned to the resource.

" } }, - "ReferencedSecurityGroup": { - "base": "

Describes the security group that is referenced in the security group rule.

", - "refs": { - "SecurityGroupRule$ReferencedGroupInfo": "

Describes the security group that is referenced in the rule.

" - } - }, "Region": { "base": "

Describes a Region.

", "refs": { @@ -12960,7 +12903,7 @@ } }, "SecurityGroup": { - "base": "

Describes a security group.

", + "base": "

Describes a security group

", "refs": { "SecurityGroupList$member": null } @@ -12973,14 +12916,11 @@ "ClientVpnSecurityGroupIdSet$member": null, "DeleteSecurityGroupRequest$GroupId": "

The ID of the security group. Required for a nondefault VPC.

", "GroupIds$member": null, - "ModifySecurityGroupRulesRequest$GroupId": "

The ID of the security group.

", "RequestSpotLaunchSpecificationSecurityGroupIdList$member": null, "RevokeSecurityGroupEgressRequest$GroupId": "

The ID of the security group.

", "RevokeSecurityGroupIngressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", "ScheduledInstancesSecurityGroupIdSet$member": null, "SecurityGroupIdStringList$member": null, - "SecurityGroupRule$GroupId": "

The ID of the security group.

", - "SecurityGroupRuleRequest$ReferencedGroupId": "

The ID of the security group that is referenced in the security group rule.

", "UpdateSecurityGroupRuleDescriptionsEgressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", "UpdateSecurityGroupRuleDescriptionsIngressRequest$GroupId": "

The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID.

", "VpcEndpointSecurityGroupIdList$member": null @@ -13034,70 +12974,6 @@ "DescribeSecurityGroupReferencesResult$SecurityGroupReferenceSet": "

Information about the VPCs with the referencing security groups.

" } }, - "SecurityGroupRule": { - "base": "

Describes a security group rule.

", - "refs": { - "SecurityGroupRuleList$member": null - } - }, - "SecurityGroupRuleDescription": { - "base": "

Describes the description of a security group rule.

You can use this when you want to update the security group rule description for either an inbound or outbound rule.

", - "refs": { - "SecurityGroupRuleDescriptionList$member": null - } - }, - "SecurityGroupRuleDescriptionList": { - "base": null, - "refs": { - "UpdateSecurityGroupRuleDescriptionsEgressRequest$SecurityGroupRuleDescriptions": "

The description for the egress security group rules. You can either specify this parameter, or the IpPermissions parameter.

", - "UpdateSecurityGroupRuleDescriptionsIngressRequest$SecurityGroupRuleDescriptions": "

[VPC only] The description for the ingress security group rules. You can either specify this parameter, or the IpPermissions parameter.

" - } - }, - "SecurityGroupRuleId": { - "base": null, - "refs": { - "IpRange$SecurityGroupRuleId": "

The ID of the security group rule.

", - "Ipv6Range$SecurityGroupRuleId": "

The ID of the security group rule.

", - "PrefixListId$SecurityGroupRuleId": "

The ID of the security group rule.

", - "SecurityGroupRule$SecurityGroupRuleId": "

The ID of the security group rule.

", - "SecurityGroupRuleUpdate$SecurityGroupRuleId": "

The ID of the security group rule.

", - "UserIdGroupPair$SecurityGroupRuleId": "

The ID of the security group rule.

" - } - }, - "SecurityGroupRuleIdList": { - "base": null, - "refs": { - "DescribeSecurityGroupRulesRequest$SecurityGroupRuleIds": "

The IDs of the security group rules.

", - "RevokeSecurityGroupEgressRequest$SecurityGroupRuleIds": "

The IDs of the security group rules.

", - "RevokeSecurityGroupIngressRequest$SecurityGroupRuleIds": "

The IDs of the security group rules.

" - } - }, - "SecurityGroupRuleList": { - "base": null, - "refs": { - "AuthorizeSecurityGroupEgressResult$SecurityGroupRules": "

Information about the outbound (egress) security group rules that were added.

", - "AuthorizeSecurityGroupIngressResult$SecurityGroupRules": "

Information about the inbound (ingress) security group rules that were added.

", - "DescribeSecurityGroupRulesResult$SecurityGroupRules": "

Information about security group rules.

" - } - }, - "SecurityGroupRuleRequest": { - "base": "

Describes a security group rule.

You can only use one of the following to specify the rule:

When you run the ModifySecurityGroupRules command, you cannot change the rule type. For example if the rules references CidrIpv4, then you must use CidrIpv4 to reference the rule.

", - "refs": { - "SecurityGroupRuleUpdate$SecurityGroupRule": "

Information about the security group rule.

" - } - }, - "SecurityGroupRuleUpdate": { - "base": "

Describes an update to a security group rule.

", - "refs": { - "SecurityGroupRuleUpdateList$member": null - } - }, - "SecurityGroupRuleUpdateList": { - "base": null, - "refs": { - "ModifySecurityGroupRulesRequest$SecurityGroupRules": "

Information about the security group properties to update.

" - } - }, "SecurityGroupStringList": { "base": null, "refs": { @@ -13703,7 +13579,7 @@ "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupName": "

Not supported. Use a set of IP permissions to specify a destination security group.

", "AuthorizeSecurityGroupEgressRequest$SourceSecurityGroupOwnerId": "

Not supported. Use a set of IP permissions to specify a destination security group.

", "AuthorizeSecurityGroupIngressRequest$CidrIp": "

The IPv4 address range, in CIDR format. You can't specify this parameter when specifying a source security group. To specify an IPv6 address range, use a set of IP permissions.

Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.

", - "AuthorizeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). To specify icmpv6, use a set of IP permissions.

[VPC only] Use -1 to specify all protocols. If you specify -1 or a protocol other than tcp, udp, or icmp, traffic on all ports is allowed, regardless of any ports that you specify.

Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.

", + "AuthorizeSecurityGroupIngressRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp) or number (see Protocol Numbers). To specify icmpv6, use a set of IP permissions.

[VPC only] Use -1 to specify all protocols. If you specify -1 or a protocol other than tcp, udp, or icmp, traffic on all ports is allowed, regardless of any ports you specify.

Alternatively, use a set of IP permissions to specify multiple rules and a description for the rule.

", "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupName": "

[EC2-Classic, default VPC] The name of the source security group. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the start of the port range, the IP protocol, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead. For EC2-VPC, the source security group must be in the same VPC.

", "AuthorizeSecurityGroupIngressRequest$SourceSecurityGroupOwnerId": "

[nondefault VPC] The AWS account ID for the source security group, if the source security group is in a different account. You can't specify this parameter in combination with the following parameters: the CIDR IP address range, the IP protocol, the start of the port range, and the end of the port range. Creates rules that grant full ICMP, UDP, and TCP access. To create a rule with a specific IP protocol and port range, use a set of IP permissions instead.

", "AvailabilityZone$RegionName": "

The name of the Region.

", @@ -14084,8 +13960,6 @@ "DescribeScheduledInstanceAvailabilityResult$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", "DescribeScheduledInstancesRequest$NextToken": "

The token for the next set of results.

", "DescribeScheduledInstancesResult$NextToken": "

The token required to retrieve the next set of results. This value is null when there are no more results to return.

", - "DescribeSecurityGroupRulesRequest$NextToken": "

The token for the next page of results.

", - "DescribeSecurityGroupRulesResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeSecurityGroupsRequest$NextToken": "

The token to request the next page of results.

", "DescribeSecurityGroupsResult$NextToken": "

The token to use to retrieve the next page of results. This value is null when there are no more results to return.

", "DescribeSnapshotAttributeResult$SnapshotId": "

The ID of the EBS snapshot.

", @@ -14408,7 +14282,7 @@ "ImportInstanceVolumeDetailItem$StatusMessage": "

The status information or errors related to the disk image.

", "ImportKeyPairRequest$KeyName": "

A unique name for the key pair.

", "ImportKeyPairResult$KeyFingerprint": "

The MD5 public key fingerprint as specified in section 4 of RFC 4716.

", - "ImportKeyPairResult$KeyName": "

The key pair name that you provided.

", + "ImportKeyPairResult$KeyName": "

The key pair name you provided.

", "ImportKeyPairResult$KeyPairId": "

The ID of the resulting key pair.

", "ImportSnapshotRequest$ClientToken": "

Token to enable idempotency for VM import requests.

", "ImportSnapshotRequest$Description": "

The description string for the import snapshot task.

", @@ -14759,11 +14633,6 @@ "PurchaseRequest$PurchaseToken": "

The purchase token.

", "PurchaseReservedInstancesOfferingResult$ReservedInstancesId": "

The IDs of the purchased Reserved Instances.

", "PurchaseScheduledInstancesRequest$ClientToken": "

Unique, case-sensitive identifier that ensures the idempotency of the request. For more information, see Ensuring Idempotency.

", - "ReferencedSecurityGroup$GroupId": "

The ID of the security group.

", - "ReferencedSecurityGroup$PeeringStatus": "

The status of a VPC peering connection, if applicable.

", - "ReferencedSecurityGroup$UserId": "

The AWS account ID.

", - "ReferencedSecurityGroup$VpcId": "

The ID of the VPC.

", - "ReferencedSecurityGroup$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", "Region$Endpoint": "

The Region service endpoint.

", "Region$RegionName": "

The name of the Region.

", "Region$OptInStatus": "

The Region opt-in status. The possible values are opt-in-not-required, opted-in, and not-opted-in.

", @@ -14921,18 +14790,6 @@ "SecurityGroupReference$GroupId": "

The ID of your security group.

", "SecurityGroupReference$ReferencingVpcId": "

The ID of the VPC with the referencing security group.

", "SecurityGroupReference$VpcPeeringConnectionId": "

The ID of the VPC peering connection.

", - "SecurityGroupRule$GroupOwnerId": "

The ID of the AWS account that owns the security group.

", - "SecurityGroupRule$IpProtocol": "

The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers).

Use -1 to specify all protocols.

", - "SecurityGroupRule$CidrIpv4": "

The IPv4 CIDR range.

", - "SecurityGroupRule$CidrIpv6": "

The IPv6 CIDR range.

", - "SecurityGroupRule$Description": "

The security group rule description.

", - "SecurityGroupRuleDescription$SecurityGroupRuleId": "

The ID of the security group rule.

", - "SecurityGroupRuleDescription$Description": "

The description of the security group rule.

", - "SecurityGroupRuleIdList$member": null, - "SecurityGroupRuleRequest$IpProtocol": "

The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers).

Use -1 to specify all protocols.

", - "SecurityGroupRuleRequest$CidrIpv4": "

The IPv4 CIDR range. To specify a single IPv4 address, use the /32 prefix length.

", - "SecurityGroupRuleRequest$CidrIpv6": "

The IPv6 CIDR range. To specify a single IPv6 address, use the /128 prefix length.

", - "SecurityGroupRuleRequest$Description": "

The description of the security group rule.

", "ServiceConfiguration$ServiceId": "

The ID of the service.

", "ServiceConfiguration$ServiceName": "

The name of the service.

", "ServiceConfiguration$PrivateDnsName": "

The private DNS name for the service.

", @@ -15455,7 +15312,6 @@ "ReservedInstancesListing$Tags": "

Any tags assigned to the resource.

", "RouteTable$Tags": "

Any tags assigned to the route table.

", "SecurityGroup$Tags": "

Any tags assigned to the security group.

", - "SecurityGroupRule$Tags": "

The tags applied to the security group rule.

", "ServiceConfiguration$Tags": "

Any tags assigned to the service.

", "ServiceDetail$Tags": "

Any tags assigned to the service.

", "Snapshot$Tags": "

Any tags assigned to the snapshot.

", @@ -15496,8 +15352,6 @@ "refs": { "AllocateAddressRequest$TagSpecifications": "

The tags to assign to the Elastic IP address.

", "AllocateHostsRequest$TagSpecifications": "

The tags to apply to the Dedicated Host during creation.

", - "AuthorizeSecurityGroupEgressRequest$TagSpecifications": "

The tags applied to the security group rule.

", - "AuthorizeSecurityGroupIngressRequest$TagSpecifications": "

[VPC Only] The tags applied to the security group rule.

", "CopySnapshotRequest$TagSpecifications": "

The tags to apply to the new snapshot.

", "CreateCapacityReservationRequest$TagSpecifications": "

The tags to apply to the Capacity Reservation during launch.

", "CreateCarrierGatewayRequest$TagSpecifications": "

The tags to associate with the carrier gateway.

", diff --git a/models/apis/ec2/2016-11-15/paginators-1.json b/models/apis/ec2/2016-11-15/paginators-1.json index e1d041efc2c..fde6975e311 100755 --- a/models/apis/ec2/2016-11-15/paginators-1.json +++ b/models/apis/ec2/2016-11-15/paginators-1.json @@ -374,12 +374,6 @@ "output_token": "NextToken", "result_key": "ScheduledInstanceSet" }, - "DescribeSecurityGroupRules": { - "input_token": "NextToken", - "limit_key": "MaxResults", - "output_token": "NextToken", - "result_key": "SecurityGroupRules" - }, "DescribeSecurityGroups": { "input_token": "NextToken", "limit_key": "MaxResults", diff --git a/service/ec2/api.go b/service/ec2/api.go index 72a783d1dcb..8550cffea5e 100644 --- a/service/ec2/api.go +++ b/service/ec2/api.go @@ -2356,29 +2356,29 @@ func (c *EC2) AuthorizeSecurityGroupEgressRequest(input *AuthorizeSecurityGroupE output = &AuthorizeSecurityGroupEgressOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } // AuthorizeSecurityGroupEgress API operation for Amazon Elastic Compute Cloud. // -// [VPC only] Adds the specified outbound (egress) rules to a security group -// for use with a VPC. +// [VPC only] Adds the specified egress rules to a security group for use with +// a VPC. // // An outbound rule permits instances to send traffic to the specified IPv4 -// or IPv6 CIDR address ranges, or to the instances that are associated with -// the specified destination security groups. +// or IPv6 CIDR address ranges, or to the instances associated with the specified +// destination security groups. // // You specify a protocol for each rule (for example, TCP). For the TCP and // UDP protocols, you must also specify the destination port or port range. // For the ICMP protocol, you must also specify the ICMP type and code. You // can use -1 for the type or code to mean all types or all codes. // -// You can optionally add a tag to the security group rule. -// // Rule changes are propagated to affected instances as quickly as possible. // However, a small delay might occur. // -// For information about VPC security group quotas, see Amazon VPC Limits (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html). +// For more information about VPC security group limits, see Amazon VPC Limits +// (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html). // // 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 @@ -2447,28 +2447,28 @@ func (c *EC2) AuthorizeSecurityGroupIngressRequest(input *AuthorizeSecurityGroup output = &AuthorizeSecurityGroupIngressOutput{} req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Swap(ec2query.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) return } // AuthorizeSecurityGroupIngress API operation for Amazon Elastic Compute Cloud. // -// Adds the specified inbound (ingress) rules to a security group. +// Adds the specified ingress rules to a security group. // // An inbound rule permits instances to receive traffic from the specified IPv4 -// or IPv6 CIDR address ranges, or from the instances that are associated with -// the specified destination security groups. +// or IPv6 CIDR address ranges, or from the instances associated with the specified +// destination security groups. // // You specify a protocol for each rule (for example, TCP). For TCP and UDP, // you must also specify the destination port or port range. For ICMP/ICMPv6, // you must also specify the ICMP/ICMPv6 type and code. You can use -1 to mean // all types or all codes. // -// [VPC Only] You can optionally add a tag to the security group rule. -// // Rule changes are propagated to instances within the security group as quickly // as possible. However, a small delay might occur. // -// For information about VPC security group quotas, see Amazon VPC Limits (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html). +// For more information about VPC security group limits, see Amazon VPC Limits +// (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html). // // 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 @@ -22869,138 +22869,6 @@ func (c *EC2) DescribeSecurityGroupReferencesWithContext(ctx aws.Context, input return out, req.Send() } -const opDescribeSecurityGroupRules = "DescribeSecurityGroupRules" - -// DescribeSecurityGroupRulesRequest generates a "aws/request.Request" representing the -// client's request for the DescribeSecurityGroupRules operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See DescribeSecurityGroupRules for more information on using the DescribeSecurityGroupRules -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the DescribeSecurityGroupRulesRequest method. -// req, resp := client.DescribeSecurityGroupRulesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupRules -func (c *EC2) DescribeSecurityGroupRulesRequest(input *DescribeSecurityGroupRulesInput) (req *request.Request, output *DescribeSecurityGroupRulesOutput) { - op := &request.Operation{ - Name: opDescribeSecurityGroupRules, - HTTPMethod: "POST", - HTTPPath: "/", - Paginator: &request.Paginator{ - InputTokens: []string{"NextToken"}, - OutputTokens: []string{"NextToken"}, - LimitToken: "MaxResults", - TruncationToken: "", - }, - } - - if input == nil { - input = &DescribeSecurityGroupRulesInput{} - } - - output = &DescribeSecurityGroupRulesOutput{} - req = c.newRequest(op, input, output) - return -} - -// DescribeSecurityGroupRules API operation for Amazon Elastic Compute Cloud. -// -// Describes one or more of your security group rules. -// -// 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 -// the error. -// -// See the AWS API reference guide for Amazon Elastic Compute Cloud's -// API operation DescribeSecurityGroupRules for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupRules -func (c *EC2) DescribeSecurityGroupRules(input *DescribeSecurityGroupRulesInput) (*DescribeSecurityGroupRulesOutput, error) { - req, out := c.DescribeSecurityGroupRulesRequest(input) - return out, req.Send() -} - -// DescribeSecurityGroupRulesWithContext is the same as DescribeSecurityGroupRules with the addition of -// the ability to pass a context and additional request options. -// -// See DescribeSecurityGroupRules for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *EC2) DescribeSecurityGroupRulesWithContext(ctx aws.Context, input *DescribeSecurityGroupRulesInput, opts ...request.Option) (*DescribeSecurityGroupRulesOutput, error) { - req, out := c.DescribeSecurityGroupRulesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - -// DescribeSecurityGroupRulesPages iterates over the pages of a DescribeSecurityGroupRules operation, -// calling the "fn" function with the response data for each page. To stop -// iterating, return false from the fn function. -// -// See DescribeSecurityGroupRules method for more information on how to use this operation. -// -// Note: This operation can generate multiple requests to a service. -// -// // Example iterating over at most 3 pages of a DescribeSecurityGroupRules operation. -// pageNum := 0 -// err := client.DescribeSecurityGroupRulesPages(params, -// func(page *ec2.DescribeSecurityGroupRulesOutput, lastPage bool) bool { -// pageNum++ -// fmt.Println(page) -// return pageNum <= 3 -// }) -// -func (c *EC2) DescribeSecurityGroupRulesPages(input *DescribeSecurityGroupRulesInput, fn func(*DescribeSecurityGroupRulesOutput, bool) bool) error { - return c.DescribeSecurityGroupRulesPagesWithContext(aws.BackgroundContext(), input, fn) -} - -// DescribeSecurityGroupRulesPagesWithContext same as DescribeSecurityGroupRulesPages except -// it takes a Context and allows setting request options on the pages. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *EC2) DescribeSecurityGroupRulesPagesWithContext(ctx aws.Context, input *DescribeSecurityGroupRulesInput, fn func(*DescribeSecurityGroupRulesOutput, bool) bool, opts ...request.Option) error { - p := request.Pagination{ - NewRequest: func() (*request.Request, error) { - var inCpy *DescribeSecurityGroupRulesInput - if input != nil { - tmp := *input - inCpy = &tmp - } - req, _ := c.DescribeSecurityGroupRulesRequest(inCpy) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return req, nil - }, - } - - for p.Next() { - if !fn(p.Page().(*DescribeSecurityGroupRulesOutput), !p.HasNextPage()) { - break - } - } - - return p.Err() -} - const opDescribeSecurityGroups = "DescribeSecurityGroups" // DescribeSecurityGroupsRequest generates a "aws/request.Request" representing the @@ -35266,80 +35134,6 @@ func (c *EC2) ModifyReservedInstancesWithContext(ctx aws.Context, input *ModifyR return out, req.Send() } -const opModifySecurityGroupRules = "ModifySecurityGroupRules" - -// ModifySecurityGroupRulesRequest generates a "aws/request.Request" representing the -// client's request for the ModifySecurityGroupRules operation. The "output" return -// value will be populated with the request's response once the request completes -// successfully. -// -// Use "Send" method on the returned Request to send the API call to the service. -// the "output" return value is not valid until after Send returns without error. -// -// See ModifySecurityGroupRules for more information on using the ModifySecurityGroupRules -// API call, and error handling. -// -// This method is useful when you want to inject custom logic or configuration -// into the SDK's request lifecycle. Such as custom headers, or retry logic. -// -// -// // Example sending a request using the ModifySecurityGroupRulesRequest method. -// req, resp := client.ModifySecurityGroupRulesRequest(params) -// -// err := req.Send() -// if err == nil { // resp is now filled -// fmt.Println(resp) -// } -// -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySecurityGroupRules -func (c *EC2) ModifySecurityGroupRulesRequest(input *ModifySecurityGroupRulesInput) (req *request.Request, output *ModifySecurityGroupRulesOutput) { - op := &request.Operation{ - Name: opModifySecurityGroupRules, - HTTPMethod: "POST", - HTTPPath: "/", - } - - if input == nil { - input = &ModifySecurityGroupRulesInput{} - } - - output = &ModifySecurityGroupRulesOutput{} - req = c.newRequest(op, input, output) - return -} - -// ModifySecurityGroupRules API operation for Amazon Elastic Compute Cloud. -// -// Modifies the rules of a security group. -// -// 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 -// the error. -// -// See the AWS API reference guide for Amazon Elastic Compute Cloud's -// API operation ModifySecurityGroupRules for usage and error information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySecurityGroupRules -func (c *EC2) ModifySecurityGroupRules(input *ModifySecurityGroupRulesInput) (*ModifySecurityGroupRulesOutput, error) { - req, out := c.ModifySecurityGroupRulesRequest(input) - return out, req.Send() -} - -// ModifySecurityGroupRulesWithContext is the same as ModifySecurityGroupRules with the addition of -// the ability to pass a context and additional request options. -// -// See ModifySecurityGroupRules for details on how to use this API operation. -// -// The context must be non-nil and will be used for request cancellation. If -// the context is nil a panic will occur. In the future the SDK may create -// sub-contexts for http.Requests. See https://golang.org/pkg/context/ -// for more information on using Contexts. -func (c *EC2) ModifySecurityGroupRulesWithContext(ctx aws.Context, input *ModifySecurityGroupRulesInput, opts ...request.Option) (*ModifySecurityGroupRulesOutput, error) { - req, out := c.ModifySecurityGroupRulesRequest(input) - req.SetContext(ctx) - req.ApplyOptions(opts...) - return out, req.Send() -} - const opModifySnapshotAttribute = "ModifySnapshotAttribute" // ModifySnapshotAttributeRequest generates a "aws/request.Request" representing the @@ -40215,26 +40009,23 @@ func (c *EC2) RevokeSecurityGroupEgressRequest(input *RevokeSecurityGroupEgressI // RevokeSecurityGroupEgress API operation for Amazon Elastic Compute Cloud. // -// Removes the specified egress (outbound) rules from a security group for EC2-VPC. -// This action does not apply to security groups for use in EC2-Classic. +// [VPC only] Removes the specified egress rules from a security group for EC2-VPC. +// This action does not apply to security groups for use in EC2-Classic. To +// remove a rule, the values that you specify (for example, ports) must match +// the existing rule's values exactly. // -// You can specify the rules that you want to remove by using one of the following -// methods: +// [Default VPC] If the values you specify do not match the existing rule's +// values, no error is returned, and the output describes the security group +// rules that were not revoked. // -// * The security group rule IDs. +// AWS recommends that you use DescribeSecurityGroups to verify that the rule +// has been removed. // -// * The security group rule properties. Each rule consists of the protocol, -// from port, to port, and the IPv4 or IPv6 CIDR range or referenced security -// group or prefix list id. For the TCP and UDP protocols, you must also -// specify the destination port or range of ports. For the ICMP protocol, -// you must also specify the ICMP type and code. If the security group rule -// has a description, you do not have to specify the description to revoke -// the rule. To remove a rule, the values that you specify (for example, -// ports) must match the existing rule's values exactly. [Default VPC] If -// the values you specify do not match the existing rule's values, no error -// is returned, and the output describes the security group rules that were -// not revoked. AWS recommends that you use DescribeSecurityGroups to verify -// that the rule has been removed. +// Each rule consists of the protocol and the IPv4 or IPv6 CIDR range or source +// security group. For the TCP and UDP protocols, you must also specify the +// destination port or range of ports. For the ICMP protocol, you must also +// specify the ICMP type and code. If the security group rule has a description, +// you do not have to specify the description to revoke the rule. // // Rule changes are propagated to instances within the security group as quickly // as possible. However, a small delay might occur. @@ -40315,30 +40106,18 @@ func (c *EC2) RevokeSecurityGroupIngressRequest(input *RevokeSecurityGroupIngres // the values that you specify (for example, ports) must match the existing // rule's values exactly. // -// [EC2-Classic, default VPC] If the values you specify do not match the existing +// [EC2-Classic , default VPC] If the values you specify do not match the existing // rule's values, no error is returned, and the output describes the security // group rules that were not revoked. // // AWS recommends that you use DescribeSecurityGroups to verify that the rule // has been removed. // -// You can specify the rules that you want to remove by using one of the following -// methods: -// -// * [VPC only] The security group rule IDs. -// -// * The security group rule properties. Each rule consists of the protocol, -// from port, to port, and the IPv4 or IPv6 CIDR range or referenced security -// group or prefix list id. For the TCP and UDP protocols, you must also -// specify the destination port or range of ports. For the ICMP protocol, -// you must also specify the ICMP type and code. If the security group rule -// has a description, you do not have to specify the description to revoke -// the rule. To remove a rule, the values that you specify (for example, -// ports) must match the existing rule's values exactly. [Default VPC] If -// the values you specify do not match the existing rule's values, no error -// is returned, and the output describes the security group rules that were -// not revoked. AWS recommends that you use DescribeSecurityGroups to verify -// that the rule has been removed. +// Each rule consists of the protocol and the CIDR range or source security +// group. For the TCP and UDP protocols, you must also specify the destination +// port or range of ports. For the ICMP protocol, you must also specify the +// ICMP type and code. If the security group rule has a description, you do +// not have to specify the description to revoke the rule. // // Rule changes are propagated to instances within the security group as quickly // as possible. However, a small delay might occur. @@ -41830,14 +41609,8 @@ func (c *EC2) UpdateSecurityGroupRuleDescriptionsEgressRequest(input *UpdateSecu // rule. You can replace an existing description, or add a description to a // rule that did not have one previously. // -// You can specify the rule that you want to update by using one of the following -// methods: -// -// * The security group rule descriptions. -// -// * The IP permissions structure. -// -// You can remove a description for a security group rule by omitting the description +// You specify the description as part of the IP permissions structure. You +// can remove a description for a security group rule by omitting the description // parameter in the request. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -41916,14 +41689,8 @@ func (c *EC2) UpdateSecurityGroupRuleDescriptionsIngressRequest(input *UpdateSec // can replace an existing description, or add a description to a rule that // did not have one previously. // -// You can specify the rule that you want to update by using one of the following -// methods: -// -// * [VPC only] The security group rule descriptions. -// -// * The IP permissions structure. -// -// You can remove a description for a security group rule by omitting the description +// You specify the description as part of the IP permissions structure. You +// can remove a description for a security group rule by omitting the description // parameter in the request. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -46007,9 +45774,6 @@ type AuthorizeSecurityGroupEgressInput struct { // group. SourceSecurityGroupOwnerId *string `locationName:"sourceSecurityGroupOwnerId" type:"string"` - // The tags applied to the security group rule. - TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` - // Not supported. Use a set of IP permissions to specify the port. ToPort *int64 `locationName:"toPort" type:"integer"` } @@ -46085,12 +45849,6 @@ func (s *AuthorizeSecurityGroupEgressInput) SetSourceSecurityGroupOwnerId(v stri return s } -// SetTagSpecifications sets the TagSpecifications field's value. -func (s *AuthorizeSecurityGroupEgressInput) SetTagSpecifications(v []*TagSpecification) *AuthorizeSecurityGroupEgressInput { - s.TagSpecifications = v - return s -} - // SetToPort sets the ToPort field's value. func (s *AuthorizeSecurityGroupEgressInput) SetToPort(v int64) *AuthorizeSecurityGroupEgressInput { s.ToPort = &v @@ -46099,12 +45857,6 @@ func (s *AuthorizeSecurityGroupEgressInput) SetToPort(v int64) *AuthorizeSecurit type AuthorizeSecurityGroupEgressOutput struct { _ struct{} `type:"structure"` - - // Returns true if the request succeeds; otherwise, returns an error. - Return *bool `locationName:"return" type:"boolean"` - - // Information about the outbound (egress) security group rules that were added. - SecurityGroupRules []*SecurityGroupRule `locationName:"securityGroupRuleSet" locationNameList:"item" type:"list"` } // String returns the string representation @@ -46117,18 +45869,6 @@ func (s AuthorizeSecurityGroupEgressOutput) GoString() string { return s.String() } -// SetReturn sets the Return field's value. -func (s *AuthorizeSecurityGroupEgressOutput) SetReturn(v bool) *AuthorizeSecurityGroupEgressOutput { - s.Return = &v - return s -} - -// SetSecurityGroupRules sets the SecurityGroupRules field's value. -func (s *AuthorizeSecurityGroupEgressOutput) SetSecurityGroupRules(v []*SecurityGroupRule) *AuthorizeSecurityGroupEgressOutput { - s.SecurityGroupRules = v - return s -} - type AuthorizeSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -46171,7 +45911,7 @@ type AuthorizeSecurityGroupIngressInput struct { // // [VPC only] Use -1 to specify all protocols. If you specify -1 or a protocol // other than tcp, udp, or icmp, traffic on all ports is allowed, regardless - // of any ports that you specify. + // of any ports you specify. // // Alternatively, use a set of IP permissions to specify multiple rules and // a description for the rule. @@ -46194,9 +45934,6 @@ type AuthorizeSecurityGroupIngressInput struct { // with a specific IP protocol and port range, use a set of IP permissions instead. SourceSecurityGroupOwnerId *string `type:"string"` - // [VPC Only] The tags applied to the security group rule. - TagSpecifications []*TagSpecification `locationName:"TagSpecification" locationNameList:"item" type:"list"` - // The end of port range for the TCP and UDP protocols, or an ICMP code number. // For the ICMP code number, use -1 to specify all codes. If you specify all // ICMP types, you must specify all codes. @@ -46270,12 +46007,6 @@ func (s *AuthorizeSecurityGroupIngressInput) SetSourceSecurityGroupOwnerId(v str return s } -// SetTagSpecifications sets the TagSpecifications field's value. -func (s *AuthorizeSecurityGroupIngressInput) SetTagSpecifications(v []*TagSpecification) *AuthorizeSecurityGroupIngressInput { - s.TagSpecifications = v - return s -} - // SetToPort sets the ToPort field's value. func (s *AuthorizeSecurityGroupIngressInput) SetToPort(v int64) *AuthorizeSecurityGroupIngressInput { s.ToPort = &v @@ -46284,12 +46015,6 @@ func (s *AuthorizeSecurityGroupIngressInput) SetToPort(v int64) *AuthorizeSecuri type AuthorizeSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` - - // Returns true if the request succeeds; otherwise, returns an error. - Return *bool `locationName:"return" type:"boolean"` - - // Information about the inbound (ingress) security group rules that were added. - SecurityGroupRules []*SecurityGroupRule `locationName:"securityGroupRuleSet" locationNameList:"item" type:"list"` } // String returns the string representation @@ -46302,18 +46027,6 @@ func (s AuthorizeSecurityGroupIngressOutput) GoString() string { return s.String() } -// SetReturn sets the Return field's value. -func (s *AuthorizeSecurityGroupIngressOutput) SetReturn(v bool) *AuthorizeSecurityGroupIngressOutput { - s.Return = &v - return s -} - -// SetSecurityGroupRules sets the SecurityGroupRules field's value. -func (s *AuthorizeSecurityGroupIngressOutput) SetSecurityGroupRules(v []*SecurityGroupRule) *AuthorizeSecurityGroupIngressOutput { - s.SecurityGroupRules = v - return s -} - // Describes Availability Zones, Local Zones, and Wavelength Zones. type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -69496,7 +69209,7 @@ type DescribeKeyPairsInput struct { // The key pair names. // - // Default: Describes all of your key pairs. + // Default: Describes all your key pairs. KeyNames []*string `locationName:"KeyName" locationNameList:"KeyName" type:"list"` // The IDs of the key pairs. @@ -73505,127 +73218,6 @@ func (s *DescribeSecurityGroupReferencesOutput) SetSecurityGroupReferenceSet(v [ return s } -type DescribeSecurityGroupRulesInput struct { - _ struct{} `type:"structure"` - - // Checks whether you have the required permissions for the action, without - // actually making the request, and provides an error response. If you have - // the required permissions, the error response is DryRunOperation. Otherwise, - // it is UnauthorizedOperation. - DryRun *bool `type:"boolean"` - - // One or more filters. - // - // * group-id - The ID of the security group. - // - // * security-group-rule-id - The ID of the security group rule. - // - // * tag: - The key/value combination of a tag assigned to the resource. - // Use the tag key in the filter name and the tag value as the filter value. - // For example, to find all resources that have a tag with the key Owner - // and the value TeamA, specify tag:Owner for the filter name and TeamA for - // the filter value. - Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` - - // The maximum number of results to return in a single call. To retrieve the - // remaining results, make another request with the returned NextToken value. - // This value can be between 5 and 1000. If this parameter is not specified, - // then all results are returned. - MaxResults *int64 `min:"5" type:"integer"` - - // The token for the next page of results. - NextToken *string `type:"string"` - - // The IDs of the security group rules. - SecurityGroupRuleIds []*string `locationName:"SecurityGroupRuleId" locationNameList:"item" type:"list"` -} - -// String returns the string representation -func (s DescribeSecurityGroupRulesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeSecurityGroupRulesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *DescribeSecurityGroupRulesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityGroupRulesInput"} - if s.MaxResults != nil && *s.MaxResults < 5 { - invalidParams.Add(request.NewErrParamMinValue("MaxResults", 5)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDryRun sets the DryRun field's value. -func (s *DescribeSecurityGroupRulesInput) SetDryRun(v bool) *DescribeSecurityGroupRulesInput { - s.DryRun = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *DescribeSecurityGroupRulesInput) SetFilters(v []*Filter) *DescribeSecurityGroupRulesInput { - s.Filters = v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *DescribeSecurityGroupRulesInput) SetMaxResults(v int64) *DescribeSecurityGroupRulesInput { - s.MaxResults = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeSecurityGroupRulesInput) SetNextToken(v string) *DescribeSecurityGroupRulesInput { - s.NextToken = &v - return s -} - -// SetSecurityGroupRuleIds sets the SecurityGroupRuleIds field's value. -func (s *DescribeSecurityGroupRulesInput) SetSecurityGroupRuleIds(v []*string) *DescribeSecurityGroupRulesInput { - s.SecurityGroupRuleIds = v - return s -} - -type DescribeSecurityGroupRulesOutput struct { - _ struct{} `type:"structure"` - - // The token to use to retrieve the next page of results. This value is null - // when there are no more results to return. - NextToken *string `locationName:"nextToken" type:"string"` - - // Information about security group rules. - SecurityGroupRules []*SecurityGroupRule `locationName:"securityGroupRuleSet" locationNameList:"item" type:"list"` -} - -// String returns the string representation -func (s DescribeSecurityGroupRulesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s DescribeSecurityGroupRulesOutput) GoString() string { - return s.String() -} - -// SetNextToken sets the NextToken field's value. -func (s *DescribeSecurityGroupRulesOutput) SetNextToken(v string) *DescribeSecurityGroupRulesOutput { - s.NextToken = &v - return s -} - -// SetSecurityGroupRules sets the SecurityGroupRules field's value. -func (s *DescribeSecurityGroupRulesOutput) SetSecurityGroupRules(v []*SecurityGroupRule) *DescribeSecurityGroupRulesOutput { - s.SecurityGroupRules = v - return s -} - type DescribeSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -73717,7 +73309,7 @@ type DescribeSecurityGroupsInput struct { // The IDs of the security groups. Required for security groups in a nondefault // VPC. // - // Default: Describes all of your security groups. + // Default: Describes all your security groups. GroupIds []*string `locationName:"GroupId" locationNameList:"groupId" type:"list"` // [EC2-Classic and default VPC only] The names of the security groups. You @@ -73725,7 +73317,7 @@ type DescribeSecurityGroupsInput struct { // security groups in a nondefault VPC, use the group-name filter to describe // security groups by name. // - // Default: Describes all of your security groups. + // Default: Describes all your security groups. GroupNames []*string `locationName:"GroupName" locationNameList:"GroupName" type:"list"` // The maximum number of results to return in a single call. To retrieve the @@ -90226,7 +89818,7 @@ type ImportKeyPairOutput struct { // The MD5 public key fingerprint as specified in section 4 of RFC 4716. KeyFingerprint *string `locationName:"keyFingerprint" type:"string"` - // The key pair name that you provided. + // The key pair name you provided. KeyName *string `locationName:"keyName" type:"string"` // The ID of the resulting key pair. @@ -93303,9 +92895,6 @@ type IpRange struct { // Constraints: Up to 255 characters in length. Allowed characters are a-z, // A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* Description *string `locationName:"description" type:"string"` - - // The ID of the security group rule. - SecurityGroupRuleId *string `locationName:"securityGroupRuleId" type:"string"` } // String returns the string representation @@ -93330,12 +92919,6 @@ func (s *IpRange) SetDescription(v string) *IpRange { return s } -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *IpRange) SetSecurityGroupRuleId(v string) *IpRange { - s.SecurityGroupRuleId = &v - return s -} - // Describes an IPv6 CIDR block association. type Ipv6CidrAssociation struct { _ struct{} `type:"structure"` @@ -93458,9 +93041,6 @@ type Ipv6Range struct { // Constraints: Up to 255 characters in length. Allowed characters are a-z, // A-Z, 0-9, spaces, and ._-:/()#,@[]+=&;{}!$* Description *string `locationName:"description" type:"string"` - - // The ID of the security group rule. - SecurityGroupRuleId *string `locationName:"securityGroupRuleId" type:"string"` } // String returns the string representation @@ -93485,12 +93065,6 @@ func (s *Ipv6Range) SetDescription(v string) *Ipv6Range { return s } -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *Ipv6Range) SetSecurityGroupRuleId(v string) *Ipv6Range { - s.SecurityGroupRuleId = &v - return s -} - // Describes a key pair. type KeyPairInfo struct { _ struct{} `type:"structure"` @@ -99353,93 +98927,6 @@ func (s *ModifyReservedInstancesOutput) SetReservedInstancesModificationId(v str return s } -type ModifySecurityGroupRulesInput struct { - _ struct{} `type:"structure"` - - // Checks whether you have the required permissions for the action, without - // actually making the request, and provides an error response. If you have - // the required permissions, the error response is DryRunOperation. Otherwise, - // it is UnauthorizedOperation. - DryRun *bool `type:"boolean"` - - // The ID of the security group. - // - // GroupId is a required field - GroupId *string `type:"string" required:"true"` - - // Information about the security group properties to update. - // - // SecurityGroupRules is a required field - SecurityGroupRules []*SecurityGroupRuleUpdate `locationName:"SecurityGroupRule" locationNameList:"item" type:"list" required:"true"` -} - -// String returns the string representation -func (s ModifySecurityGroupRulesInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifySecurityGroupRulesInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ModifySecurityGroupRulesInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ModifySecurityGroupRulesInput"} - if s.GroupId == nil { - invalidParams.Add(request.NewErrParamRequired("GroupId")) - } - if s.SecurityGroupRules == nil { - invalidParams.Add(request.NewErrParamRequired("SecurityGroupRules")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetDryRun sets the DryRun field's value. -func (s *ModifySecurityGroupRulesInput) SetDryRun(v bool) *ModifySecurityGroupRulesInput { - s.DryRun = &v - return s -} - -// SetGroupId sets the GroupId field's value. -func (s *ModifySecurityGroupRulesInput) SetGroupId(v string) *ModifySecurityGroupRulesInput { - s.GroupId = &v - return s -} - -// SetSecurityGroupRules sets the SecurityGroupRules field's value. -func (s *ModifySecurityGroupRulesInput) SetSecurityGroupRules(v []*SecurityGroupRuleUpdate) *ModifySecurityGroupRulesInput { - s.SecurityGroupRules = v - return s -} - -type ModifySecurityGroupRulesOutput struct { - _ struct{} `type:"structure"` - - // Returns true if the request succeeds; otherwise, returns an error. - Return *bool `locationName:"return" type:"boolean"` -} - -// String returns the string representation -func (s ModifySecurityGroupRulesOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ModifySecurityGroupRulesOutput) GoString() string { - return s.String() -} - -// SetReturn sets the Return field's value. -func (s *ModifySecurityGroupRulesOutput) SetReturn(v bool) *ModifySecurityGroupRulesOutput { - s.Return = &v - return s -} - type ModifySnapshotAttributeInput struct { _ struct{} `type:"structure"` @@ -105102,9 +104589,6 @@ type PrefixListId struct { // The ID of the prefix. PrefixListId *string `locationName:"prefixListId" type:"string"` - - // The ID of the security group rule. - SecurityGroupRuleId *string `locationName:"securityGroupRuleId" type:"string"` } // String returns the string representation @@ -105129,12 +104613,6 @@ func (s *PrefixListId) SetPrefixListId(v string) *PrefixListId { return s } -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *PrefixListId) SetSecurityGroupRuleId(v string) *PrefixListId { - s.SecurityGroupRuleId = &v - return s -} - // Describes the price for a Reserved Instance. type PriceSchedule struct { _ struct{} `type:"structure"` @@ -106483,66 +105961,6 @@ func (s *RecurringCharge) SetFrequency(v string) *RecurringCharge { return s } -// Describes the security group that is referenced in the security group rule. -type ReferencedSecurityGroup struct { - _ struct{} `type:"structure"` - - // The ID of the security group. - GroupId *string `locationName:"groupId" type:"string"` - - // The status of a VPC peering connection, if applicable. - PeeringStatus *string `locationName:"peeringStatus" type:"string"` - - // The AWS account ID. - UserId *string `locationName:"userId" type:"string"` - - // The ID of the VPC. - VpcId *string `locationName:"vpcId" type:"string"` - - // The ID of the VPC peering connection. - VpcPeeringConnectionId *string `locationName:"vpcPeeringConnectionId" type:"string"` -} - -// String returns the string representation -func (s ReferencedSecurityGroup) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s ReferencedSecurityGroup) GoString() string { - return s.String() -} - -// SetGroupId sets the GroupId field's value. -func (s *ReferencedSecurityGroup) SetGroupId(v string) *ReferencedSecurityGroup { - s.GroupId = &v - return s -} - -// SetPeeringStatus sets the PeeringStatus field's value. -func (s *ReferencedSecurityGroup) SetPeeringStatus(v string) *ReferencedSecurityGroup { - s.PeeringStatus = &v - return s -} - -// SetUserId sets the UserId field's value. -func (s *ReferencedSecurityGroup) SetUserId(v string) *ReferencedSecurityGroup { - s.UserId = &v - return s -} - -// SetVpcId sets the VpcId field's value. -func (s *ReferencedSecurityGroup) SetVpcId(v string) *ReferencedSecurityGroup { - s.VpcId = &v - return s -} - -// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. -func (s *ReferencedSecurityGroup) SetVpcPeeringConnectionId(v string) *ReferencedSecurityGroup { - s.VpcPeeringConnectionId = &v - return s -} - // Describes a Region. type Region struct { _ struct{} `type:"structure"` @@ -111406,9 +110824,6 @@ type RevokeSecurityGroupEgressInput struct { // number. IpProtocol *string `locationName:"ipProtocol" type:"string"` - // The IDs of the security group rules. - SecurityGroupRuleIds []*string `locationName:"SecurityGroupRuleId" locationNameList:"item" type:"list"` - // Not supported. Use a set of IP permissions to specify a destination security // group. SourceSecurityGroupName *string `locationName:"sourceSecurityGroupName" type:"string"` @@ -111480,12 +110895,6 @@ func (s *RevokeSecurityGroupEgressInput) SetIpProtocol(v string) *RevokeSecurity return s } -// SetSecurityGroupRuleIds sets the SecurityGroupRuleIds field's value. -func (s *RevokeSecurityGroupEgressInput) SetSecurityGroupRuleIds(v []*string) *RevokeSecurityGroupEgressInput { - s.SecurityGroupRuleIds = v - return s -} - // SetSourceSecurityGroupName sets the SourceSecurityGroupName field's value. func (s *RevokeSecurityGroupEgressInput) SetSourceSecurityGroupName(v string) *RevokeSecurityGroupEgressInput { s.SourceSecurityGroupName = &v @@ -111571,9 +110980,6 @@ type RevokeSecurityGroupIngressInput struct { // Use -1 to specify all. IpProtocol *string `type:"string"` - // The IDs of the security group rules. - SecurityGroupRuleIds []*string `locationName:"SecurityGroupRuleId" locationNameList:"item" type:"list"` - // [EC2-Classic, default VPC] The name of the source security group. You can't // specify this parameter in combination with the following parameters: the // CIDR IP address range, the start of the port range, the IP protocol, and @@ -111647,12 +111053,6 @@ func (s *RevokeSecurityGroupIngressInput) SetIpProtocol(v string) *RevokeSecurit return s } -// SetSecurityGroupRuleIds sets the SecurityGroupRuleIds field's value. -func (s *RevokeSecurityGroupIngressInput) SetSecurityGroupRuleIds(v []*string) *RevokeSecurityGroupIngressInput { - s.SecurityGroupRuleIds = v - return s -} - // SetSourceSecurityGroupName sets the SourceSecurityGroupName field's value. func (s *RevokeSecurityGroupIngressInput) SetSourceSecurityGroupName(v string) *RevokeSecurityGroupIngressInput { s.SourceSecurityGroupName = &v @@ -114227,7 +113627,7 @@ func (s *SearchTransitGatewayRoutesOutput) SetRoutes(v []*TransitGatewayRoute) * return s } -// Describes a security group. +// Describes a security group type SecurityGroup struct { _ struct{} `type:"structure"` @@ -114389,324 +113789,6 @@ func (s *SecurityGroupReference) SetVpcPeeringConnectionId(v string) *SecurityGr return s } -// Describes a security group rule. -type SecurityGroupRule struct { - _ struct{} `type:"structure"` - - // The IPv4 CIDR range. - CidrIpv4 *string `locationName:"cidrIpv4" type:"string"` - - // The IPv6 CIDR range. - CidrIpv6 *string `locationName:"cidrIpv6" type:"string"` - - // The security group rule description. - Description *string `locationName:"description" type:"string"` - - // The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 - // type. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 - // types, you must specify all codes. - FromPort *int64 `locationName:"fromPort" type:"integer"` - - // The ID of the security group. - GroupId *string `locationName:"groupId" type:"string"` - - // The ID of the AWS account that owns the security group. - GroupOwnerId *string `locationName:"groupOwnerId" type:"string"` - - // The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers - // (http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). - // - // Use -1 to specify all protocols. - IpProtocol *string `locationName:"ipProtocol" type:"string"` - - // Indicates whether the security group rule is an outbound rule. - IsEgress *bool `locationName:"isEgress" type:"boolean"` - - // The ID of the prefix list. - PrefixListId *string `locationName:"prefixListId" type:"string"` - - // Describes the security group that is referenced in the rule. - ReferencedGroupInfo *ReferencedSecurityGroup `locationName:"referencedGroupInfo" type:"structure"` - - // The ID of the security group rule. - SecurityGroupRuleId *string `locationName:"securityGroupRuleId" type:"string"` - - // The tags applied to the security group rule. - Tags []*Tag `locationName:"tagSet" locationNameList:"item" type:"list"` - - // The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. - // A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 - // types, you must specify all codes. - ToPort *int64 `locationName:"toPort" type:"integer"` -} - -// String returns the string representation -func (s SecurityGroupRule) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SecurityGroupRule) GoString() string { - return s.String() -} - -// SetCidrIpv4 sets the CidrIpv4 field's value. -func (s *SecurityGroupRule) SetCidrIpv4(v string) *SecurityGroupRule { - s.CidrIpv4 = &v - return s -} - -// SetCidrIpv6 sets the CidrIpv6 field's value. -func (s *SecurityGroupRule) SetCidrIpv6(v string) *SecurityGroupRule { - s.CidrIpv6 = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *SecurityGroupRule) SetDescription(v string) *SecurityGroupRule { - s.Description = &v - return s -} - -// SetFromPort sets the FromPort field's value. -func (s *SecurityGroupRule) SetFromPort(v int64) *SecurityGroupRule { - s.FromPort = &v - return s -} - -// SetGroupId sets the GroupId field's value. -func (s *SecurityGroupRule) SetGroupId(v string) *SecurityGroupRule { - s.GroupId = &v - return s -} - -// SetGroupOwnerId sets the GroupOwnerId field's value. -func (s *SecurityGroupRule) SetGroupOwnerId(v string) *SecurityGroupRule { - s.GroupOwnerId = &v - return s -} - -// SetIpProtocol sets the IpProtocol field's value. -func (s *SecurityGroupRule) SetIpProtocol(v string) *SecurityGroupRule { - s.IpProtocol = &v - return s -} - -// SetIsEgress sets the IsEgress field's value. -func (s *SecurityGroupRule) SetIsEgress(v bool) *SecurityGroupRule { - s.IsEgress = &v - return s -} - -// SetPrefixListId sets the PrefixListId field's value. -func (s *SecurityGroupRule) SetPrefixListId(v string) *SecurityGroupRule { - s.PrefixListId = &v - return s -} - -// SetReferencedGroupInfo sets the ReferencedGroupInfo field's value. -func (s *SecurityGroupRule) SetReferencedGroupInfo(v *ReferencedSecurityGroup) *SecurityGroupRule { - s.ReferencedGroupInfo = v - return s -} - -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *SecurityGroupRule) SetSecurityGroupRuleId(v string) *SecurityGroupRule { - s.SecurityGroupRuleId = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *SecurityGroupRule) SetTags(v []*Tag) *SecurityGroupRule { - s.Tags = v - return s -} - -// SetToPort sets the ToPort field's value. -func (s *SecurityGroupRule) SetToPort(v int64) *SecurityGroupRule { - s.ToPort = &v - return s -} - -// Describes the description of a security group rule. -// -// You can use this when you want to update the security group rule description -// for either an inbound or outbound rule. -type SecurityGroupRuleDescription struct { - _ struct{} `type:"structure"` - - // The description of the security group rule. - Description *string `type:"string"` - - // The ID of the security group rule. - SecurityGroupRuleId *string `type:"string"` -} - -// String returns the string representation -func (s SecurityGroupRuleDescription) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SecurityGroupRuleDescription) GoString() string { - return s.String() -} - -// SetDescription sets the Description field's value. -func (s *SecurityGroupRuleDescription) SetDescription(v string) *SecurityGroupRuleDescription { - s.Description = &v - return s -} - -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *SecurityGroupRuleDescription) SetSecurityGroupRuleId(v string) *SecurityGroupRuleDescription { - s.SecurityGroupRuleId = &v - return s -} - -// Describes a security group rule. -// -// You can only use one of the following to specify the rule: -// -// * CidrIpv4 -// -// * CidrIpv6 -// -// * PrefixListId -// -// * ReferencedGroupId -// -// When you run the ModifySecurityGroupRules (https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifySecurityGroupRules.html) -// command, you cannot change the rule type. For example if the rules references -// CidrIpv4, then you must use CidrIpv4 to reference the rule. -type SecurityGroupRuleRequest struct { - _ struct{} `type:"structure"` - - // The IPv4 CIDR range. To specify a single IPv4 address, use the /32 prefix - // length. - CidrIpv4 *string `type:"string"` - - // The IPv6 CIDR range. To specify a single IPv6 address, use the /128 prefix - // length. - CidrIpv6 *string `type:"string"` - - // The description of the security group rule. - Description *string `type:"string"` - - // The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 - // type. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 - // types, you must specify all codes. - FromPort *int64 `type:"integer"` - - // The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers - // (http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). - // - // Use -1 to specify all protocols. - IpProtocol *string `type:"string"` - - // The ID of the prefix list. - PrefixListId *string `type:"string"` - - // The ID of the security group that is referenced in the security group rule. - ReferencedGroupId *string `type:"string"` - - // The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. - // A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 - // types, you must specify all codes. - ToPort *int64 `type:"integer"` -} - -// String returns the string representation -func (s SecurityGroupRuleRequest) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SecurityGroupRuleRequest) GoString() string { - return s.String() -} - -// SetCidrIpv4 sets the CidrIpv4 field's value. -func (s *SecurityGroupRuleRequest) SetCidrIpv4(v string) *SecurityGroupRuleRequest { - s.CidrIpv4 = &v - return s -} - -// SetCidrIpv6 sets the CidrIpv6 field's value. -func (s *SecurityGroupRuleRequest) SetCidrIpv6(v string) *SecurityGroupRuleRequest { - s.CidrIpv6 = &v - return s -} - -// SetDescription sets the Description field's value. -func (s *SecurityGroupRuleRequest) SetDescription(v string) *SecurityGroupRuleRequest { - s.Description = &v - return s -} - -// SetFromPort sets the FromPort field's value. -func (s *SecurityGroupRuleRequest) SetFromPort(v int64) *SecurityGroupRuleRequest { - s.FromPort = &v - return s -} - -// SetIpProtocol sets the IpProtocol field's value. -func (s *SecurityGroupRuleRequest) SetIpProtocol(v string) *SecurityGroupRuleRequest { - s.IpProtocol = &v - return s -} - -// SetPrefixListId sets the PrefixListId field's value. -func (s *SecurityGroupRuleRequest) SetPrefixListId(v string) *SecurityGroupRuleRequest { - s.PrefixListId = &v - return s -} - -// SetReferencedGroupId sets the ReferencedGroupId field's value. -func (s *SecurityGroupRuleRequest) SetReferencedGroupId(v string) *SecurityGroupRuleRequest { - s.ReferencedGroupId = &v - return s -} - -// SetToPort sets the ToPort field's value. -func (s *SecurityGroupRuleRequest) SetToPort(v int64) *SecurityGroupRuleRequest { - s.ToPort = &v - return s -} - -// Describes an update to a security group rule. -type SecurityGroupRuleUpdate struct { - _ struct{} `type:"structure"` - - // Information about the security group rule. - SecurityGroupRule *SecurityGroupRuleRequest `type:"structure"` - - // The ID of the security group rule. - SecurityGroupRuleId *string `type:"string"` -} - -// String returns the string representation -func (s SecurityGroupRuleUpdate) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation -func (s SecurityGroupRuleUpdate) GoString() string { - return s.String() -} - -// SetSecurityGroupRule sets the SecurityGroupRule field's value. -func (s *SecurityGroupRuleUpdate) SetSecurityGroupRule(v *SecurityGroupRuleRequest) *SecurityGroupRuleUpdate { - s.SecurityGroupRule = v - return s -} - -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *SecurityGroupRuleUpdate) SetSecurityGroupRuleId(v string) *SecurityGroupRuleUpdate { - s.SecurityGroupRuleId = &v - return s -} - type SendDiagnosticInterruptInput struct { _ struct{} `type:"structure"` @@ -122110,13 +121192,10 @@ type UpdateSecurityGroupRuleDescriptionsEgressInput struct { // security group ID or the security group name in the request. GroupName *string `type:"string"` - // The IP permissions for the security group rule. You can either specify this - // parameter, or the SecurityGroupRuleDescriptions parameter. - IpPermissions []*IpPermission `locationNameList:"item" type:"list"` - - // The description for the egress security group rules. You can either specify - // this parameter, or the IpPermissions parameter. - SecurityGroupRuleDescriptions []*SecurityGroupRuleDescription `locationName:"SecurityGroupRuleDescription" locationNameList:"item" type:"list"` + // The IP permissions for the security group rule. + // + // IpPermissions is a required field + IpPermissions []*IpPermission `locationNameList:"item" type:"list" required:"true"` } // String returns the string representation @@ -122129,6 +121208,19 @@ func (s UpdateSecurityGroupRuleDescriptionsEgressInput) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSecurityGroupRuleDescriptionsEgressInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityGroupRuleDescriptionsEgressInput"} + if s.IpPermissions == nil { + invalidParams.Add(request.NewErrParamRequired("IpPermissions")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetDryRun sets the DryRun field's value. func (s *UpdateSecurityGroupRuleDescriptionsEgressInput) SetDryRun(v bool) *UpdateSecurityGroupRuleDescriptionsEgressInput { s.DryRun = &v @@ -122153,12 +121245,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsEgressInput) SetIpPermissions(v []*I return s } -// SetSecurityGroupRuleDescriptions sets the SecurityGroupRuleDescriptions field's value. -func (s *UpdateSecurityGroupRuleDescriptionsEgressInput) SetSecurityGroupRuleDescriptions(v []*SecurityGroupRuleDescription) *UpdateSecurityGroupRuleDescriptionsEgressInput { - s.SecurityGroupRuleDescriptions = v - return s -} - type UpdateSecurityGroupRuleDescriptionsEgressOutput struct { _ struct{} `type:"structure"` @@ -122200,13 +121286,10 @@ type UpdateSecurityGroupRuleDescriptionsIngressInput struct { // either the security group ID or the security group name in the request. GroupName *string `type:"string"` - // The IP permissions for the security group rule. You can either specify this - // parameter, or the SecurityGroupRuleDescriptions parameter. - IpPermissions []*IpPermission `locationNameList:"item" type:"list"` - - // [VPC only] The description for the ingress security group rules. You can - // either specify this parameter, or the IpPermissions parameter. - SecurityGroupRuleDescriptions []*SecurityGroupRuleDescription `locationName:"SecurityGroupRuleDescription" locationNameList:"item" type:"list"` + // The IP permissions for the security group rule. + // + // IpPermissions is a required field + IpPermissions []*IpPermission `locationNameList:"item" type:"list" required:"true"` } // String returns the string representation @@ -122219,6 +121302,19 @@ func (s UpdateSecurityGroupRuleDescriptionsIngressInput) GoString() string { return s.String() } +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSecurityGroupRuleDescriptionsIngressInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityGroupRuleDescriptionsIngressInput"} + if s.IpPermissions == nil { + invalidParams.Add(request.NewErrParamRequired("IpPermissions")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + // SetDryRun sets the DryRun field's value. func (s *UpdateSecurityGroupRuleDescriptionsIngressInput) SetDryRun(v bool) *UpdateSecurityGroupRuleDescriptionsIngressInput { s.DryRun = &v @@ -122243,12 +121339,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsIngressInput) SetIpPermissions(v []* return s } -// SetSecurityGroupRuleDescriptions sets the SecurityGroupRuleDescriptions field's value. -func (s *UpdateSecurityGroupRuleDescriptionsIngressInput) SetSecurityGroupRuleDescriptions(v []*SecurityGroupRuleDescription) *UpdateSecurityGroupRuleDescriptionsIngressInput { - s.SecurityGroupRuleDescriptions = v - return s -} - type UpdateSecurityGroupRuleDescriptionsIngressOutput struct { _ struct{} `type:"structure"` @@ -122389,9 +121479,6 @@ type UserIdGroupPair struct { // The status of a VPC peering connection, if applicable. PeeringStatus *string `locationName:"peeringStatus" type:"string"` - // The ID of the security group rule. - SecurityGroupRuleId *string `locationName:"securityGroupRuleId" type:"string"` - // The ID of an AWS account. // // For a referenced security group in another VPC, the account ID of the referenced @@ -122443,12 +121530,6 @@ func (s *UserIdGroupPair) SetPeeringStatus(v string) *UserIdGroupPair { return s } -// SetSecurityGroupRuleId sets the SecurityGroupRuleId field's value. -func (s *UserIdGroupPair) SetSecurityGroupRuleId(v string) *UserIdGroupPair { - s.SecurityGroupRuleId = &v - return s -} - // SetUserId sets the UserId field's value. func (s *UserIdGroupPair) SetUserId(v string) *UserIdGroupPair { s.UserId = &v @@ -129829,9 +128910,6 @@ const ( // ResourceTypeSecurityGroup is a ResourceType enum value ResourceTypeSecurityGroup = "security-group" - // ResourceTypeSecurityGroupRule is a ResourceType enum value - ResourceTypeSecurityGroupRule = "security-group-rule" - // ResourceTypeSnapshot is a ResourceType enum value ResourceTypeSnapshot = "snapshot" @@ -129919,7 +128997,6 @@ func ResourceType_Values() []string { ResourceTypeReservedInstances, ResourceTypeRouteTable, ResourceTypeSecurityGroup, - ResourceTypeSecurityGroupRule, ResourceTypeSnapshot, ResourceTypeSpotFleetRequest, ResourceTypeSpotInstancesRequest, diff --git a/service/ec2/ec2iface/interface.go b/service/ec2/ec2iface/interface.go index 300c715239e..6580b529195 100644 --- a/service/ec2/ec2iface/interface.go +++ b/service/ec2/ec2iface/interface.go @@ -1208,13 +1208,6 @@ type EC2API interface { DescribeSecurityGroupReferencesWithContext(aws.Context, *ec2.DescribeSecurityGroupReferencesInput, ...request.Option) (*ec2.DescribeSecurityGroupReferencesOutput, error) DescribeSecurityGroupReferencesRequest(*ec2.DescribeSecurityGroupReferencesInput) (*request.Request, *ec2.DescribeSecurityGroupReferencesOutput) - DescribeSecurityGroupRules(*ec2.DescribeSecurityGroupRulesInput) (*ec2.DescribeSecurityGroupRulesOutput, error) - DescribeSecurityGroupRulesWithContext(aws.Context, *ec2.DescribeSecurityGroupRulesInput, ...request.Option) (*ec2.DescribeSecurityGroupRulesOutput, error) - DescribeSecurityGroupRulesRequest(*ec2.DescribeSecurityGroupRulesInput) (*request.Request, *ec2.DescribeSecurityGroupRulesOutput) - - DescribeSecurityGroupRulesPages(*ec2.DescribeSecurityGroupRulesInput, func(*ec2.DescribeSecurityGroupRulesOutput, bool) bool) error - DescribeSecurityGroupRulesPagesWithContext(aws.Context, *ec2.DescribeSecurityGroupRulesInput, func(*ec2.DescribeSecurityGroupRulesOutput, bool) bool, ...request.Option) error - DescribeSecurityGroups(*ec2.DescribeSecurityGroupsInput) (*ec2.DescribeSecurityGroupsOutput, error) DescribeSecurityGroupsWithContext(aws.Context, *ec2.DescribeSecurityGroupsInput, ...request.Option) (*ec2.DescribeSecurityGroupsOutput, error) DescribeSecurityGroupsRequest(*ec2.DescribeSecurityGroupsInput) (*request.Request, *ec2.DescribeSecurityGroupsOutput) @@ -1835,10 +1828,6 @@ type EC2API interface { ModifyReservedInstancesWithContext(aws.Context, *ec2.ModifyReservedInstancesInput, ...request.Option) (*ec2.ModifyReservedInstancesOutput, error) ModifyReservedInstancesRequest(*ec2.ModifyReservedInstancesInput) (*request.Request, *ec2.ModifyReservedInstancesOutput) - ModifySecurityGroupRules(*ec2.ModifySecurityGroupRulesInput) (*ec2.ModifySecurityGroupRulesOutput, error) - ModifySecurityGroupRulesWithContext(aws.Context, *ec2.ModifySecurityGroupRulesInput, ...request.Option) (*ec2.ModifySecurityGroupRulesOutput, error) - ModifySecurityGroupRulesRequest(*ec2.ModifySecurityGroupRulesInput) (*request.Request, *ec2.ModifySecurityGroupRulesOutput) - ModifySnapshotAttribute(*ec2.ModifySnapshotAttributeInput) (*ec2.ModifySnapshotAttributeOutput, error) ModifySnapshotAttributeWithContext(aws.Context, *ec2.ModifySnapshotAttributeInput, ...request.Option) (*ec2.ModifySnapshotAttributeOutput, error) ModifySnapshotAttributeRequest(*ec2.ModifySnapshotAttributeInput) (*request.Request, *ec2.ModifySnapshotAttributeOutput)