aws-sdk-ec2 1.15.0 → 1.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -398,6 +398,8 @@ module Aws::EC2
398
398
  DiskImageFormat = Shapes::StringShape.new(name: 'DiskImageFormat')
399
399
  DiskImageList = Shapes::ListShape.new(name: 'DiskImageList')
400
400
  DiskImageVolumeDescription = Shapes::StructureShape.new(name: 'DiskImageVolumeDescription')
401
+ DnsEntry = Shapes::StructureShape.new(name: 'DnsEntry')
402
+ DnsEntrySet = Shapes::ListShape.new(name: 'DnsEntrySet')
401
403
  DomainType = Shapes::StringShape.new(name: 'DomainType')
402
404
  Double = Shapes::FloatShape.new(name: 'Double')
403
405
  EbsBlockDevice = Shapes::StructureShape.new(name: 'EbsBlockDevice')
@@ -463,6 +465,7 @@ module Aws::EC2
463
465
  GroupIdStringList = Shapes::ListShape.new(name: 'GroupIdStringList')
464
466
  GroupIdentifier = Shapes::StructureShape.new(name: 'GroupIdentifier')
465
467
  GroupIdentifierList = Shapes::ListShape.new(name: 'GroupIdentifierList')
468
+ GroupIdentifierSet = Shapes::ListShape.new(name: 'GroupIdentifierSet')
466
469
  GroupIds = Shapes::ListShape.new(name: 'GroupIds')
467
470
  GroupNameStringList = Shapes::ListShape.new(name: 'GroupNameStringList')
468
471
  HistoryRecord = Shapes::StructureShape.new(name: 'HistoryRecord')
@@ -828,10 +831,16 @@ module Aws::EC2
828
831
  ScheduledInstancesSecurityGroupIdSet = Shapes::ListShape.new(name: 'ScheduledInstancesSecurityGroupIdSet')
829
832
  SecurityGroup = Shapes::StructureShape.new(name: 'SecurityGroup')
830
833
  SecurityGroupIdStringList = Shapes::ListShape.new(name: 'SecurityGroupIdStringList')
834
+ SecurityGroupIdentifier = Shapes::StructureShape.new(name: 'SecurityGroupIdentifier')
831
835
  SecurityGroupList = Shapes::ListShape.new(name: 'SecurityGroupList')
832
836
  SecurityGroupReference = Shapes::StructureShape.new(name: 'SecurityGroupReference')
833
837
  SecurityGroupReferences = Shapes::ListShape.new(name: 'SecurityGroupReferences')
834
838
  SecurityGroupStringList = Shapes::ListShape.new(name: 'SecurityGroupStringList')
839
+ ServiceDetail = Shapes::StructureShape.new(name: 'ServiceDetail')
840
+ ServiceDetailSet = Shapes::ListShape.new(name: 'ServiceDetailSet')
841
+ ServiceType = Shapes::StringShape.new(name: 'ServiceType')
842
+ ServiceTypeDetail = Shapes::StructureShape.new(name: 'ServiceTypeDetail')
843
+ ServiceTypeDetailSet = Shapes::ListShape.new(name: 'ServiceTypeDetailSet')
835
844
  ShutdownBehavior = Shapes::StringShape.new(name: 'ShutdownBehavior')
836
845
  SlotDateTimeRangeRequest = Shapes::StructureShape.new(name: 'SlotDateTimeRangeRequest')
837
846
  SlotStartTimeRangeRequest = Shapes::StructureShape.new(name: 'SlotStartTimeRangeRequest')
@@ -966,6 +975,7 @@ module Aws::EC2
966
975
  VpcClassicLinkList = Shapes::ListShape.new(name: 'VpcClassicLinkList')
967
976
  VpcEndpoint = Shapes::StructureShape.new(name: 'VpcEndpoint')
968
977
  VpcEndpointSet = Shapes::ListShape.new(name: 'VpcEndpointSet')
978
+ VpcEndpointType = Shapes::StringShape.new(name: 'VpcEndpointType')
969
979
  VpcIdStringList = Shapes::ListShape.new(name: 'VpcIdStringList')
970
980
  VpcIpv6CidrBlockAssociation = Shapes::StructureShape.new(name: 'VpcIpv6CidrBlockAssociation')
971
981
  VpcIpv6CidrBlockAssociationSet = Shapes::ListShape.new(name: 'VpcIpv6CidrBlockAssociationSet')
@@ -1641,16 +1651,20 @@ module Aws::EC2
1641
1651
  CreateVolumeRequest.add_member(:tag_specifications, Shapes::ShapeRef.new(shape: TagSpecificationList, location_name: "TagSpecification"))
1642
1652
  CreateVolumeRequest.struct_class = Types::CreateVolumeRequest
1643
1653
 
1644
- CreateVpcEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
1645
1654
  CreateVpcEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
1655
+ CreateVpcEndpointRequest.add_member(:vpc_endpoint_type, Shapes::ShapeRef.new(shape: VpcEndpointType, location_name: "VpcEndpointType"))
1656
+ CreateVpcEndpointRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpcId"))
1657
+ CreateVpcEndpointRequest.add_member(:service_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ServiceName"))
1646
1658
  CreateVpcEndpointRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
1647
1659
  CreateVpcEndpointRequest.add_member(:route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RouteTableId"))
1648
- CreateVpcEndpointRequest.add_member(:service_name, Shapes::ShapeRef.new(shape: String, required: true, location_name: "ServiceName"))
1649
- CreateVpcEndpointRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpcId"))
1660
+ CreateVpcEndpointRequest.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SubnetId"))
1661
+ CreateVpcEndpointRequest.add_member(:security_group_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "SecurityGroupId"))
1662
+ CreateVpcEndpointRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "ClientToken"))
1663
+ CreateVpcEndpointRequest.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrivateDnsEnabled"))
1650
1664
  CreateVpcEndpointRequest.struct_class = Types::CreateVpcEndpointRequest
1651
1665
 
1652
- CreateVpcEndpointResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
1653
1666
  CreateVpcEndpointResult.add_member(:vpc_endpoint, Shapes::ShapeRef.new(shape: VpcEndpoint, location_name: "vpcEndpoint"))
1667
+ CreateVpcEndpointResult.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken"))
1654
1668
  CreateVpcEndpointResult.struct_class = Types::CreateVpcEndpointResult
1655
1669
 
1656
1670
  CreateVpcPeeringConnectionRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "dryRun"))
@@ -2479,23 +2493,26 @@ module Aws::EC2
2479
2493
  DescribeVpcClassicLinkResult.struct_class = Types::DescribeVpcClassicLinkResult
2480
2494
 
2481
2495
  DescribeVpcEndpointServicesRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
2496
+ DescribeVpcEndpointServicesRequest.add_member(:service_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "ServiceName"))
2497
+ DescribeVpcEndpointServicesRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
2482
2498
  DescribeVpcEndpointServicesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
2483
2499
  DescribeVpcEndpointServicesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
2484
2500
  DescribeVpcEndpointServicesRequest.struct_class = Types::DescribeVpcEndpointServicesRequest
2485
2501
 
2486
- DescribeVpcEndpointServicesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
2487
2502
  DescribeVpcEndpointServicesResult.add_member(:service_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "serviceNameSet"))
