aws-sdk-elasticloadbalancingv2 1.1.0 → 1.2.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.
@@ -16,7 +16,10 @@ module Aws::ElasticLoadBalancingV2
16
16
  Actions = Shapes::ListShape.new(name: 'Actions')
17
17
  AddTagsInput = Shapes::StructureShape.new(name: 'AddTagsInput')
18
18
  AddTagsOutput = Shapes::StructureShape.new(name: 'AddTagsOutput')
19
+ AllocationId = Shapes::StringShape.new(name: 'AllocationId')
20
+ AllocationIdNotFoundException = Shapes::StructureShape.new(name: 'AllocationIdNotFoundException')
19
21
  AvailabilityZone = Shapes::StructureShape.new(name: 'AvailabilityZone')
22
+ AvailabilityZoneNotSupportedException = Shapes::StructureShape.new(name: 'AvailabilityZoneNotSupportedException')
20
23
  AvailabilityZones = Shapes::ListShape.new(name: 'AvailabilityZones')
21
24
  CanonicalHostedZoneId = Shapes::StringShape.new(name: 'CanonicalHostedZoneId')
22
25
  Certificate = Shapes::StructureShape.new(name: 'Certificate')
@@ -85,6 +88,7 @@ module Aws::ElasticLoadBalancingV2
85
88
  InvalidSecurityGroupException = Shapes::StructureShape.new(name: 'InvalidSecurityGroupException')
86
89
  InvalidSubnetException = Shapes::StructureShape.new(name: 'InvalidSubnetException')
87
90
  InvalidTargetException = Shapes::StructureShape.new(name: 'InvalidTargetException')
91
+ IpAddress = Shapes::StringShape.new(name: 'IpAddress')
88
92
  IpAddressType = Shapes::StringShape.new(name: 'IpAddressType')
89
93
  IsDefault = Shapes::BooleanShape.new(name: 'IsDefault')
90
94
  Limit = Shapes::StructureShape.new(name: 'Limit')
@@ -96,6 +100,8 @@ module Aws::ElasticLoadBalancingV2
96
100
  ListenerNotFoundException = Shapes::StructureShape.new(name: 'ListenerNotFoundException')
97
101
  Listeners = Shapes::ListShape.new(name: 'Listeners')
98
102
  LoadBalancer = Shapes::StructureShape.new(name: 'LoadBalancer')
103
+ LoadBalancerAddress = Shapes::StructureShape.new(name: 'LoadBalancerAddress')
104
+ LoadBalancerAddresses = Shapes::ListShape.new(name: 'LoadBalancerAddresses')
99
105
  LoadBalancerArn = Shapes::StringShape.new(name: 'LoadBalancerArn')
100
106
  LoadBalancerArns = Shapes::ListShape.new(name: 'LoadBalancerArns')
101
107
  LoadBalancerAttribute = Shapes::StructureShape.new(name: 'LoadBalancerAttribute')
@@ -168,6 +174,8 @@ module Aws::ElasticLoadBalancingV2
168
174
  String = Shapes::StringShape.new(name: 'String')
169
175
  StringValue = Shapes::StringShape.new(name: 'StringValue')
170
176
  SubnetId = Shapes::StringShape.new(name: 'SubnetId')
177
+ SubnetMapping = Shapes::StructureShape.new(name: 'SubnetMapping')
178
+ SubnetMappings = Shapes::ListShape.new(name: 'SubnetMappings')
171
179
  SubnetNotFoundException = Shapes::StructureShape.new(name: 'SubnetNotFoundException')
172
180
  Subnets = Shapes::ListShape.new(name: 'Subnets')
173
181
  Tag = Shapes::StructureShape.new(name: 'Tag')
@@ -224,6 +232,7 @@ module Aws::ElasticLoadBalancingV2
224
232
 
225
233
  AvailabilityZone.add_member(:zone_name, Shapes::ShapeRef.new(shape: ZoneName, location_name: "ZoneName"))
226
234
  AvailabilityZone.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
235
+ AvailabilityZone.add_member(:load_balancer_addresses, Shapes::ShapeRef.new(shape: LoadBalancerAddresses, location_name: "LoadBalancerAddresses"))
227
236
  AvailabilityZone.struct_class = Types::AvailabilityZone
228
237
 
229
238
  AvailabilityZones.member = Shapes::ShapeRef.new(shape: AvailabilityZone)
@@ -251,10 +260,12 @@ module Aws::ElasticLoadBalancingV2
251
260
  CreateListenerOutput.struct_class = Types::CreateListenerOutput
252
261
 
253
262
  CreateLoadBalancerInput.add_member(:name, Shapes::ShapeRef.new(shape: LoadBalancerName, required: true, location_name: "Name"))
254
- CreateLoadBalancerInput.add_member(:subnets, Shapes::ShapeRef.new(shape: Subnets, required: true, location_name: "Subnets"))
263
+ CreateLoadBalancerInput.add_member(:subnets, Shapes::ShapeRef.new(shape: Subnets, location_name: "Subnets"))
264
+ CreateLoadBalancerInput.add_member(:subnet_mappings, Shapes::ShapeRef.new(shape: SubnetMappings, location_name: "SubnetMappings"))
255
265
  CreateLoadBalancerInput.add_member(:security_groups, Shapes::ShapeRef.new(shape: SecurityGroups, location_name: "SecurityGroups"))
