aws-sdk-elasticloadbalancingv2 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
  #