2503
+ DescribeVpcEndpointServicesResult.add_member(:service_details, Shapes::ShapeRef.new(shape: ServiceDetailSet, location_name: "serviceDetailSet"))
2504
+ DescribeVpcEndpointServicesResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
2488
2505
  DescribeVpcEndpointServicesResult.struct_class = Types::DescribeVpcEndpointServicesResult
2489
2506
 
2490
2507
  DescribeVpcEndpointsRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
2508
+ DescribeVpcEndpointsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "VpcEndpointId"))
2491
2509
  DescribeVpcEndpointsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
2492
2510
  DescribeVpcEndpointsRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location_name: "MaxResults"))
2493
2511
  DescribeVpcEndpointsRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
2494
- DescribeVpcEndpointsRequest.add_member(:vpc_endpoint_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "VpcEndpointId"))
2495
2512
  DescribeVpcEndpointsRequest.struct_class = Types::DescribeVpcEndpointsRequest
2496
2513
 
2497
- DescribeVpcEndpointsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
2498
2514
  DescribeVpcEndpointsResult.add_member(:vpc_endpoints, Shapes::ShapeRef.new(shape: VpcEndpointSet, location_name: "vpcEndpointSet"))
2515
+ DescribeVpcEndpointsResult.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "nextToken"))
2499
2516
  DescribeVpcEndpointsResult.struct_class = Types::DescribeVpcEndpointsResult
2500
2517
 
2501
2518
  DescribeVpcPeeringConnectionsRequest.add_member(:filters, Shapes::ShapeRef.new(shape: FilterList, location_name: "Filter"))
@@ -2646,6 +2663,12 @@ module Aws::EC2
2646
2663
  DiskImageVolumeDescription.add_member(:size, Shapes::ShapeRef.new(shape: Long, location_name: "size"))
2647
2664
  DiskImageVolumeDescription.struct_class = Types::DiskImageVolumeDescription
2648
2665
 
2666
+ DnsEntry.add_member(:dns_name, Shapes::ShapeRef.new(shape: String, location_name: "dnsName"))
2667
+ DnsEntry.add_member(:hosted_zone_id, Shapes::ShapeRef.new(shape: String, location_name: "hostedZoneId"))
2668
+ DnsEntry.struct_class = Types::DnsEntry
2669
+
2670
+ DnsEntrySet.member = Shapes::ShapeRef.new(shape: DnsEntry, location_name: "item")
2671
+
2649
2672
  EbsBlockDevice.add_member(:encrypted, Shapes::ShapeRef.new(shape: Boolean, location_name: "encrypted"))
2650
2673
  EbsBlockDevice.add_member(:delete_on_termination, Shapes::ShapeRef.new(shape: Boolean, location_name: "deleteOnTermination"))
2651
2674
  EbsBlockDevice.add_member(:iops, Shapes::ShapeRef.new(shape: Integer, location_name: "iops"))
@@ -2863,6 +2886,8 @@ module Aws::EC2
2863
2886
 
2864
2887
  GroupIdentifierList.member = Shapes::ShapeRef.new(shape: GroupIdentifier, location_name: "item")
2865
2888
 
2889
+ GroupIdentifierSet.member = Shapes::ShapeRef.new(shape: SecurityGroupIdentifier, location_name: "item")
2890
+
2866
2891
  GroupIds.member = Shapes::ShapeRef.new(shape: String, location_name: "item")
2867
2892
 
2868
2893
  GroupNameStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "GroupName")
@@ -3568,12 +3593,17 @@ module Aws::EC2
3568
3593
  ModifyVpcAttributeRequest.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "vpcId"))
3569
3594
  ModifyVpcAttributeRequest.struct_class = Types::ModifyVpcAttributeRequest
3570
3595
 
3571
- ModifyVpcEndpointRequest.add_member(:add_route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddRouteTableId"))
3572
3596
  ModifyVpcEndpointRequest.add_member(:dry_run, Shapes::ShapeRef.new(shape: Boolean, location_name: "DryRun"))
3597
+ ModifyVpcEndpointRequest.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpcEndpointId"))
3598
+ ModifyVpcEndpointRequest.add_member(:reset_policy, Shapes::ShapeRef.new(shape: Boolean, location_name: "ResetPolicy"))
3573
3599
  ModifyVpcEndpointRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "PolicyDocument"))
3600
+ ModifyVpcEndpointRequest.add_member(:add_route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddRouteTableId"))
3574
3601
  ModifyVpcEndpointRequest.add_member(:remove_route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveRouteTableId"))
3575
- ModifyVpcEndpointRequest.add_member(:reset_policy, Shapes::ShapeRef.new(shape: Boolean, location_name: "ResetPolicy"))
3576
- ModifyVpcEndpointRequest.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "VpcEndpointId"))
3602
+ ModifyVpcEndpointRequest.add_member(:add_subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddSubnetId"))
3603
+ ModifyVpcEndpointRequest.add_member(:remove_subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveSubnetId"))
3604
+ ModifyVpcEndpointRequest.add_member(:add_security_group_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "AddSecurityGroupId"))
3605
+ ModifyVpcEndpointRequest.add_member(:remove_security_group_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "RemoveSecurityGroupId"))
3606
+ ModifyVpcEndpointRequest.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "PrivateDnsEnabled"))
3577
3607
  ModifyVpcEndpointRequest.struct_class = Types::ModifyVpcEndpointRequest
3578
3608
 
3579
3609
  ModifyVpcEndpointResult.add_member(:return, Shapes::ShapeRef.new(shape: Boolean, location_name: "return"))
@@ -4481,6 +4511,10 @@ module Aws::EC2
4481
4511
 
4482
4512
  SecurityGroupIdStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "SecurityGroupId")
4483
4513
 
4514
+ SecurityGroupIdentifier.add_member(:group_id, Shapes::ShapeRef.new(shape: String, location_name: "groupId"))
4515
+ SecurityGroupIdentifier.add_member(:group_name, Shapes::ShapeRef.new(shape: String, location_name: "groupName"))
4516
+ SecurityGroupIdentifier.struct_class = Types::SecurityGroupIdentifier
4517
+
4484
4518
  SecurityGroupList.member = Shapes::ShapeRef.new(shape: SecurityGroup, location_name: "item")
4485
4519
 
4486
4520
  SecurityGroupReference.add_member(:group_id, Shapes::ShapeRef.new(shape: String, required: true, location_name: "groupId"))
@@ -4492,6 +4526,23 @@ module Aws::EC2
4492
4526
 
4493
4527
  SecurityGroupStringList.member = Shapes::ShapeRef.new(shape: String, location_name: "SecurityGroup")
4494
4528
 