256
266
  CreateLoadBalancerInput.add_member(:scheme, Shapes::ShapeRef.new(shape: LoadBalancerSchemeEnum, location_name: "Scheme"))
257
267
  CreateLoadBalancerInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
268
+ CreateLoadBalancerInput.add_member(:type, Shapes::ShapeRef.new(shape: LoadBalancerTypeEnum, location_name: "Type"))
258
269
  CreateLoadBalancerInput.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "IpAddressType"))
259
270
  CreateLoadBalancerInput.struct_class = Types::CreateLoadBalancerInput
260
271
 
@@ -432,6 +443,12 @@ module Aws::ElasticLoadBalancingV2
432
443
  LoadBalancer.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "IpAddressType"))
433
444
  LoadBalancer.struct_class = Types::LoadBalancer
434
445
 
446
+ LoadBalancerAddress.add_member(:ip_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "IpAddress"))
447
+ LoadBalancerAddress.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
448
+ LoadBalancerAddress.struct_class = Types::LoadBalancerAddress
449
+
450
+ LoadBalancerAddresses.member = Shapes::ShapeRef.new(shape: LoadBalancerAddress)
451
+
435
452
  LoadBalancerArns.member = Shapes::ShapeRef.new(shape: LoadBalancerArn)
436
453
 
437
454
  LoadBalancerAttribute.add_member(:key, Shapes::ShapeRef.new(shape: LoadBalancerAttributeKey, location_name: "Key"))
@@ -559,6 +576,7 @@ module Aws::ElasticLoadBalancingV2
559
576
 
560
577
  SetSubnetsInput.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, required: true, location_name: "LoadBalancerArn"))
561
578
  SetSubnetsInput.add_member(:subnets, Shapes::ShapeRef.new(shape: Subnets, required: true, location_name: "Subnets"))
579
+ SetSubnetsInput.add_member(:subnet_mappings, Shapes::ShapeRef.new(shape: SubnetMappings, location_name: "SubnetMappings"))
562
580
  SetSubnetsInput.struct_class = Types::SetSubnetsInput
563
581
 
564
582
  SetSubnetsOutput.add_member(:availability_zones, Shapes::ShapeRef.new(shape: AvailabilityZones, location_name: "AvailabilityZones"))
@@ -575,6 +593,12 @@ module Aws::ElasticLoadBalancingV2
575
593
 
576
594
  SslProtocols.member = Shapes::ShapeRef.new(shape: SslProtocol)
577
595
 
596
+ SubnetMapping.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
597
+ SubnetMapping.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
598
+ SubnetMapping.struct_class = Types::SubnetMapping
599
+
600
+ SubnetMappings.member = Shapes::ShapeRef.new(shape: SubnetMapping)
601
+
578
602
  Subnets.member = Shapes::ShapeRef.new(shape: SubnetId)
579
603
 
580
604
  Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "Key"))
@@ -683,6 +707,7 @@ module Aws::ElasticLoadBalancingV2
683
707
  o.errors << Shapes::ShapeRef.new(shape: CertificateNotFoundException)
684
708
  o.errors << Shapes::ShapeRef.new(shape: UnsupportedProtocolException)
685
709
  o.errors << Shapes::ShapeRef.new(shape: TooManyRegistrationsForTargetIdException)
710
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTargetsException)
686
711
  end)
687
712
 
688
713
  api.add_operation(:create_load_balancer, Seahorse::Model::Operation.new.tap do |o|
@@ -700,6 +725,9 @@ module Aws::ElasticLoadBalancingV2
700
725
  o.errors << Shapes::ShapeRef.new(shape: InvalidSchemeException)
701
726
  o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
702
727
  o.errors << Shapes::ShapeRef.new(shape: DuplicateTagKeysException)
728
+ o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
729
+ o.errors << Shapes::ShapeRef.new(shape: AllocationIdNotFoundException)
730
+ o.errors << Shapes::ShapeRef.new(shape: AvailabilityZoneNotSupportedException)
703
731
  end)
704
732
 
705
733
  api.add_operation(:create_rule, Seahorse::Model::Operation.new.tap do |o|
@@ -712,10 +740,12 @@ module Aws::ElasticLoadBalancingV2
712
740
  o.errors << Shapes::ShapeRef.new(shape: TooManyTargetGroupsException)
713
741
  o.errors << Shapes::ShapeRef.new(shape: TooManyRulesException)
714
742
  o.errors << Shapes::ShapeRef.new(shape: TargetGroupAssociationLimitException)
743
+ o.errors << Shapes::ShapeRef.new(shape: IncompatibleProtocolsException)
715
744
  o.errors << Shapes::ShapeRef.new(shape: ListenerNotFoundException)
716
745
  o.errors << Shapes::ShapeRef.new(shape: TargetGroupNotFoundException)
717
746
  o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
718
747
  o.errors << Shapes::ShapeRef.new(shape: TooManyRegistrationsForTargetIdException)
748
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTargetsException)
719
749
  end)