4529
+ ServiceDetail.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
4530
+ ServiceDetail.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceTypeDetailSet, location_name: "serviceType"))
4531
+ ServiceDetail.add_member(:availability_zones, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "availabilityZoneSet"))
4532
+ ServiceDetail.add_member(:owner, Shapes::ShapeRef.new(shape: String, location_name: "owner"))
4533
+ ServiceDetail.add_member(:base_endpoint_dns_names, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "baseEndpointDnsNameSet"))
4534
+ ServiceDetail.add_member(:private_dns_name, Shapes::ShapeRef.new(shape: String, location_name: "privateDnsName"))
4535
+ ServiceDetail.add_member(:vpc_endpoint_policy_supported, Shapes::ShapeRef.new(shape: Boolean, location_name: "vpcEndpointPolicySupported"))
4536
+ ServiceDetail.add_member(:acceptance_required, Shapes::ShapeRef.new(shape: Boolean, location_name: "acceptanceRequired"))
4537
+ ServiceDetail.struct_class = Types::ServiceDetail
4538
+
4539
+ ServiceDetailSet.member = Shapes::ShapeRef.new(shape: ServiceDetail, location_name: "item")
4540
+
4541
+ ServiceTypeDetail.add_member(:service_type, Shapes::ShapeRef.new(shape: ServiceType, location_name: "serviceType"))
4542
+ ServiceTypeDetail.struct_class = Types::ServiceTypeDetail
4543
+
4544
+ ServiceTypeDetailSet.member = Shapes::ShapeRef.new(shape: ServiceTypeDetail, location_name: "item")
4545
+
4495
4546
  SlotDateTimeRangeRequest.add_member(:earliest_time, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "EarliestTime"))
4496
4547
  SlotDateTimeRangeRequest.add_member(:latest_time, Shapes::ShapeRef.new(shape: DateTime, required: true, location_name: "LatestTime"))
4497
4548
  SlotDateTimeRangeRequest.struct_class = Types::SlotDateTimeRangeRequest
@@ -4988,13 +5039,19 @@ module Aws::EC2
4988
5039
 
4989
5040
  VpcClassicLinkList.member = Shapes::ShapeRef.new(shape: VpcClassicLink, location_name: "item")
4990
5041
 
4991
- VpcEndpoint.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTimestamp"))
4992
- VpcEndpoint.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
4993
- VpcEndpoint.add_member(:route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "routeTableIdSet"))
4994
- VpcEndpoint.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
4995
- VpcEndpoint.add_member(:state, Shapes::ShapeRef.new(shape: State, location_name: "state"))
4996
5042
  VpcEndpoint.add_member(:vpc_endpoint_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcEndpointId"))
5043
+ VpcEndpoint.add_member(:vpc_endpoint_type, Shapes::ShapeRef.new(shape: VpcEndpointType, location_name: "vpcEndpointType"))
4997
5044
  VpcEndpoint.add_member(:vpc_id, Shapes::ShapeRef.new(shape: String, location_name: "vpcId"))
5045
+ VpcEndpoint.add_member(:service_name, Shapes::ShapeRef.new(shape: String, location_name: "serviceName"))
5046
+ VpcEndpoint.add_member(:state, Shapes::ShapeRef.new(shape: State, location_name: "state"))
5047
+ VpcEndpoint.add_member(:policy_document, Shapes::ShapeRef.new(shape: String, location_name: "policyDocument"))
5048
+ VpcEndpoint.add_member(:route_table_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "routeTableIdSet"))
5049
+ VpcEndpoint.add_member(:subnet_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "subnetIdSet"))
5050
+ VpcEndpoint.add_member(:groups, Shapes::ShapeRef.new(shape: GroupIdentifierSet, location_name: "groupSet"))
5051
+ VpcEndpoint.add_member(:private_dns_enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "privateDnsEnabled"))
5052
+ VpcEndpoint.add_member(:network_interface_ids, Shapes::ShapeRef.new(shape: ValueStringList, location_name: "networkInterfaceIdSet"))
5053
+ VpcEndpoint.add_member(:dns_entries, Shapes::ShapeRef.new(shape: DnsEntrySet, location_name: "dnsEntrySet"))
5054
+ VpcEndpoint.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: DateTime, location_name: "creationTimestamp"))
4998
5055
  VpcEndpoint.struct_class = Types::VpcEndpoint
4999
5056
 
5000
5057
  VpcEndpointSet.member = Shapes::ShapeRef.new(shape: VpcEndpoint, location_name: "item")
@@ -151,14 +151,11 @@ module Aws::EC2
151
151
  # })
152
152
  # @param [Hash] options ({})
153
153
  # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
154
- # The block device mapping.
155
- #
156
- # Supplying both a snapshot ID and an encryption value as arguments for
157
- # block-device mapping results in an error. This is because only blank
158
- # volumes can be encrypted on start, and these are not created from a
159
- # snapshot. If a snapshot is the basis for the volume, it contains data
160
- # by definition and its encryption status cannot be changed using this
161
- # action.
154
+ # One or more block device mapping entries. You can't specify both a
155
+ # snapshot ID and an encryption value. This is because only blank
156
+ # volumes can be encrypted on creation. If a snapshot is the basis for a
157
+ # volume, it is not blank and its encryption status is used for the
158
+ # volume encryption status.
162
159
  # @option options [required, String] :image_id
163
160
  # The ID of the AMI, which you can get by calling DescribeImages.
164
161
  # @option options [String] :instance_type
@@ -1230,6 +1227,9 @@ module Aws::EC2
1230
1227
  #
1231
1228
  # * `state-reason-message` - The message for the state change.
1232
1229
  #
1230
+ # * `sriov-net-support` - A value of `simple` indicates that enhanced
1231
+ # networking with the Intel 82599 VF interface is enabled.
1232
+ #
1233
1233
  # * `tag`\:*key*=*value* - The key/value combination of a tag assigned
1234
1234
  # to the resource. Specify the key of the tag in the filter name and
1235
1235
  # the value of the tag in the filter value. For example, for the tag
@@ -2219,36 +2219,63 @@ module Aws::EC2
2219
2219
  #
2220
2220
  # * `description` - The description of the security group.
2221
2221
  #
2222
+ # * `egress.ip-permission.cidr` - An IPv4 CIDR block for an outbound
2223
+ # security group rule.
2224
+ #
2225
+ # * `egress.ip-permission.from-port` - For an outbound rule, the start
2226
+ # of port range for the TCP and UDP protocols, or an ICMP type number.
2227
+ #
2228
+ # * `egress.ip-permission.group-id` - The ID of a security group that
2229
+ # has been referenced in an outbound security group rule.
2230
+ #
2231
+ # * `egress.ip-permission.group-name` - The name of a security group
2232
+ # that has been referenced in an outbound security group rule.
2233
+ #
2234
+ # * `egress.ip-permission.ipv6-cidr` - An IPv6 CIDR block for an
2235
+ # outbound security group rule.
2236
+ #
2222
2237
  # * `egress.ip-permission.prefix-list-id` - The ID (prefix) of the AWS
2223
- # service to which the security group allows access.
2238
+ # service to which a security group rule allows outbound access.
2239
+ #
2240
+ # * `egress.ip-permission.protocol` - The IP protocol for an outbound
2241
+ # security group rule (`tcp` \| `udp` \| `icmp` or a protocol number).
2242
+ #
2243
+ # * `egress.ip-permission.to-port` - For an outbound rule, the end of
2244
+ # port range for the TCP and UDP protocols, or an ICMP code.
2245
+ #
2246
+ # * `egress.ip-permission.user-id` - The ID of an AWS account that has
2247
+ # been referenced in an outbound security group rule.
2224
2248
  #
2225
2249
  # * `group-id` - The ID of the security group.
2226
2250
  #
2227
2251
  # * `group-name` - The name of the security group.
2228
2252
  #
2229
- # * `ip-permission.cidr` - An IPv4 CIDR range that has been granted
2230
- # permission in a security group rule.
2253
+ # * `ip-permission.cidr` - An IPv4 CIDR block for an inbound security
2254
+ # group rule.
2231
2255
  #
2232
- # * `ip-permission.from-port` - The start of port range for the TCP and
2233
- # UDP protocols, or an ICMP type number.
2256
+ # * `ip-permission.from-port` - For an inbound rule, the start of port
2257
+ # range for the TCP and UDP protocols, or an ICMP type number.
2234
2258
  #
2235
2259
  # * `ip-permission.group-id` - The ID of a security group that has been
2236
- # granted permission.
2260
+ # referenced in an inbound security group rule.
2237
2261
  #
2238
2262
  # * `ip-permission.group-name` - The name of a security group that has
2239
- # been granted permission.
2263
+ # been referenced in an inbound security group rule.
2264
+ #
2265
+ # * `ip-permission.ipv6-cidr` - An IPv6 CIDR block for an inbound
2266
+ # security group rule.
2240
2267
  #
2241
- # * `ip-permission.ipv6-cidr` - An IPv6 CIDR range that has been granted
2242
- # permission in a security group rule.
2268
+ # * `ip-permission.prefix-list-id` - The ID (prefix) of the AWS service
2269
+ # from which a security group rule allows inbound access.
2243
2270
  #
2244
- # * `ip-permission.protocol` - The IP protocol for the permission (`tcp`
2245
- # \| `udp` \| `icmp` or a protocol number).
2271
+ # * `ip-permission.protocol` - The IP protocol for an inbound security
2272
+ # group rule (`tcp` \| `udp` \| `icmp` or a protocol number).
2246
2273
  #
2247
- # * `ip-permission.to-port` - The end of port range for the TCP and UDP
2248
- # protocols, or an ICMP code.
2274
+ # * `ip-permission.to-port` - For an inbound rule, the end of port range
2275
+ # for the TCP and UDP protocols, or an ICMP code.
2249
2276
  #
2250
2277
  # * `ip-permission.user-id` - The ID of an AWS account that has been
2251
- # granted permission.
2278
+ # referenced in an inbound security group rule.
2252
2279
  #
2253
2280
  # * `owner-id` - The AWS account ID of the owner of the security group.
2254
2281
  #
@@ -329,14 +329,11 @@ module Aws::EC2
329
329
  # })
330
330
  # @param [Hash] options ({})
331
331
  # @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
332
- # The block device mapping.
333
- #
334
- # Supplying both a snapshot ID and an encryption value as arguments for
335
- # block-device mapping results in an error. This is because only blank
336
- # volumes can be encrypted on start, and these are not created from a
337
- # snapshot. If a snapshot is the basis for the volume, it contains data
338
- # by definition and its encryption status cannot be changed using this
339
- # action.
332
+ # One or more block device mapping entries. You can't specify both a
333
+ # snapshot ID and an encryption value. This is because only blank
334
+ # volumes can be encrypted on creation. If a snapshot is the basis for a
335
+ # volume, it is not blank and its encryption status is used for the
336
+ # volume encryption status.
340
337
  # @option options [required, String] :image_id
341
338
  # The ID of the AMI, which you can get by calling DescribeImages.
342
339
  # @option options [String] :instance_type
@@ -4061,24 +4061,18 @@ module Aws::EC2
4061
4061
  # data as a hash:
4062
4062
  #
4063
4063
  # {
4064
- # client_token: "String",
4065
4064
  # dry_run: false,
4065
+ # vpc_endpoint_type: "Interface", # accepts Interface, Gateway
4066
+ # vpc_id: "String", # required
4067
+ # service_name: "String", # required
4066
4068
  # policy_document: "String",
4067
4069
  # route_table_ids: ["String"],
4068
- # service_name: "String", # required
4069
- # vpc_id: "String", # required
4070
+ # subnet_ids: ["String"],
4071
+ # security_group_ids: ["String"],
4072
+ # client_token: "String",
4073
+ # private_dns_enabled: false,
4070
4074
  # }
4071
4075
  #
4072
- # @!attribute [rw] client_token
4073
- # Unique, case-sensitive identifier you provide to ensure the
4074
- # idempotency of the request. For more information, see [How to Ensure
4075
- # Idempotency][1].
4076
- #
4077
- #
4078
- #
4079
- # [1]: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
4080
- # @return [String]
4081
- #
4082
4076
  # @!attribute [rw] dry_run
4083
4077
  # Checks whether you have the required permissions for the action,
4084
4078
  # without actually making the request, and provides an error response.
@@ -4086,16 +4080,14 @@ module Aws::EC2
4086
4080
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
4087
4081
  # @return [Boolean]
4088
4082
  #
4089
- # @!attribute [rw] policy_document
4090
- # A policy to attach to the endpoint that controls access to the
4091
- # service. The policy must be in valid JSON format. If this parameter
4092
- # is not specified, we attach a default policy that allows full access
4093
- # to the service.
4083
+ # @!attribute [rw] vpc_endpoint_type
4084
+ # The type of endpoint. If not specified, the default is a gateway
4085
+ # endpoint.
4094
4086
  # @return [String]
4095
4087
  #
4096
- # @!attribute [rw] route_table_ids
4097
- # One or more route table IDs.
4098
- # @return [Array<String>]
4088
+ # @!attribute [rw] vpc_id
4089
+ # The ID of the VPC in which the endpoint will be used.
4090
+ # @return [String]
4099
4091
  #
4100
4092
  # @!attribute [rw] service_name
4101
4093
  # The AWS service name, in the form `com.amazonaws.region.service `.
@@ -4103,38 +4095,86 @@ module Aws::EC2
4103
4095
  # DescribeVpcEndpointServices request.
4104
4096
  # @return [String]
4105
4097
  #
4106
- # @!attribute [rw] vpc_id
4107
- # The ID of the VPC in which the endpoint will be used.
4098
+ # @!attribute [rw] policy_document
4099
+ # (Gateway endpoint) A policy to attach to the endpoint that controls
4100
+ # access to the service. The policy must be in valid JSON format. If
4101
+ # this parameter is not specified, we attach a default policy that
4102
+ # allows full access to the service.
4108
4103
  # @return [String]
4109
4104
  #
4105
+ # @!attribute [rw] route_table_ids
4106
+ # (Gateway endpoint) One or more route table IDs.
4107
+ # @return [Array<String>]
4108
+ #
4109
+ # @!attribute [rw] subnet_ids
4110
+ # (Interface endpoint) The ID of one or more subnets in which to
4111
+ # create a network interface for the endpoint.
4112
+ # @return [Array<String>]
4113
+ #
4114
+ # @!attribute [rw] security_group_ids
4115
+ # (Interface endpoint) The ID of one or more security groups to
4116
+ # associate with the network interface.
4117
+ # @return [Array<String>]
4118
+ #
4119
+ # @!attribute [rw] client_token
4120
+ # Unique, case-sensitive identifier you provide to ensure the
4121
+ # idempotency of the request. For more information, see [How to Ensure
4122
+ # Idempotency][1].
4123
+ #
4124
+ #
4125
+ #
4126
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html
4127
+ # @return [String]
4128
+ #
4129
+ # @!attribute [rw] private_dns_enabled
4130
+ # (Interface endpoint) Indicate whether to associate a private hosted
4131
+ # zone with the specified VPC. The private hosted zone contains a
4132
+ # record set for the default public DNS name for the service for the
4133
+ # region (for example, `kinesis.us-east-1.amazonaws.com`) which
4134
+ # resolves to the private IP addresses of the endpoint network
4135
+ # interfaces in the VPC. This enables you to make requests to the
4136
+ # default public DNS name for the service instead of the public DNS
4137
+ # names that are automatically generated by the VPC endpoint service.
4138
+ #
4139
+ # To use a private hosted zone, you must set the following VPC
4140
+ # attributes to `true`\: `enableDnsHostnames` and `enableDnsSupport`.
4141
+ # Use ModifyVpcAttribute to set the VPC attributes.
4142
+ #
4143
+ # Default: `true`
4144
+ # @return [Boolean]
4145
+ #
4110
4146
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointRequest AWS API Documentation
4111
4147
  #