720
750
 
721
751
  api.add_operation(:create_target_group, Seahorse::Model::Operation.new.tap do |o|
@@ -726,6 +756,7 @@ module Aws::ElasticLoadBalancingV2
726
756
  o.output = Shapes::ShapeRef.new(shape: CreateTargetGroupOutput)
727
757
  o.errors << Shapes::ShapeRef.new(shape: DuplicateTargetGroupNameException)
728
758
  o.errors << Shapes::ShapeRef.new(shape: TooManyTargetGroupsException)
759
+ o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
729
760
  end)
730
761
 
731
762
  api.add_operation(:delete_listener, Seahorse::Model::Operation.new.tap do |o|
@@ -906,6 +937,7 @@ module Aws::ElasticLoadBalancingV2
906
937
  o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
907
938
  o.errors << Shapes::ShapeRef.new(shape: UnsupportedProtocolException)
908
939
  o.errors << Shapes::ShapeRef.new(shape: TooManyRegistrationsForTargetIdException)
940
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTargetsException)
909
941
  end)
910
942
 
911
943
  api.add_operation(:modify_load_balancer_attributes, Seahorse::Model::Operation.new.tap do |o|
@@ -925,6 +957,7 @@ module Aws::ElasticLoadBalancingV2
925
957
  o.input = Shapes::ShapeRef.new(shape: ModifyRuleInput)
926
958
  o.output = Shapes::ShapeRef.new(shape: ModifyRuleOutput)
927
959
  o.errors << Shapes::ShapeRef.new(shape: TargetGroupAssociationLimitException)
960
+ o.errors << Shapes::ShapeRef.new(shape: IncompatibleProtocolsException)
928
961
  o.errors << Shapes::ShapeRef.new(shape: RuleNotFoundException)
929
962
  o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
930
963
  o.errors << Shapes::ShapeRef.new(shape: TooManyRegistrationsForTargetIdException)
@@ -939,6 +972,7 @@ module Aws::ElasticLoadBalancingV2
939
972
  o.input = Shapes::ShapeRef.new(shape: ModifyTargetGroupInput)
940
973
  o.output = Shapes::ShapeRef.new(shape: ModifyTargetGroupOutput)
941
974
  o.errors << Shapes::ShapeRef.new(shape: TargetGroupNotFoundException)
975
+ o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
942
976
  end)
943
977
 
944
978
  api.add_operation(:modify_target_group_attributes, Seahorse::Model::Operation.new.tap do |o|
@@ -948,6 +982,7 @@ module Aws::ElasticLoadBalancingV2
948
982
  o.input = Shapes::ShapeRef.new(shape: ModifyTargetGroupAttributesInput)
949
983
  o.output = Shapes::ShapeRef.new(shape: ModifyTargetGroupAttributesOutput)
950
984
  o.errors << Shapes::ShapeRef.new(shape: TargetGroupNotFoundException)
985
+ o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
951
986
  end)
952
987
 
953
988
  api.add_operation(:register_targets, Seahorse::Model::Operation.new.tap do |o|
@@ -1018,6 +1053,8 @@ module Aws::ElasticLoadBalancingV2
1018
1053
  o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
1019
1054
  o.errors << Shapes::ShapeRef.new(shape: SubnetNotFoundException)
1020
1055
  o.errors << Shapes::ShapeRef.new(shape: InvalidSubnetException)
1056
+ o.errors << Shapes::ShapeRef.new(shape: AllocationIdNotFoundException)
1057
+ o.errors << Shapes::ShapeRef.new(shape: AvailabilityZoneNotSupportedException)
1021
1058
  end)
1022
1059
  end
1023
1060
 
@@ -77,11 +77,16 @@ module Aws::ElasticLoadBalancingV2
77
77
  # The ID of the subnet.
78
78
  # @return [String]
79
79
  #
80
+ # @!attribute [rw] load_balancer_addresses
81
+ # \[Network Load Balancers\] The static IP address.
82
+ # @return [Array<Types::LoadBalancerAddress>]
83
+ #
80
84
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AvailabilityZone AWS API Documentation
81
85
  #
82
86
  class AvailabilityZone < Struct.new(
83
87
  :zone_name,
84
- :subnet_id)
88
+ :subnet_id,
89
+ :load_balancer_addresses)
85
90
  include Aws::Structure
86
91
  end
87
92
 
@@ -129,7 +134,7 @@ module Aws::ElasticLoadBalancingV2
129
134
  #
130
135
  # {
131
136
  # load_balancer_arn: "LoadBalancerArn", # required
132
- # protocol: "HTTP", # required, accepts HTTP, HTTPS
137
+ # protocol: "HTTP", # required, accepts HTTP, HTTPS, TCP
133
138
  # port: 1, # required
134
139
  # ssl_policy: "SslPolicyName",
135
140
  # certificates: [
@@ -150,7 +155,9 @@ module Aws::ElasticLoadBalancingV2
150
155
  # @return [String]
151
156
  #
152
157
  # @!attribute [rw] protocol
153
- # The protocol for connections from clients to the load balancer.
158
+ # The protocol for connections from clients to the load balancer. For
159
+ # Application Load Balancers, the supported protocols are HTTP and
160
+ # HTTPS. For Network Load Balancers, the supported protocol is TCP.
154
161
  # @return [String]
155
162
  #
156
163
  # @!attribute [rw] port
@@ -158,17 +165,21 @@ module Aws::ElasticLoadBalancingV2
158
165
  # @return [Integer]
159
166
  #
160
167
  # @!attribute [rw] ssl_policy
161
- # The security policy that defines which ciphers and protocols are
162
- # supported. The default is the current predefined security policy.
168
+ # \[HTTPS listeners\] The security policy that defines which ciphers
169
+ # and protocols are supported. The default is the current predefined
170
+ # security policy.
163
171
  # @return [String]
164
172
  #
165
173
  # @!attribute [rw] certificates
166
- # The SSL server certificate. You must provide exactly one certificate
167
- # if the protocol is HTTPS.
174
+ # \[HTTPS listeners\] The SSL server certificate. You must provide
175
+ # exactly one certificate.
168
176
  # @return [Array<Types::Certificate>]
169
177
  #
170
178
  # @!attribute [rw] default_actions
171
- # The default action for the listener.
179
+ # The default action for the listener. For Application Load Balancers,
180
+ # the protocol of the specified target group must be HTTP or HTTPS.
181
+ # For Network Load Balancers, the protocol of the specified target
182
+ # group must be TCP.
172
183
  # @return [Array<Types::Action>]
173
184
  #
174
185
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListenerInput AWS API Documentation
@@ -199,7 +210,13 @@ module Aws::ElasticLoadBalancingV2
199
210
  #
200
211
  # {
201
212
  # name: "LoadBalancerName", # required
202
- # subnets: ["SubnetId"], # required
213
+ # subnets: ["SubnetId"],
214
+ # subnet_mappings: [
215
+ # {
216
+ # subnet_id: "SubnetId",
217
+ # allocation_id: "AllocationId",
218
+ # },
219
+ # ],
203
220
  # security_groups: ["SecurityGroupId"],
204
221
  # scheme: "internet-facing", # accepts internet-facing, internal
205
222
  # tags: [
@@ -208,6 +225,7 @@ module Aws::ElasticLoadBalancingV2
208
225
  # value: "TagValue",
209
226
  # },
210
227
  # ],
228
+ # type: "application", # accepts application, network
211
229
  # ip_address_type: "ipv4", # accepts ipv4, dualstack
212
230
  # }
213
231
  #
@@ -222,11 +240,27 @@ module Aws::ElasticLoadBalancingV2
222
240
  # @!attribute [rw] subnets
223
241
  # The IDs of the subnets to attach to the load balancer. You can
224
242
  # specify only one subnet per Availability Zone. You must specify
225
- # subnets from at least two Availability Zones.
243
+ # either subnets or subnet mappings.
244
+ #
245
+ # \[Application Load Balancers\] You must specify subnets from at
246
+ # least two Availability Zones.
226
247
  # @return [Array<String>]
227
248
  #
249
+ # @!attribute [rw] subnet_mappings
250
+ # The IDs of the subnets to attach to the load balancer. You can
251
+ # specify only one subnet per Availability Zone. You must specify
252
+ # either subnets or subnet mappings.
253
+ #
254
+ # \[Network Load Balancers\] You can specify one Elastic IP address
255
+ # per subnet.
256
+ #
257
+ # \[Application Load Balancers\] You cannot specify Elastic IP
258
+ # addresses for your subnets.
259
+ # @return [Array<Types::SubnetMapping>]
260
+ #
228
261
  # @!attribute [rw] security_groups
229
- # The IDs of the security groups to assign to the load balancer.
262
+ # \[Application Load Balancers\] The IDs of the security groups to
263
+ # assign to the load balancer.
230
264
  # @return [Array<String>]
231
265
  #
232
266
  # @!attribute [rw] scheme
@@ -249,11 +283,15 @@ module Aws::ElasticLoadBalancingV2
249
283
  # One or more tags to assign to the load balancer.
250
284
  # @return [Array<Types::Tag>]
251
285
  #
286
+ # @!attribute [rw] type
287
+ # The type of load balancer to create. The default is `application`.
288
+ # @return [String]
289
+ #
252
290
  # @!attribute [rw] ip_address_type
253
- # The type of IP addresses used by the subnets for your load balancer.
254
- # The possible values are `ipv4` (for IPv4 addresses) and `dualstack`
255
- # (for IPv4 and IPv6 addresses). Internal load balancers must use
256
- # `ipv4`.
291
+ # \[Application Load Balancers\] The type of IP addresses used by the
292
+ # subnets for your load balancer. The possible values are `ipv4` (for
293
+ # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses).
294
+ # Internal load balancers must use `ipv4`.
257
295
  # @return [String]
258
296
  #