4112
4148
  class CreateVpcEndpointRequest < Struct.new(
4113
- :client_token,
4114
4149
  :dry_run,
4150
+ :vpc_endpoint_type,
4151
+ :vpc_id,
4152
+ :service_name,
4115
4153
  :policy_document,
4116
4154
  :route_table_ids,
4117
- :service_name,
4118
- :vpc_id)
4155
+ :subnet_ids,
4156
+ :security_group_ids,
4157
+ :client_token,
4158
+ :private_dns_enabled)
4119
4159
  include Aws::Structure
4120
4160
  end
4121
4161
 
4122
4162
  # Contains the output of CreateVpcEndpoint.
4123
4163
  #
4164
+ # @!attribute [rw] vpc_endpoint
4165
+ # Information about the endpoint.
4166
+ # @return [Types::VpcEndpoint]
4167
+ #
4124
4168
  # @!attribute [rw] client_token
4125
4169
  # Unique, case-sensitive identifier you provide to ensure the
4126
4170
  # idempotency of the request.
4127
4171
  # @return [String]
4128
4172
  #
4129
- # @!attribute [rw] vpc_endpoint
4130
- # Information about the endpoint.
4131
- # @return [Types::VpcEndpoint]
4132
- #
4133
4173
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointResult AWS API Documentation
4134
4174
  #
4135
4175
  class CreateVpcEndpointResult < Struct.new(
4136
- :client_token,
4137
- :vpc_endpoint)
4176
+ :vpc_endpoint,
4177
+ :client_token)
4138
4178
  include Aws::Structure
4139
4179
  end
4140
4180
 
@@ -6908,6 +6948,9 @@ module Aws::EC2
6908
6948
  #
6909
6949
  # * `state-reason-message` - The message for the state change.
6910
6950
  #
6951
+ # * `sriov-net-support` - A value of `simple` indicates that enhanced
6952
+ # networking with the Intel 82599 VF interface is enabled.
6953
+ #
6911
6954
  # * `tag`\:*key*=*value* - The key/value combination of a tag assigned
6912
6955
  # to the resource. Specify the key of the tag in the filter name and
6913
6956
  # the value of the tag in the filter value. For example, for the tag
@@ -9472,36 +9515,65 @@ module Aws::EC2
9472
9515
  #
9473
9516
  # * `description` - The description of the security group.
9474
9517
  #
9518
+ # * `egress.ip-permission.cidr` - An IPv4 CIDR block for an outbound
9519
+ # security group rule.
9520
+ #
9521
+ # * `egress.ip-permission.from-port` - For an outbound rule, the start
9522
+ # of port range for the TCP and UDP protocols, or an ICMP type
9523
+ # number.
9524
+ #
9525
+ # * `egress.ip-permission.group-id` - The ID of a security group that
9526
+ # has been referenced in an outbound security group rule.
9527
+ #
9528
+ # * `egress.ip-permission.group-name` - The name of a security group
9529
+ # that has been referenced in an outbound security group rule.
9530
+ #
9531
+ # * `egress.ip-permission.ipv6-cidr` - An IPv6 CIDR block for an
9532
+ # outbound security group rule.
9533
+ #
9475
9534
  # * `egress.ip-permission.prefix-list-id` - The ID (prefix) of the AWS
9476
- # service to which the security group allows access.
9535
+ # service to which a security group rule allows outbound access.
9536
+ #
9537
+ # * `egress.ip-permission.protocol` - The IP protocol for an outbound
9538
+ # security group rule (`tcp` \| `udp` \| `icmp` or a protocol
9539
+ # number).
9540
+ #
9541
+ # * `egress.ip-permission.to-port` - For an outbound rule, the end of
9542
+ # port range for the TCP and UDP protocols, or an ICMP code.
9543
+ #
9544
+ # * `egress.ip-permission.user-id` - The ID of an AWS account that has
9545
+ # been referenced in an outbound security group rule.
9477
9546
  #
9478
9547
  # * `group-id` - The ID of the security group.
9479
9548
  #
9480
9549
  # * `group-name` - The name of the security group.
9481
9550
  #
9482
- # * `ip-permission.cidr` - An IPv4 CIDR range that has been granted
9483
- # permission in a security group rule.
9551
+ # * `ip-permission.cidr` - An IPv4 CIDR block for an inbound security
9552
+ # group rule.
9484
9553
  #
9485
- # * `ip-permission.from-port` - The start of port range for the TCP
9486
- # and UDP protocols, or an ICMP type number.
9554
+ # * `ip-permission.from-port` - For an inbound rule, the start of port
9555
+ # range for the TCP and UDP protocols, or an ICMP type number.
9487
9556
  #
9488
9557
  # * `ip-permission.group-id` - The ID of a security group that has
9489
- # been granted permission.
9558
+ # been referenced in an inbound security group rule.
9490
9559
  #
9491
9560
  # * `ip-permission.group-name` - The name of a security group that has
9492
- # been granted permission.
9561
+ # been referenced in an inbound security group rule.
9493
9562
  #
9494
- # * `ip-permission.ipv6-cidr` - An IPv6 CIDR range that has been
9495
- # granted permission in a security group rule.
9563
+ # * `ip-permission.ipv6-cidr` - An IPv6 CIDR block for an inbound
9564
+ # security group rule.
9496
9565
  #
9497
- # * `ip-permission.protocol` - The IP protocol for the permission
9498
- # (`tcp` \| `udp` \| `icmp` or a protocol number).
9566
+ # * `ip-permission.prefix-list-id` - The ID (prefix) of the AWS
9567
+ # service from which a security group rule allows inbound access.
9499
9568
  #
9500
- # * `ip-permission.to-port` - The end of port range for the TCP and
9501
- # UDP protocols, or an ICMP code.
9569
+ # * `ip-permission.protocol` - The IP protocol for an inbound security
9570
+ # group rule (`tcp` \| `udp` \| `icmp` or a protocol number).
9571
+ #
9572
+ # * `ip-permission.to-port` - For an inbound rule, the end of port
9573
+ # range for the TCP and UDP protocols, or an ICMP code.
9502
9574
  #
9503
9575
  # * `ip-permission.user-id` - The ID of an AWS account that has been
9504
- # granted permission.
9576
+ # referenced in an inbound security group rule.
9505
9577
  #
9506
9578
  # * `owner-id` - The AWS account ID of the owner of the security
9507
9579
  # group.
@@ -11174,6 +11246,13 @@ module Aws::EC2
11174
11246
  #
11175
11247
  # {
11176
11248
  # dry_run: false,
11249
+ # service_names: ["String"],
11250
+ # filters: [
11251
+ # {
11252
+ # name: "String",
11253
+ # values: ["String"],
11254
+ # },
11255
+ # ],
11177
11256
  # max_results: 1,