259
297
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateLoadBalancerInput AWS API Documentation
@@ -261,9 +299,11 @@ module Aws::ElasticLoadBalancingV2
261
299
  class CreateLoadBalancerInput < Struct.new(
262
300
  :name,
263
301
  :subnets,
302
+ :subnet_mappings,
264
303
  :security_groups,
265
304
  :scheme,
266
305
  :tags,
306
+ :type,
267
307
  :ip_address_type)
268
308
  include Aws::Structure
269
309
  end
@@ -304,7 +344,7 @@ module Aws::ElasticLoadBalancingV2
304
344
  # @return [String]
305
345
  #
306
346
  # @!attribute [rw] conditions
307
- # A condition. Each condition specifies a field name and a single
347
+ # The conditions. Each condition specifies a field name and a single
308
348
  # value.
309
349
  #
310
350
  # If the field name is `host-header`, you can specify a single host
@@ -374,10 +414,10 @@ module Aws::ElasticLoadBalancingV2
374
414
  #
375
415
  # {
376
416
  # name: "TargetGroupName", # required
377
- # protocol: "HTTP", # required, accepts HTTP, HTTPS
417
+ # protocol: "HTTP", # required, accepts HTTP, HTTPS, TCP
378
418
  # port: 1, # required
379
419
  # vpc_id: "VpcId", # required
380
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS
420
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP
381
421
  # health_check_port: "HealthCheckPort",
382
422
  # health_check_path: "Path",
383
423
  # health_check_interval_seconds: 1,
@@ -399,7 +439,9 @@ module Aws::ElasticLoadBalancingV2
399
439
  # @return [String]
400
440
  #
401
441
  # @!attribute [rw] protocol
402
- # The protocol to use for routing traffic to the targets.
442
+ # The protocol to use for routing traffic to the targets. For
443
+ # Application Load Balancers, the supported protocols are HTTP and
444
+ # HTTPS. For Network Load Balancers, the supported protocol is TCP.
403
445
  # @return [String]
404
446
  #
405
447
  # @!attribute [rw] port
@@ -413,43 +455,54 @@ module Aws::ElasticLoadBalancingV2
413
455
  #
414
456
  # @!attribute [rw] health_check_protocol
415
457
  # The protocol the load balancer uses when performing health checks on
416
- # targets. The default is the HTTP protocol.
458
+ # targets. The TCP protocol is supported only if the protocol of the
459
+ # target group is TCP. For Application Load Balancers, the default is
460
+ # HTTP. For Network Load Balancers, the default is TCP.
417
461
  # @return [String]
418
462
  #
419
463
  # @!attribute [rw] health_check_port
420
464
  # The port the load balancer uses when performing health checks on
421
- # targets. The default is `traffic-port`, which indicates the port on
422
- # which each target receives traffic from the load balancer.
465
+ # targets. The default is `traffic-port`, which is the port on which
466
+ # each target receives traffic from the load balancer.
423
467
  # @return [String]
424
468
  #
425
469
  # @!attribute [rw] health_check_path
426
- # The ping path that is the destination on the targets for health
427
- # checks. The default is /.
470
+ # \[HTTP/HTTPS health checks\] The ping path that is the destination
471
+ # on the targets for health checks. The default is /.
428
472
  # @return [String]
429
473
  #
430
474
  # @!attribute [rw] health_check_interval_seconds
431
475
  # The approximate amount of time, in seconds, between health checks of
432
- # an individual target. The default is 30 seconds.
476
+ # an individual target. For Application Load Balancers, the range is 5
477
+ # to 300 seconds. For Network Load Balancers, the supported values are
478
+ # 10 or 30 seconds. The default is 30 seconds.
433
479
  # @return [Integer]
434
480
  #
435
481
  # @!attribute [rw] health_check_timeout_seconds
436
482
  # The amount of time, in seconds, during which no response from a
437
- # target means a failed health check. The default is 5 seconds.
483
+ # target means a failed health check. For Application Load Balancers,
484
+ # the range is 2 to 60 seconds and the default is 5 seconds. For
485
+ # Network Load Balancers, this is 10 seconds for TCP and HTTPS health
486
+ # checks and 6 seconds for HTTP health checks.
438
487
  # @return [Integer]
439
488
  #
440
489
  # @!attribute [rw] healthy_threshold_count
441
490
  # The number of consecutive health checks successes required before
442
- # considering an unhealthy target healthy. The default is 5.
491
+ # considering an unhealthy target healthy. For Application Load
492
+ # Balancers, the default is 5. For Network Load Balancers, the default
493
+ # is 3.
443
494
  # @return [Integer]
444
495
  #
445
496
  # @!attribute [rw] unhealthy_threshold_count
446
497
  # The number of consecutive health check failures required before
447
- # considering a target unhealthy. The default is 2.
498
+ # considering a target unhealthy. For Application Load Balancers, the
499
+ # default is 2. For Network Load Balancers, this value must be the
500
+ # same as the healthy threshold count.
448
501
  # @return [Integer]
449
502
  #
450
503
  # @!attribute [rw] matcher
451
- # The HTTP codes to use when checking for a successful response from a
452
- # target. The default is 200.
504
+ # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for
505
+ # a successful response from a target.
453
506
  # @return [Types::Matcher]