11178
11257
  # next_token: "String",
11179
11258
  # }
@@ -11185,6 +11264,18 @@ module Aws::EC2
11185
11264
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
11186
11265
  # @return [Boolean]
11187
11266
  #
11267
+ # @!attribute [rw] service_names
11268
+ # One or more service names.
11269
+ # @return [Array<String>]
11270
+ #
11271
+ # @!attribute [rw] filters
11272
+ # One or more filters.
11273
+ #
11274
+ # * `service-name`\: The name of the service.
11275
+ #
11276
+ # ^
11277
+ # @return [Array<Types::Filter>]
11278
+ #
11188
11279
  # @!attribute [rw] max_results
11189
11280
  # The maximum number of items to return for this request. The request
11190
11281
  # returns a token that you can specify in a subsequent call to get the
@@ -11203,6 +11294,8 @@ module Aws::EC2
11203
11294
  #
11204
11295
  class DescribeVpcEndpointServicesRequest < Struct.new(
11205
11296
  :dry_run,
11297
+ :service_names,
11298
+ :filters,
11206
11299
  :max_results,
11207
11300
  :next_token)
11208
11301
  include Aws::Structure
@@ -11210,20 +11303,25 @@ module Aws::EC2
11210
11303
 
11211
11304
  # Contains the output of DescribeVpcEndpointServices.
11212
11305
  #
11306
+ # @!attribute [rw] service_names
11307
+ # A list of supported AWS services.
11308
+ # @return [Array<String>]
11309
+ #
11310
+ # @!attribute [rw] service_details
11311
+ # Information about the service.
11312
+ # @return [Array<Types::ServiceDetail>]
11313
+ #
11213
11314
  # @!attribute [rw] next_token
11214
11315
  # The token to use when requesting the next set of items. If there are
11215
11316
  # no additional items to return, the string is empty.
11216
11317
  # @return [String]
11217
11318
  #
11218
- # @!attribute [rw] service_names
11219
- # A list of supported AWS services.
11220
- # @return [Array<String>]
11221
- #
11222
11319
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicesResult AWS API Documentation
11223
11320
  #
11224
11321
  class DescribeVpcEndpointServicesResult < Struct.new(
11225
- :next_token,
11226
- :service_names)
11322
+ :service_names,
11323
+ :service_details,
11324
+ :next_token)
11227
11325
  include Aws::Structure
11228
11326
  end
11229
11327
 
@@ -11234,6 +11332,7 @@ module Aws::EC2
11234
11332
  #
11235
11333
  # {
11236
11334
  # dry_run: false,
11335
+ # vpc_endpoint_ids: ["String"],
11237
11336
  # filters: [
11238
11337
  # {
11239
11338
  # name: "String",
@@ -11242,7 +11341,6 @@ module Aws::EC2
11242
11341
  # ],
11243
11342
  # max_results: 1,
11244
11343
  # next_token: "String",
11245
- # vpc_endpoint_ids: ["String"],
11246
11344
  # }
11247
11345
  #
11248
11346
  # @!attribute [rw] dry_run
@@ -11252,6 +11350,10 @@ module Aws::EC2
11252
11350
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
11253
11351
  # @return [Boolean]
11254
11352
  #
11353
+ # @!attribute [rw] vpc_endpoint_ids
11354
+ # One or more endpoint IDs.
11355
+ # @return [Array<String>]
11356
+ #
11255
11357
  # @!attribute [rw] filters
11256
11358
  # One or more filters.
11257
11359
  #
@@ -11279,37 +11381,33 @@ module Aws::EC2
11279
11381
  # token from a prior call.)
11280
11382
  # @return [String]
11281
11383
  #
11282
- # @!attribute [rw] vpc_endpoint_ids
11283
- # One or more endpoint IDs.
11284
- # @return [Array<String>]
11285
- #
11286
11384
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointsRequest AWS API Documentation
11287
11385
  #
11288
11386
  class DescribeVpcEndpointsRequest < Struct.new(
11289
11387
  :dry_run,
11388
+ :vpc_endpoint_ids,
11290
11389
  :filters,
11291
11390
  :max_results,
11292
- :next_token,
11293
- :vpc_endpoint_ids)
11391
+ :next_token)
11294
11392
  include Aws::Structure
11295
11393
  end
11296
11394
 
11297
11395
  # Contains the output of DescribeVpcEndpoints.
11298
11396
  #
11397
+ # @!attribute [rw] vpc_endpoints
11398
+ # Information about the endpoints.
11399
+ # @return [Array<Types::VpcEndpoint>]
11400
+ #
11299
11401
  # @!attribute [rw] next_token
11300
11402
  # The token to use when requesting the next set of items. If there are
11301
11403
  # no additional items to return, the string is empty.
11302
11404
  # @return [String]
11303
11405
  #
11304
- # @!attribute [rw] vpc_endpoints
11305
- # Information about the endpoints.
11306
- # @return [Array<Types::VpcEndpoint>]
11307
- #
11308
11406
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointsResult AWS API Documentation
11309
11407
  #
11310
11408
  class DescribeVpcEndpointsResult < Struct.new(
11311
- :next_token,
11312
- :vpc_endpoints)
11409
+ :vpc_endpoints,
11410
+ :next_token)
11313
11411
  include Aws::Structure
11314
11412
  end
11315
11413
 
@@ -12372,6 +12470,24 @@ module Aws::EC2
12372
12470
  include Aws::Structure
12373
12471
  end
12374
12472
 
12473
+ # Describes a DNS entry.
12474
+ #
12475
+ # @!attribute [rw] dns_name
12476
+ # The DNS name.
12477
+ # @return [String]
12478
+ #
12479
+ # @!attribute [rw] hosted_zone_id
12480
+ # The ID of the private hosted zone.
12481
+ # @return [String]
12482
+ #
12483
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DnsEntry AWS API Documentation
12484
+ #
12485
+ class DnsEntry < Struct.new(
12486
+ :dns_name,
12487
+ :hosted_zone_id)
12488
+ include Aws::Structure
12489
+ end
12490
+
12375
12491
  # Describes a block device for an EBS volume.
12376
12492
  #
12377
12493
  # @note When making an API call, you may pass EbsBlockDevice
@@ -12387,9 +12503,11 @@ module Aws::EC2
12387
12503
  # }
12388
12504
  #
12389
12505
  # @!attribute [rw] encrypted
12390
- # Indicates whether the EBS volume is encrypted. Encrypted Amazon EBS
12391
- # volumes may only be attached to instances that support Amazon EBS
12392
- # encryption.
12506
+ # Indicates whether the EBS volume is encrypted. Encrypted volumes can
12507
+ # only be attached to instances that support Amazon EBS encryption. If
12508
+ # you are creating a volume from a snapshot, you can't specify an
12509
+ # encryption value. This is because only blank volumes can be
12510
+ # encrypted on creation.
12393
12511
  # @return [Boolean]
12394
12512
  #
12395
12513
  # @!attribute [rw] delete_on_termination
@@ -17424,18 +17542,19 @@ module Aws::EC2
17424
17542
  # data as a hash:
17425
17543
  #
17426
17544
  # {
17427
- # add_route_table_ids: ["String"],
17428
17545
  # dry_run: false,
17546
+ # vpc_endpoint_id: "String", # required
17547
+ # reset_policy: false,
17429
17548
  # policy_document: "String",