454
507
  #
455
508
  # @!attribute [rw] target_type
@@ -1071,6 +1124,10 @@ module Aws::ElasticLoadBalancingV2
1071
1124
  #
1072
1125
  # * listeners-per-application-load-balancer
1073
1126
  #
1127
+ # * listeners-per-network-load-balancer
1128
+ #
1129
+ # * network-load-balancers
1130
+ #
1074
1131
  # * rules-per-application-load-balancer
1075
1132
  #
1076
1133
  # * target-groups
@@ -1216,6 +1273,25 @@ module Aws::ElasticLoadBalancingV2
1216
1273
  include Aws::Structure
1217
1274
  end
1218
1275
 
1276
+ # Information about a static IP address for a load balancer.
1277
+ #
1278
+ # @!attribute [rw] ip_address
1279
+ # The static IP address.
1280
+ # @return [String]
1281
+ #
1282
+ # @!attribute [rw] allocation_id
1283
+ # \[Network Load Balancers\] The allocation ID of the Elastic IP
1284
+ # address.
1285
+ # @return [String]
1286
+ #
1287
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerAddress AWS API Documentation
1288
+ #
1289
+ class LoadBalancerAddress < Struct.new(
1290
+ :ip_address,
1291
+ :allocation_id)
1292
+ include Aws::Structure
1293
+ end
1294
+
1219
1295
  # Information about a load balancer attribute.
1220
1296
  #
1221
1297
  # @note When making an API call, you may pass LoadBalancerAttribute
@@ -1229,24 +1305,26 @@ module Aws::ElasticLoadBalancingV2
1229
1305
  # @!attribute [rw] key
1230
1306
  # The name of the attribute.
1231
1307
  #
1232
- # * `access_logs.s3.enabled` - Indicates whether access logs stored in
1233
- # Amazon S3 are enabled. The value is `true` or `false`.
1308
+ # * `access_logs.s3.enabled` - \[Application Load Balancers\]
1309
+ # Indicates whether access logs stored in Amazon S3 are enabled. The
1310
+ # value is `true` or `false`.
1234
1311
  #
1235
- # * `access_logs.s3.bucket` - The name of the S3 bucket for the access
1236
- # logs. This attribute is required if access logs in Amazon S3 are
1237
- # enabled. The bucket must exist in the same region as the load
1238
- # balancer and have a bucket policy that grants Elastic Load
1239
- # Balancing permission to write to the bucket.
1312
+ # * `access_logs.s3.bucket` - \[Application Load Balancers\] The name
1313
+ # of the S3 bucket for the access logs. This attribute is required
1314
+ # if access logs in Amazon S3 are enabled. The bucket must exist in
1315
+ # the same region as the load balancer and have a bucket policy that
1316
+ # grants Elastic Load Balancing permission to write to the bucket.
1240
1317
  #
1241
- # * `access_logs.s3.prefix` - The prefix for the location in the S3
1242
- # bucket. If you don't specify a prefix, the access logs are stored
1243
- # in the root of the bucket.
1318
+ # * `access_logs.s3.prefix` - \[Application Load Balancers\] The
1319
+ # prefix for the location in the S3 bucket. If you don't specify a
1320
+ # prefix, the access logs are stored in the root of the bucket.
1244
1321
  #
1245
1322
  # * `deletion_protection.enabled` - Indicates whether deletion
1246
1323
  # protection is enabled. The value is `true` or `false`.
1247
1324
  #
1248
- # * `idle_timeout.timeout_seconds` - The idle timeout value, in
1249
- # seconds. The valid range is 1-3600. The default is 60 seconds.
1325
+ # * `idle_timeout.timeout_seconds` - \[Application Load Balancers\]
1326
+ # The idle timeout value, in seconds. The valid range is 1-4000. The
1327
+ # default is 60 seconds.
1250
1328
  # @return [String]
1251
1329
  #
1252
1330
  # @!attribute [rw] value
@@ -1293,9 +1371,14 @@ module Aws::ElasticLoadBalancingV2
1293
1371
  # }
1294
1372
  #
1295
1373
  # @!attribute [rw] http_code
1296
- # The HTTP codes. You can specify values between 200 and 499. The
1297
- # default value is 200. You can specify multiple values (for example,
1298
- # "200,202") or a range of values (for example, "200-299").
1374
+ # The HTTP codes.
1375
+ #
1376
+ # For Application Load Balancers, you can specify values between 200
1377
+ # and 499, and the default value is 200. You can specify multiple
1378
+ # values (for example, "200,202") or a range of values (for example,
1379
+ # "200-299").
1380
+ #
1381
+ # For Network Load Balancers, this is 200 to 399.
1299
1382
  # @return [String]
1300
1383
  #
1301
1384
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Matcher AWS API Documentation
@@ -1311,7 +1394,7 @@ module Aws::ElasticLoadBalancingV2
1311
1394
  # {
1312
1395
  # listener_arn: "ListenerArn", # required
1313
1396
  # port: 1,
1314
- # protocol: "HTTP", # accepts HTTP, HTTPS
1397
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP
1315
1398
  # ssl_policy: "SslPolicyName",
1316
1399
  # certificates: [
1317
1400
  # {
@@ -1336,6 +1419,8 @@ module Aws::ElasticLoadBalancingV2
1336
1419
  #
1337
1420
  # @!attribute [rw] protocol
1338
1421
  # The protocol for connections from clients to the load balancer.
1422
+ # Application Load Balancers support HTTP and HTTPS and Network Load
1423
+ # Balancers support TCP.
1339
1424
  # @return [String]
1340
1425
  #
1341
1426
  # @!attribute [rw] ssl_policy
@@ -1353,7 +1438,9 @@ module Aws::ElasticLoadBalancingV2
1353
1438
  # @return [Array<Types::Certificate>]
1354
1439
  #
1355
1440
  # @!attribute [rw] default_actions
1356
- # The default actions.
1441
+ # The default action. For Application Load Balancers, the protocol of
1442
+ # the specified target group must be HTTP or HTTPS. For Network Load
1443
+ # Balancers, the protocol of the specified target group must be TCP.
1357
1444
  # @return [Array<Types::Action>]
1358
1445
  #
1359
1446
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListenerInput AWS API Documentation
@@ -1447,7 +1534,7 @@ module Aws::ElasticLoadBalancingV2
1447
1534
  # @return [Array<Types::RuleCondition>]
1448
1535
  #
1449
1536
  # @!attribute [rw] actions
1450
- # The actions.
1537
+ # The actions. The target group must use the HTTP or HTTPS protocol.
1451
1538
  # @return [Array<Types::Action>]
1452
1539
  #
1453
1540
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRuleInput AWS API Documentation
@@ -1515,7 +1602,7 @@ module Aws::ElasticLoadBalancingV2
1515
1602
  #
1516
1603
  # {
1517
1604
  # target_group_arn: "TargetGroupArn", # required
1518
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS
1605
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP
1519
1606
  # health_check_port: "HealthCheckPort",
1520
1607
  # health_check_path: "Path",
1521
1608
  # health_check_interval_seconds: 1,
@@ -1532,25 +1619,31 @@ module Aws::ElasticLoadBalancingV2
1532
1619
  # @return [String]
1533
1620
  #
1534
1621
  # @!attribute [rw] health_check_protocol
1535
- # The protocol to use to connect with the target.
1622
+ # The protocol the load balancer uses when performing health checks on
1623
+ # targets. The TCP protocol is supported only if the protocol of the
1624
+ # target group is TCP.
1536
1625
  # @return [String]
1537
1626
  #
1538
1627
  # @!attribute [rw] health_check_port
1539
- # The port to use to connect with the target.
1628
+ # The port the load balancer uses when performing health checks on
1629
+ # targets.
1540
1630
  # @return [String]
1541
1631
  #
1542
1632
  # @!attribute [rw] health_check_path
1543
- # The ping path that is the destination for the health check request.
1633
+ # \[HTTP/HTTPS health checks\] The ping path that is the destination
1634
+ # for the health check request.
1544
1635
  # @return [String]
1545
1636
  #
1546
1637
  # @!attribute [rw] health_check_interval_seconds
1547
1638
  # The approximate amount of time, in seconds, between health checks of
1548
- # an individual target.
1639
+ # an individual target. For Application Load Balancers, the range is 5
1640
+ # to 300 seconds. For Network Load Balancers, the supported values are
1641
+ # 10 or 30 seconds.
1549
1642
  # @return [Integer]
1550
1643
  #
1551
1644
  # @!attribute [rw] health_check_timeout_seconds
1552
- # The amount of time, in seconds, during which no response means a
1553
- # failed health check.
1645
+ # \[HTTP/HTTPS health checks\] The amount of time, in seconds, during
1646
+ # which no response means a failed health check.
1554
1647
  # @return [Integer]
1555
1648
  #
1556
1649
  # @!attribute [rw] healthy_threshold_count
@@ -1560,12 +1653,13 @@ module Aws::ElasticLoadBalancingV2
1560
1653
  #
1561
1654
  # @!attribute [rw] unhealthy_threshold_count
1562
1655
  # The number of consecutive health check failures required before
1563
- # considering the target unhealthy.
1656
+ # considering the target unhealthy. For Network Load Balancers, this
1657
+ # value must be the same as the healthy threshold count.
1564
1658
  # @return [Integer]
1565
1659
  #
1566
1660
  # @!attribute [rw] matcher
1567
- # The HTTP codes to use when checking for a successful response from a
1568
- # target.
1661
+ # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for
1662
+ # a successful response from a target.
1569
1663
  # @return [Types::Matcher]
1570
1664
  #
1571
1665
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupInput AWS API Documentation
@@ -1887,6 +1981,12 @@ module Aws::ElasticLoadBalancingV2
1887
1981
  # {
1888
1982
  # load_balancer_arn: "LoadBalancerArn", # required
1889
1983
  # subnets: ["SubnetId"], # required
1984
+ # subnet_mappings: [
1985
+ # {
1986
+ # subnet_id: "SubnetId",
1987
+ # allocation_id: "AllocationId",
1988
+ # },
1989
+ # ],
1890
1990
  # }