17549
+ # add_route_table_ids: ["String"],
17430
17550
  # remove_route_table_ids: ["String"],
17431
- # reset_policy: false,
17432
- # vpc_endpoint_id: "String", # required
17551
+ # add_subnet_ids: ["String"],
17552
+ # remove_subnet_ids: ["String"],
17553
+ # add_security_group_ids: ["String"],
17554
+ # remove_security_group_ids: ["String"],
17555
+ # private_dns_enabled: false,
17433
17556
  # }
17434
17557
  #
17435
- # @!attribute [rw] add_route_table_ids
17436
- # One or more route tables IDs to associate with the endpoint.
17437
- # @return [Array<String>]
17438
- #
17439
17558
  # @!attribute [rw] dry_run
17440
17559
  # Checks whether you have the required permissions for the action,
17441
17560
  # without actually making the request, and provides an error response.
@@ -17443,38 +17562,73 @@ module Aws::EC2
17443
17562
  # `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
17444
17563
  # @return [Boolean]
17445
17564
  #
17565
+ # @!attribute [rw] vpc_endpoint_id
17566
+ # The ID of the endpoint.
17567
+ # @return [String]
17568
+ #
17569
+ # @!attribute [rw] reset_policy
17570
+ # (Gateway endpoint) Specify `true` to reset the policy document to
17571
+ # the default policy. The default policy allows full access to the
17572
+ # service.
17573
+ # @return [Boolean]
17574
+ #
17446
17575
  # @!attribute [rw] policy_document
17447
- # A policy document to attach to the endpoint. The policy must be in
17448
- # valid JSON format.
17576
+ # (Gateway endpoint) A policy document to attach to the endpoint. The
17577
+ # policy must be in valid JSON format.
17449
17578
  # @return [String]
17450
17579
  #
17580
+ # @!attribute [rw] add_route_table_ids
17581
+ # (Gateway endpoint) One or more route tables IDs to associate with
17582
+ # the endpoint.
17583
+ # @return [Array<String>]
17584
+ #
17451
17585
  # @!attribute [rw] remove_route_table_ids
17452
- # One or more route table IDs to disassociate from the endpoint.
17586
+ # (Gateway endpoint) One or more route table IDs to disassociate from
17587
+ # the endpoint.
17453
17588
  # @return [Array<String>]
17454
17589
  #
17455
- # @!attribute [rw] reset_policy
17456
- # Specify `true` to reset the policy document to the default policy.
17457
- # The default policy allows access to the service.
17458
- # @return [Boolean]
17590
+ # @!attribute [rw] add_subnet_ids
17591
+ # (Interface endpoint) One or more subnet IDs in which to serve the
17592
+ # endpoint.
17593
+ # @return [Array<String>]
17459
17594
  #
17460
- # @!attribute [rw] vpc_endpoint_id
17461
- # The ID of the endpoint.
17462
- # @return [String]
17595
+ # @!attribute [rw] remove_subnet_ids
17596
+ # (Interface endpoint) One or more subnets IDs in which to remove the
17597
+ # endpoint.
17598
+ # @return [Array<String>]
17599
+ #
17600
+ # @!attribute [rw] add_security_group_ids
17601
+ # (Interface endpoint) One or more security group IDs to associate
17602
+ # with the network interface.
17603
+ # @return [Array<String>]
17604
+ #
17605
+ # @!attribute [rw] remove_security_group_ids
17606
+ # (Interface endpoint) One or more security group IDs to disassociate
17607
+ # from the network interface.
17608
+ # @return [Array<String>]
17609
+ #
17610
+ # @!attribute [rw] private_dns_enabled
17611
+ # (Interface endpoint) Indicate whether a private hosted zone is
17612
+ # associated with the VPC.
17613
+ # @return [Boolean]
17463
17614
  #
17464
17615
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointRequest AWS API Documentation
17465
17616
  #
17466
17617
  class ModifyVpcEndpointRequest < Struct.new(
17467
- :add_route_table_ids,
17468
17618
  :dry_run,
17619
+ :vpc_endpoint_id,
17620
+ :reset_policy,
17469
17621
  :policy_document,
17622
+ :add_route_table_ids,
17470
17623
  :remove_route_table_ids,
17471
- :reset_policy,
17472
- :vpc_endpoint_id)
17624
+ :add_subnet_ids,
17625
+ :remove_subnet_ids,
17626
+ :add_security_group_ids,
17627
+ :remove_security_group_ids,
17628
+ :private_dns_enabled)
17473
17629
  include Aws::Structure
17474
17630
  end
17475
17631
 
17476
- # Contains the output of ModifyVpcEndpoint.
17477
- #
17478
17632
  # @!attribute [rw] return
17479
17633
  # Returns `true` if the request succeeds; otherwise, it returns an
17480
17634
  # error.
@@ -20257,7 +20411,11 @@ module Aws::EC2
20257
20411
  # @return [String]
20258
20412
  #
20259
20413
  # @!attribute [rw] block_device_mappings
20260
- # One or more block device mapping entries.
20414
+ # One or more block device mapping entries. You can't specify both a
20415
+ # snapshot ID and an encryption value. This is because only blank
20416
+ # volumes can be encrypted on creation. If a snapshot is the basis for
20417
+ # a volume, it is not blank and its encryption status is used for the
20418
+ # volume encryption status.
20261
20419
  # @return [Array<Types::BlockDeviceMapping>]
20262
20420
  #
20263
20421
  # @!attribute [rw] ebs_optimized
@@ -21607,14 +21765,11 @@ module Aws::EC2
21607
21765
  # }
21608
21766
  #
21609
21767
  # @!attribute [rw] block_device_mappings
21610
- # The block device mapping.
21611
- #
21612
- # Supplying both a snapshot ID and an encryption value as arguments
21613
- # for block-device mapping results in an error. This is because only
21614
- # blank volumes can be encrypted on start, and these are not created
21615
- # from a snapshot. If a snapshot is the basis for the volume, it
21616
- # contains data by definition and its encryption status cannot be
21617
- # changed using this action.
21768
+ # One or more block device mapping entries. You can't specify both a
21769
+ # snapshot ID and an encryption value. This is because only blank
21770
+ # volumes can be encrypted on creation. If a snapshot is the basis for
21771
+ # a volume, it is not blank and its encryption status is used for the
21772
+ # volume encryption status.
21618
21773
  # @return [Array<Types::BlockDeviceMapping>]
21619
21774
  #
21620
21775
  # @!attribute [rw] image_id
@@ -22864,6 +23019,24 @@ module Aws::EC2
22864
23019
  include Aws::Structure
22865
23020
  end
22866
23021
 
23022
+ # Describes a security group.
23023
+ #
23024
+ # @!attribute [rw] group_id
23025
+ # The ID of the security group.
23026
+ # @return [String]
23027
+ #
23028
+ # @!attribute [rw] group_name
23029
+ # The name of the security group.
23030
+ # @return [String]
23031
+ #
23032
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SecurityGroupIdentifier AWS API Documentation
23033
+ #
23034
+ class SecurityGroupIdentifier < Struct.new(
23035
+ :group_id,
23036
+ :group_name)
23037
+ include Aws::Structure
23038
+ end
23039
+
22867
23040
  # Describes a VPC with a security group that references your security
22868
23041
  # group.