1891
1991
  #
1892
1992
  # @!attribute [rw] load_balancer_arn
@@ -1894,15 +1994,26 @@ module Aws::ElasticLoadBalancingV2
1894
1994
  # @return [String]
1895
1995
  #
1896
1996
  # @!attribute [rw] subnets
1897
- # The IDs of the subnets. You must specify at least two subnets. You
1898
- # can add only one subnet per Availability Zone.
1997
+ # The IDs of the subnets. You must specify subnets from at least two
1998
+ # Availability Zones. You can specify only one subnet per Availability
1999
+ # Zone. You must specify either subnets or subnet mappings.
1899
2000
  # @return [Array<String>]
1900
2001
  #
2002
+ # @!attribute [rw] subnet_mappings
2003
+ # The IDs of the subnets. You must specify subnets from at least two
2004
+ # Availability Zones. You can specify only one subnet per Availability
2005
+ # Zone. You must specify either subnets or subnet mappings.
2006
+ #
2007
+ # The load balancer is allocated one static IP address per subnet. You
2008
+ # cannot specify your own Elastic IP addresses.
2009
+ # @return [Array<Types::SubnetMapping>]
2010
+ #
1901
2011
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsInput AWS API Documentation
1902
2012
  #
1903
2013
  class SetSubnetsInput < Struct.new(
1904
2014
  :load_balancer_arn,
1905
- :subnets)
2015
+ :subnets,
2016
+ :subnet_mappings)
1906
2017
  include Aws::Structure
1907
2018
  end
1908
2019
 
@@ -1940,6 +2051,33 @@ module Aws::ElasticLoadBalancingV2
1940
2051
  include Aws::Structure
1941
2052
  end
1942
2053
 
2054
+ # Information about a subnet mapping.
2055
+ #
2056
+ # @note When making an API call, you may pass SubnetMapping
2057
+ # data as a hash:
2058
+ #
2059
+ # {
2060
+ # subnet_id: "SubnetId",
2061
+ # allocation_id: "AllocationId",
2062
+ # }
2063
+ #
2064
+ # @!attribute [rw] subnet_id
2065
+ # The ID of the subnet.
2066
+ # @return [String]
2067
+ #
2068
+ # @!attribute [rw] allocation_id
2069
+ # \[Network Load Balancers\] The allocation ID of the Elastic IP
2070
+ # address.
2071
+ # @return [String]
2072
+ #
2073
+ # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SubnetMapping AWS API Documentation
2074
+ #
2075
+ class SubnetMapping < Struct.new(
2076
+ :subnet_id,
2077
+ :allocation_id)
2078
+ include Aws::Structure
2079
+ end
2080
+
1943
2081
  # Information about a tag.
1944
2082
  #
1945
2083
  # @note When making an API call, you may pass Tag
@@ -2137,18 +2275,19 @@ module Aws::ElasticLoadBalancingV2
2137
2275
  # deregistering target from `draining` to `unused`. The range is
2138
2276
  # 0-3600 seconds. The default value is 300 seconds.
2139
2277
  #
2140
- # * `stickiness.enabled` - Indicates whether sticky sessions are
2141
- # enabled. The value is `true` or `false`.
2278
+ # * `stickiness.enabled` - \[Application Load Balancers\] Indicates
2279
+ # whether sticky sessions are enabled. The value is `true` or
2280
+ # `false`.
2142
2281
  #
2143
- # * `stickiness.type` - The type of sticky sessions. The possible
2144
- # value is `lb_cookie`.
2282
+ # * `stickiness.type` - \[Application Load Balancers\] The type of
2283
+ # sticky sessions. The possible value is `lb_cookie`.
2145
2284
  #
2146
- # * `stickiness.lb_cookie.duration_seconds` - The time period, in
2147
- # seconds, during which requests from a client should be routed to
2148
- # the same target. After this time period expires, the load
2149
- # balancer-generated cookie is considered stale. The range is 1
2150
- # second to 1 week (604800 seconds). The default value is 1 day
2151
- # (86400 seconds).
2285
+ # * `stickiness.lb_cookie.duration_seconds` - \[Application Load
2286
+ # Balancers\] The time period, in seconds, during which requests
2287
+ # from a client should be routed to the same target. After this time
2288
+ # period expires, the load balancer-generated cookie is considered
2289
+ # stale. The range is 1 second to 1 week (604800 seconds). The
2290
+ # default value is 1 day (86400 seconds).
2152
2291
  # @return [String]
2153
2292
  #
2154
2293
  # @!attribute [rw] value
@@ -2209,6 +2348,9 @@ module Aws::ElasticLoadBalancingV2
2209
2348
  # balancer or the target is in an Availability Zone that is not
2210
2349
  # enabled for its load balancer.
2211
2350
  #
2351
+ # * `Target.IpUnusable` - The target IP address is reserved for use by
2352
+ # a load balancer.
2353
+ #
2212
2354
  # * `Target.InvalidState` - The target is in the stopped or terminated
2213
2355
  # state.
2214
2356
  #