22869
23042
  #
@@ -22888,6 +23061,68 @@ module Aws::EC2
22888
23061
  include Aws::Structure
22889
23062
  end
22890
23063
 
23064
+ # Describes a service.
23065
+ #
23066
+ # @!attribute [rw] service_name
23067
+ # The Amazon Resource Name (ARN) of the service.
23068
+ # @return [String]
23069
+ #
23070
+ # @!attribute [rw] service_type
23071
+ # The type of service.
23072
+ # @return [Array<Types::ServiceTypeDetail>]
23073
+ #
23074
+ # @!attribute [rw] availability_zones
23075
+ # The Availability Zones in which the service is available.
23076
+ # @return [Array<String>]
23077
+ #
23078
+ # @!attribute [rw] owner
23079
+ # The AWS account ID of the service owner.
23080
+ # @return [String]
23081
+ #
23082
+ # @!attribute [rw] base_endpoint_dns_names
23083
+ # The DNS names for the service.
23084
+ # @return [Array<String>]
23085
+ #
23086
+ # @!attribute [rw] private_dns_name
23087
+ # The private DNS name for the service.
23088
+ # @return [String]
23089
+ #
23090
+ # @!attribute [rw] vpc_endpoint_policy_supported
23091
+ # Indicates whether the service supports endpoint policies.
23092
+ # @return [Boolean]
23093
+ #
23094
+ # @!attribute [rw] acceptance_required
23095
+ # Indicates whether VPC endpoint connection requests to the service
23096
+ # must be accepted by the service owner.
23097
+ # @return [Boolean]
23098
+ #
23099
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ServiceDetail AWS API Documentation
23100
+ #
23101
+ class ServiceDetail < Struct.new(
23102
+ :service_name,
23103
+ :service_type,
23104
+ :availability_zones,
23105
+ :owner,
23106
+ :base_endpoint_dns_names,
23107
+ :private_dns_name,
23108
+ :vpc_endpoint_policy_supported,
23109
+ :acceptance_required)
23110
+ include Aws::Structure
23111
+ end
23112
+
23113
+ # Describes the type of service for a VPC endpoint.
23114
+ #
23115
+ # @!attribute [rw] service_type
23116
+ # The type of service.
23117
+ # @return [String]
23118
+ #
23119
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ServiceTypeDetail AWS API Documentation
23120
+ #
23121
+ class ServiceTypeDetail < Struct.new(
23122
+ :service_type)
23123
+ include Aws::Structure
23124
+ end
23125
+
22891
23126
  # Describes the time period for a Scheduled Instance to start its first
22892
23127
  # schedule. The time period must span less than one day.
22893
23128
  #
@@ -23333,7 +23568,11 @@ module Aws::EC2
23333
23568
  # @return [String]
23334
23569
  #
23335
23570
  # @!attribute [rw] block_device_mappings
23336
- # One or more block device mapping entries.
23571
+ # One or more block device mapping entries. You can't specify both a
23572
+ # snapshot ID and an encryption value. This is because only blank
23573
+ # volumes can be encrypted on creation. If a snapshot is the basis for
23574
+ # a volume, it is not blank and its encryption status is used for the
23575
+ # volume encryption status.
23337
23576
  # @return [Array<Types::BlockDeviceMapping>]
23338
23577
  #
23339
23578
  # @!attribute [rw] ebs_optimized
@@ -25596,17 +25835,17 @@ module Aws::EC2
25596
25835
 
25597
25836
  # Describes a VPC endpoint.
25598
25837
  #
25599
- # @!attribute [rw] creation_timestamp
25600
- # The date and time the VPC endpoint was created.
25601
- # @return [Time]
25838
+ # @!attribute [rw] vpc_endpoint_id
25839
+ # The ID of the VPC endpoint.
25840
+ # @return [String]
25602
25841
  #
25603
- # @!attribute [rw] policy_document
25604
- # The policy document associated with the endpoint.
25842
+ # @!attribute [rw] vpc_endpoint_type
25843
+ # The type of endpoint.
25605
25844
  # @return [String]
25606
25845
  #
25607
- # @!attribute [rw] route_table_ids
25608
- # One or more route tables associated with the endpoint.
25609
- # @return [Array<String>]
25846
+ # @!attribute [rw] vpc_id
25847
+ # The ID of the VPC to which the endpoint is associated.
25848
+ # @return [String]
25610
25849
  #
25611
25850
  # @!attribute [rw] service_name
25612
25851
  # The name of the AWS service to which the endpoint is associated.
@@ -25616,24 +25855,59 @@ module Aws::EC2
25616
25855
  # The state of the VPC endpoint.
25617
25856
  # @return [String]
25618
25857
  #
25619
- # @!attribute [rw] vpc_endpoint_id
25620
- # The ID of the VPC endpoint.
25858
+ # @!attribute [rw] policy_document
25859
+ # The policy document associated with the endpoint, if applicable.
25621
25860
  # @return [String]
25622
25861
  #
25623
- # @!attribute [rw] vpc_id
25624
- # The ID of the VPC to which the endpoint is associated.
25625
- # @return [String]
25862
+ # @!attribute [rw] route_table_ids
25863
+ # (Gateway endpoint) One or more route tables associated with the
25864
+ # endpoint.
25865
+ # @return [Array<String>]
25866
+ #
25867
+ # @!attribute [rw] subnet_ids
25868
+ # (Interface endpoint) One or more subnets in which the endpoint is
25869
+ # located.
25870
+ # @return [Array<String>]
25871
+ #
25872
+ # @!attribute [rw] groups
25873
+ # (Interface endpoint) Information about the security groups
25874
+ # associated with the network interface.
25875
+ # @return [Array<Types::SecurityGroupIdentifier>]
25876
+ #
25877
+ # @!attribute [rw] private_dns_enabled
25878
+ # (Interface endpoint) Indicates whether the VPC is associated with a
25879
+ # private hosted zone.
25880
+ # @return [Boolean]
25881
+ #
25882
+ # @!attribute [rw] network_interface_ids
25883
+ # (Interface endpoint) One or more network interfaces for the
25884
+ # endpoint.
25885
+ # @return [Array<String>]
25886
+ #
25887
+ # @!attribute [rw] dns_entries
25888
+ # (Interface endpoint) The DNS entries for the endpoint.
25889
+ # @return [Array<Types::DnsEntry>]
25890
+ #
25891
+ # @!attribute [rw] creation_timestamp
25892
+ # The date and time the VPC endpoint was created.
25893
+ # @return [Time]
25626
25894
  #
25627
25895
  # @see http://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcEndpoint AWS API Documentation
25628
25896
  #
25629
25897
  class VpcEndpoint < Struct.new(
25630
- :creation_timestamp,
25631
- :policy_document,
25632
- :route_table_ids,
25898
+ :vpc_endpoint_id,
25899
+ :vpc_endpoint_type,
25900
+ :vpc_id,
25633
25901
  :service_name,
25634
25902
  :state,
25635
- :vpc_endpoint_id,
25636
- :vpc_id)
25903
+ :policy_document,
25904
+ :route_table_ids,
25905
+ :subnet_ids,
25906
+ :groups,
25907
+ :private_dns_enabled,
25908
+ :network_interface_ids,
25909
+ :dns_entries,
25910
+ :creation_timestamp)
25637
25911
  include Aws::Structure
25638
25912
  end
25639
25913