aws-sdk-elasticloadbalancingv2 1.54.0 → 1.59.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.
@@ -131,6 +131,7 @@ module Aws::ElasticLoadBalancingV2
131
131
  HttpHeaderConditionConfig = Shapes::StructureShape.new(name: 'HttpHeaderConditionConfig')
132
132
  HttpHeaderConditionName = Shapes::StringShape.new(name: 'HttpHeaderConditionName')
133
133
  HttpRequestMethodConditionConfig = Shapes::StructureShape.new(name: 'HttpRequestMethodConditionConfig')
134
+ IPv6Address = Shapes::StringShape.new(name: 'IPv6Address')
134
135
  IncompatibleProtocolsException = Shapes::StructureShape.new(name: 'IncompatibleProtocolsException')
135
136
  InvalidConfigurationRequestException = Shapes::StructureShape.new(name: 'InvalidConfigurationRequestException')
136
137
  InvalidLoadBalancerActionException = Shapes::StructureShape.new(name: 'InvalidLoadBalancerActionException')
@@ -379,8 +380,8 @@ module Aws::ElasticLoadBalancingV2
379
380
  Ciphers.member = Shapes::ShapeRef.new(shape: Cipher)
380
381
 
381
382
  CreateListenerInput.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, required: true, location_name: "LoadBalancerArn"))
382
- CreateListenerInput.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolEnum, required: true, location_name: "Protocol"))
383
- CreateListenerInput.add_member(:port, Shapes::ShapeRef.new(shape: Port, required: true, location_name: "Port"))
383
+ CreateListenerInput.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolEnum, location_name: "Protocol"))
384
+ CreateListenerInput.add_member(:port, Shapes::ShapeRef.new(shape: Port, location_name: "Port"))
384
385
  CreateListenerInput.add_member(:ssl_policy, Shapes::ShapeRef.new(shape: SslPolicyName, location_name: "SslPolicy"))
385
386
  CreateListenerInput.add_member(:certificates, Shapes::ShapeRef.new(shape: CertificateList, location_name: "Certificates"))
386
387
  CreateListenerInput.add_member(:default_actions, Shapes::ShapeRef.new(shape: Actions, required: true, location_name: "DefaultActions"))
@@ -639,6 +640,7 @@ module Aws::ElasticLoadBalancingV2
639
640
  LoadBalancerAddress.add_member(:ip_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "IpAddress"))
640
641
  LoadBalancerAddress.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
641
642
  LoadBalancerAddress.add_member(:private_i_pv_4_address, Shapes::ShapeRef.new(shape: PrivateIPv4Address, location_name: "PrivateIPv4Address"))
643
+ LoadBalancerAddress.add_member(:i_pv_6_address, Shapes::ShapeRef.new(shape: IPv6Address, location_name: "IPv6Address"))
642
644
  LoadBalancerAddress.struct_class = Types::LoadBalancerAddress
643
645
 
644
646
  LoadBalancerAddresses.member = Shapes::ShapeRef.new(shape: LoadBalancerAddress)
@@ -818,9 +820,11 @@ module Aws::ElasticLoadBalancingV2
818
820
  SetSubnetsInput.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, required: true, location_name: "LoadBalancerArn"))
819
821
  SetSubnetsInput.add_member(:subnets, Shapes::ShapeRef.new(shape: Subnets, location_name: "Subnets"))
820
822
  SetSubnetsInput.add_member(:subnet_mappings, Shapes::ShapeRef.new(shape: SubnetMappings, location_name: "SubnetMappings"))
823
+ SetSubnetsInput.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "IpAddressType"))
821
824
  SetSubnetsInput.struct_class = Types::SetSubnetsInput
822
825
 
823
826
  SetSubnetsOutput.add_member(:availability_zones, Shapes::ShapeRef.new(shape: AvailabilityZones, location_name: "AvailabilityZones"))
827
+ SetSubnetsOutput.add_member(:ip_address_type, Shapes::ShapeRef.new(shape: IpAddressType, location_name: "IpAddressType"))
824
828
  SetSubnetsOutput.struct_class = Types::SetSubnetsOutput
825
829
 
826
830
  SourceIpConditionConfig.add_member(:values, Shapes::ShapeRef.new(shape: ListOfString, location_name: "Values"))
@@ -840,6 +844,7 @@ module Aws::ElasticLoadBalancingV2
840
844
  SubnetMapping.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
841
845
  SubnetMapping.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
842
846
  SubnetMapping.add_member(:private_i_pv_4_address, Shapes::ShapeRef.new(shape: PrivateIPv4Address, location_name: "PrivateIPv4Address"))
847
+ SubnetMapping.add_member(:i_pv_6_address, Shapes::ShapeRef.new(shape: IPv6Address, location_name: "IPv6Address"))
843
848
  SubnetMapping.struct_class = Types::SubnetMapping
844
849
 
845
850
  SubnetMappings.member = Shapes::ShapeRef.new(shape: SubnetMapping)
@@ -527,8 +527,8 @@ module Aws::ElasticLoadBalancingV2
527
527
  #
528
528
  # {
529
529
  # load_balancer_arn: "LoadBalancerArn", # required
530
- # protocol: "HTTP", # required, accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
531
- # port: 1, # required
530
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
531
+ # port: 1,
532
532
  # ssl_policy: "SslPolicyName",
533
533
  # certificates: [
534
534
  # {
@@ -613,38 +613,22 @@ module Aws::ElasticLoadBalancingV2
613
613
  # The protocol for connections from clients to the load balancer. For
614
614
  # Application Load Balancers, the supported protocols are HTTP and
615
615
  # HTTPS. For Network Load Balancers, the supported protocols are TCP,
616
- # TLS, UDP, and TCP\_UDP.
616
+ # TLS, UDP, and TCP\_UDP. You can’t specify the UDP or TCP\_UDP
617
+ # protocol if dual-stack mode is enabled. You cannot specify a
618
+ # protocol for a Gateway Load Balancer.
617
619
  # @return [String]
618
620
  #
619
621
  # @!attribute [rw] port
620
- # The port on which the load balancer is listening.
622
+ # The port on which the load balancer is listening. You cannot specify
623
+ # a port for a Gateway Load Balancer.
621
624
  # @return [Integer]
622
625
  #
623
626
  # @!attribute [rw] ssl_policy
624
627
  # \[HTTPS and TLS listeners\] The security policy that defines which
625
- # protocols and ciphers are supported. The following are the possible
626
- # values:
627
- #
628
- # * `ELBSecurityPolicy-2016-08`
629
- #
630
- # * `ELBSecurityPolicy-TLS-1-0-2015-04`
631
- #
632
- # * `ELBSecurityPolicy-TLS-1-1-2017-01`
633
- #
634
- # * `ELBSecurityPolicy-TLS-1-2-2017-01`
635
- #
636
- # * `ELBSecurityPolicy-TLS-1-2-Ext-2018-06`
637
- #
638
- # * `ELBSecurityPolicy-FS-2018-06`
639
- #
640
- # * `ELBSecurityPolicy-FS-1-1-2019-08`
641
- #
642
- # * `ELBSecurityPolicy-FS-1-2-2019-08`
643
- #
644
- # * `ELBSecurityPolicy-FS-1-2-Res-2019-08`
628
+ # protocols and ciphers are supported.
645
629
  #
646
- # For more information, see [Security Policies][1] in the *Application
647
- # Load Balancers Guide* and [Security Policies][2] in the *Network
630
+ # For more information, see [Security policies][1] in the *Application
631
+ # Load Balancers Guide* and [Security policies][2] in the *Network
648
632
  # Load Balancers Guide*.
649
633
  #
650
634
  #
@@ -657,9 +641,6 @@ module Aws::ElasticLoadBalancingV2
657
641
  # \[HTTPS and TLS listeners\] The default certificate for the
658
642
  # listener. You must provide exactly one certificate. Set
659
643
  # `CertificateArn` to the certificate ARN but do not set `IsDefault`.
660
- #
661
- # To create a certificate list for the listener, use
662
- # AddListenerCertificates.
663
644
  # @return [Array<Types::Certificate>]
664
645
  #
665
646
  # @!attribute [rw] default_actions
@@ -681,7 +662,7 @@ module Aws::ElasticLoadBalancingV2
681
662
  #
682
663
  # * `None`
683
664
  #
684
- # For more information, see [ALPN Policies][1] in the *Network Load
665
+ # For more information, see [ALPN policies][1] in the *Network Load
685
666
  # Balancers Guide*.
686
667
  #
687
668
  #
@@ -731,6 +712,7 @@ module Aws::ElasticLoadBalancingV2
731
712
  # subnet_id: "SubnetId",
732
713
  # allocation_id: "AllocationId",
733
714
  # private_i_pv_4_address: "PrivateIPv4Address",
715
+ # i_pv_6_address: "IPv6Address",
734
716
  # },
735
717
  # ],
736
718
  # security_groups: ["SecurityGroupId"],
@@ -741,7 +723,7 @@ module Aws::ElasticLoadBalancingV2
741
723
  # value: "TagValue",
742
724
  # },
743
725
  # ],
744
- # type: "application", # accepts application, network
726
+ # type: "application", # accepts application, network, gateway
745
727
  # ip_address_type: "ipv4", # accepts ipv4, dualstack
746
728
  # customer_owned_ipv_4_pool: "CustomerOwnedIpv4Pool",
747
729
  # }
@@ -771,6 +753,9 @@ module Aws::ElasticLoadBalancingV2
771
753
  #
772
754
  # \[Network Load Balancers\] You can specify subnets from one or more
773
755
  # Availability Zones.
756
+ #
757
+ # \[Gateway Load Balancers\] You can specify subnets from one or more
758
+ # Availability Zones.
774
759
  # @return [Array<String>]
775
760
  #
776
761
  # @!attribute [rw] subnet_mappings
@@ -792,7 +777,13 @@ module Aws::ElasticLoadBalancingV2
792
777
  # Availability Zones. You can specify one Elastic IP address per
793
778
  # subnet if you need static IP addresses for your internet-facing load
794
779
  # balancer. For internal load balancers, you can specify one private
795
- # IP address per subnet from the IPv4 range of the subnet.
780
+ # IP address per subnet from the IPv4 range of the subnet. For
781
+ # internet-facing load balancer, you can specify one IPv6 address per
782
+ # subnet.
783
+ #
784
+ # \[Gateway Load Balancers\] You can specify subnets from one or more
785
+ # Availability Zones. You cannot specify Elastic IP addresses for your
786
+ # subnets.
796
787
  # @return [Array<Types::SubnetMapping>]
797
788
  #
798
789
  # @!attribute [rw] security_groups
@@ -814,6 +805,8 @@ module Aws::ElasticLoadBalancingV2
814
805
  # access to the VPC for the load balancer.
815
806
  #
816
807
  # The default is an Internet-facing load balancer.
808
+ #
809
+ # You cannot specify a scheme for a Gateway Load Balancer.
817
810
  # @return [String]
818
811
  #
819
812
  # @!attribute [rw] tags
@@ -825,10 +818,10 @@ module Aws::ElasticLoadBalancingV2
825
818
  # @return [String]
826
819
  #
827
820
  # @!attribute [rw] ip_address_type
828
- # \[Application Load Balancers\] The type of IP addresses used by the
829
- # subnets for your load balancer. The possible values are `ipv4` (for
830
- # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses).
831
- # Internal load balancers must use `ipv4`.
821
+ # The type of IP addresses used by the subnets for your load balancer.
822
+ # The possible values are `ipv4` (for IPv4 addresses) and `dualstack`
823
+ # (for IPv4 and IPv6 addresses). Internal load balancers must use
824
+ # `ipv4`.
832
825
  # @return [String]
833
826
  #
834
827
  # @!attribute [rw] customer_owned_ipv_4_pool
@@ -1018,11 +1011,11 @@ module Aws::ElasticLoadBalancingV2
1018
1011
  #
1019
1012
  # {
1020
1013
  # name: "TargetGroupName", # required
1021
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
1014
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
1022
1015
  # protocol_version: "ProtocolVersion",
1023
1016
  # port: 1,
1024
1017
  # vpc_id: "VpcId",
1025
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
1018
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
1026
1019
  # health_check_port: "HealthCheckPort",
1027
1020
  # health_check_enabled: false,
1028
1021
  # health_check_path: "Path",
@@ -1055,7 +1048,8 @@ module Aws::ElasticLoadBalancingV2
1055
1048
  # The protocol to use for routing traffic to the targets. For
1056
1049
  # Application Load Balancers, the supported protocols are HTTP and
1057
1050
  # HTTPS. For Network Load Balancers, the supported protocols are TCP,
1058
- # TLS, UDP, or TCP\_UDP. A TCP\_UDP listener must be associated with a
1051
+ # TLS, UDP, or TCP\_UDP. For Gateway Load Balancers, the supported
1052
+ # protocol is GENEVE. A TCP\_UDP listener must be associated with a
1059
1053
  # TCP\_UDP target group. If the target is a Lambda function, this
1060
1054
  # parameter does not apply.
1061
1055
  # @return [String]
@@ -1070,7 +1064,8 @@ module Aws::ElasticLoadBalancingV2
1070
1064
  # @!attribute [rw] port
1071
1065
  # The port on which the targets receive traffic. This port is used
1072
1066
  # unless you specify a port override when registering the target. If
1073
- # the target is a Lambda function, this parameter does not apply.
1067
+ # the target is a Lambda function, this parameter does not apply. If
1068
+ # the protocol is GENEVE, the supported port is 6081.
1074
1069
  # @return [Integer]
1075
1070
  #
1076
1071
  # @!attribute [rw] vpc_id
@@ -1082,16 +1077,18 @@ module Aws::ElasticLoadBalancingV2
1082
1077
  # @!attribute [rw] health_check_protocol
1083
1078
  # The protocol the load balancer uses when performing health checks on
1084
1079
  # targets. For Application Load Balancers, the default is HTTP. For
1085
- # Network Load Balancers, the default is TCP. The TCP protocol is
1086
- # supported for health checks only if the protocol of the target group
1087
- # is TCP, TLS, UDP, or TCP\_UDP. The TLS, UDP, and TCP\_UDP protocols
1088
- # are not supported for health checks.
1080
+ # Network Load Balancers and Gateway Load Balancers, the default is
1081
+ # TCP. The TCP protocol is not supported for health checks if the
1082
+ # protocol of the target group is HTTP or HTTPS. The GENEVE, TLS, UDP,
1083
+ # and TCP\_UDP protocols are not supported for health checks.
1089
1084
  # @return [String]
1090
1085
  #
1091
1086
  # @!attribute [rw] health_check_port
1092
1087
  # The port the load balancer uses when performing health checks on
1093
- # targets. The default is `traffic-port`, which is the port on which
1094
- # each target receives traffic from the load balancer.
1088
+ # targets. If the protocol is HTTP, HTTPS, TCP, TLS, UDP, or TCP\_UDP,
1089
+ # the default is `traffic-port`, which is the port on which each
1090
+ # target receives traffic from the load balancer. If the protocol is
1091
+ # GENEVE, the default is port 80.
1095
1092
  # @return [String]
1096
1093
  #
1097
1094
  # @!attribute [rw] health_check_enabled
@@ -1114,36 +1111,38 @@ module Aws::ElasticLoadBalancingV2
1114
1111
  #
1115
1112
  # @!attribute [rw] health_check_interval_seconds
1116
1113
  # The approximate amount of time, in seconds, between health checks of
1117
- # an individual target. For HTTP and HTTPS health checks, the range is
1118
- # 5–300 seconds. For TCP health checks, the supported values are 10
1119
- # and 30 seconds. If the target type is `instance` or `ip`, the
1120
- # default is 30 seconds. If the target type is `lambda`, the default
1121
- # is 35 seconds.
1114
+ # an individual target. If the target group protocol is TCP, TLS, UDP,
1115
+ # or TCP\_UDP, the supported values are 10 and 30 seconds. If the
1116
+ # target group protocol is HTTP or HTTPS, the default is 30 seconds.
1117
+ # If the target group protocol is GENEVE, the default is 10 seconds.
1118
+ # If the target type is `lambda`, the default is 35 seconds.
1122
1119
  # @return [Integer]
1123
1120
  #
1124
1121
  # @!attribute [rw] health_check_timeout_seconds
1125
1122
  # The amount of time, in seconds, during which no response from a
1126
1123
  # target means a failed health check. For target groups with a
1127
- # protocol of HTTP or HTTPS, the default is 5 seconds. For target
1128
- # groups with a protocol of TCP or TLS, this value must be 6 seconds
1129
- # for HTTP health checks and 10 seconds for TCP and HTTPS health
1130
- # checks. If the target type is `lambda`, the default is 30 seconds.
1124
+ # protocol of HTTP, HTTPS, or GENEVE, the default is 5 seconds. For
1125
+ # target groups with a protocol of TCP or TLS, this value must be 6
1126
+ # seconds for HTTP health checks and 10 seconds for TCP and HTTPS
1127
+ # health checks. If the target type is `lambda`, the default is 30
1128
+ # seconds.
1131
1129
  # @return [Integer]
1132
1130
  #
1133
1131
  # @!attribute [rw] healthy_threshold_count
1134
1132
  # The number of consecutive health checks successes required before
1135
1133
  # considering an unhealthy target healthy. For target groups with a
1136
1134
  # protocol of HTTP or HTTPS, the default is 5. For target groups with
1137
- # a protocol of TCP or TLS, the default is 3. If the target type is
1138
- # `lambda`, the default is 5.
1135
+ # a protocol of TCP, TLS, or GENEVE, the default is 3. If the target
1136
+ # type is `lambda`, the default is 5.
1139
1137
  # @return [Integer]
1140
1138
  #
1141
1139
  # @!attribute [rw] unhealthy_threshold_count
1142
1140
  # The number of consecutive health check failures required before
1143
- # considering a target unhealthy. For target groups with a protocol of
1144
- # HTTP or HTTPS, the default is 2. For target groups with a protocol
1145
- # of TCP or TLS, this value must be the same as the healthy threshold
1146
- # count. If the target type is `lambda`, the default is 2.
1141
+ # considering a target unhealthy. If the target group protocol is HTTP
1142
+ # or HTTPS, the default is 2. If the target group protocol is TCP or
1143
+ # TLS, this value must be the same as the healthy threshold count. If
1144
+ # the target group protocol is GENEVE, the default is 3. If the target
1145
+ # type is `lambda`, the default is 2.
1147
1146
  # @return [Integer]
1148
1147
  #
1149
1148
  # @!attribute [rw] matcher
@@ -1156,16 +1155,16 @@ module Aws::ElasticLoadBalancingV2
1156
1155
  # with this target group. You can't specify targets for a target
1157
1156
  # group using more than one target type.
1158
1157
  #
1159
- # * `instance` - Targets are specified by instance ID. This is the
1160
- # default value.
1158
+ # * `instance` - Register targets by instance ID. This is the default
1159
+ # value.
1161
1160
  #
1162
- # * `ip` - Targets are specified by IP address. You can specify IP
1161
+ # * `ip` - Register targets by IP address. You can specify IP
1163
1162
  # addresses from the subnets of the virtual private cloud (VPC) for
1164
1163
  # the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12,
1165
1164
  # and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You
1166
1165
  # can't specify publicly routable IP addresses.
1167
1166
  #
1168
- # * `lambda` - The target groups contains a single Lambda function.
1167
+ # * `lambda` - Register a single Lambda function as a target.
1169
1168
  # @return [String]
1170
1169
  #
1171
1170
  # @!attribute [rw] tags
@@ -2112,6 +2111,16 @@ module Aws::ElasticLoadBalancingV2
2112
2111
  #
2113
2112
  # * application-load-balancers
2114
2113
  #
2114
+ # * condition-values-per-alb-rule
2115
+ #
2116
+ # * condition-wildcards-per-alb-rule
2117
+ #
2118
+ # * gateway-load-balancers
2119
+ #
2120
+ # * gateway-load-balancers-per-vpc
2121
+ #
2122
+ # * geneve-target-groups
2123
+ #
2115
2124
  # * listeners-per-application-load-balancer
2116
2125
  #
2117
2126
  # * listeners-per-network-load-balancer
@@ -2130,6 +2139,8 @@ module Aws::ElasticLoadBalancingV2
2130
2139
  #
2131
2140
  # * targets-per-application-load-balancer
2132
2141
  #
2142
+ # * targets-per-availability-zone-per-gateway-load-balancer
2143
+ #
2133
2144
  # * targets-per-availability-zone-per-network-load-balancer
2134
2145
  #
2135
2146
  # * targets-per-network-load-balancer
@@ -2309,12 +2320,17 @@ module Aws::ElasticLoadBalancingV2
2309
2320
  # load balancer.
2310
2321
  # @return [String]
2311
2322
  #
2323
+ # @!attribute [rw] i_pv_6_address
2324
+ # \[Network Load Balancers\] The IPv6 address.
2325
+ # @return [String]
2326
+ #
2312
2327
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerAddress AWS API Documentation
2313
2328
  #
2314
2329
  class LoadBalancerAddress < Struct.new(
2315
2330
  :ip_address,
2316
2331
  :allocation_id,
2317
- :private_i_pv_4_address)
2332
+ :private_i_pv_4_address,
2333
+ :i_pv_6_address)
2318
2334
  SENSITIVE = []
2319
2335
  include Aws::Structure
2320
2336
  end
@@ -2332,6 +2348,14 @@ module Aws::ElasticLoadBalancingV2
2332
2348
  # @!attribute [rw] key
2333
2349
  # The name of the attribute.
2334
2350
  #
2351
+ # The following attribute is supported by all load balancers:
2352
+ #
2353
+ # * `deletion_protection.enabled` - Indicates whether deletion
2354
+ # protection is enabled. The value is `true` or `false`. The default
2355
+ # is `false`.
2356
+ #
2357
+ # ^
2358
+ #
2335
2359
  # The following attributes are supported by both Application Load
2336
2360
  # Balancers and Network Load Balancers:
2337
2361
  #
@@ -2347,10 +2371,6 @@ module Aws::ElasticLoadBalancingV2
2347
2371
  # * `access_logs.s3.prefix` - The prefix for the location in the S3
2348
2372
  # bucket for the access logs.
2349
2373
  #
2350
- # * `deletion_protection.enabled` - Indicates whether deletion
2351
- # protection is enabled. The value is `true` or `false`. The default
2352
- # is `false`.
2353
- #
2354
2374
  # The following attributes are supported by only Application Load
2355
2375
  # Balancers:
2356
2376
  #
@@ -2373,8 +2393,13 @@ module Aws::ElasticLoadBalancingV2
2373
2393
  # Balancing requires that message header names contain only
2374
2394
  # alphanumeric characters and hyphens.
2375
2395
  #
2376
- # The following attributes are supported by only Network Load
2377
- # Balancers:
2396
+ # * `waf.fail_open.enabled` - Indicates whether to allow a WAF-enabled
2397
+ # load balancer to route requests to targets if it is unable to
2398
+ # forward the request to AWS WAF. The value is `true` or `false`.
2399
+ # The default is `false`.
2400
+ #
2401
+ # The following attribute is supported by Network Load Balancers and
2402
+ # Gateway Load Balancers:
2378
2403
  #
2379
2404
  # * `load_balancing.cross_zone.enabled` - Indicates whether cross-zone
2380
2405
  # load balancing is enabled. The value is `true` or `false`. The
@@ -2407,8 +2432,10 @@ module Aws::ElasticLoadBalancingV2
2407
2432
  # @!attribute [rw] code
2408
2433
  # The state code. The initial state of the load balancer is
2409
2434
  # `provisioning`. After the load balancer is fully set up and ready to
2410
- # route traffic, its state is `active`. If the load balancer could not
2411
- # be set up, its state is `failed`.
2435
+ # route traffic, its state is `active`. If load balancer is routing
2436
+ # traffic but does not have the resources it needs to scale, its state
2437
+ # is`active_impaired`. If the load balancer could not be set up, its
2438
+ # state is `failed`.
2412
2439
  # @return [String]
2413
2440
  #
2414
2441
  # @!attribute [rw] reason
@@ -2442,7 +2469,8 @@ module Aws::ElasticLoadBalancingV2
2442
2469
  # values (for example, "200,202") or a range of values (for example,
2443
2470
  # "200-299").
2444
2471
  #
2445
- # For Network Load Balancers, this is "200–399".
2472
+ # For Network Load Balancers and Gateway Load Balancers, this must be
2473
+ # "200–399".
2446
2474
  # @return [String]
2447
2475
  #
2448
2476
  # @!attribute [rw] grpc_code
@@ -2466,7 +2494,7 @@ module Aws::ElasticLoadBalancingV2
2466
2494
  # {
2467
2495
  # listener_arn: "ListenerArn", # required
2468
2496
  # port: 1,
2469
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
2497
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
2470
2498
  # ssl_policy: "SslPolicyName",
2471
2499
  # certificates: [
2472
2500
  # {
@@ -2542,42 +2570,26 @@ module Aws::ElasticLoadBalancingV2
2542
2570
  # @return [String]
2543
2571
  #
2544
2572
  # @!attribute [rw] port
2545
- # The port for connections from clients to the load balancer.
2573
+ # The port for connections from clients to the load balancer. You
2574
+ # cannot specify a port for a Gateway Load Balancer.
2546
2575
  # @return [Integer]
2547
2576
  #
2548
2577
  # @!attribute [rw] protocol
2549
2578
  # The protocol for connections from clients to the load balancer.
2550
2579
  # Application Load Balancers support the HTTP and HTTPS protocols.
2551
2580
  # Network Load Balancers support the TCP, TLS, UDP, and TCP\_UDP
2552
- # protocols.
2581
+ # protocols. You can’t change the protocol to UDP or TCP\_UDP if
2582
+ # dual-stack mode is enabled. You cannot specify a protocol for a
2583
+ # Gateway Load Balancer.
2553
2584
  # @return [String]
2554
2585
  #
2555
2586
  # @!attribute [rw] ssl_policy
2556
2587
  # \[HTTPS and TLS listeners\] The security policy that defines which
2557
- # protocols and ciphers are supported. The following are the possible
2558
- # values:
2559
- #
2560
- # * `ELBSecurityPolicy-2016-08`
2561
- #
2562
- # * `ELBSecurityPolicy-TLS-1-0-2015-04`
2563
- #
2564
- # * `ELBSecurityPolicy-TLS-1-1-2017-01`
2565
- #
2566
- # * `ELBSecurityPolicy-TLS-1-2-2017-01`
2567
- #
2568
- # * `ELBSecurityPolicy-TLS-1-2-Ext-2018-06`
2569
- #
2570
- # * `ELBSecurityPolicy-FS-2018-06`
2571
- #
2572
- # * `ELBSecurityPolicy-FS-1-1-2019-08`
2573
- #
2574
- # * `ELBSecurityPolicy-FS-1-2-2019-08`
2575
- #
2576
- # * `ELBSecurityPolicy-FS-1-2-Res-2019-08`
2588
+ # protocols and ciphers are supported.
2577
2589
  #
2578
- # For more information, see [Security Policies][1] in the *Application
2579
- # Load Balancers Guide* and [Security Policies][2] in the *Network
2580
- # Load Balancers Guide*.
2590
+ # For more information, see [Security policies][1] in the *Application
2591
+ # Load Balancers Guide* or [Security policies][2] in the *Network Load
2592
+ # Balancers Guide*.
2581
2593
  #
2582
2594
  #
2583
2595
  #
@@ -2589,8 +2601,6 @@ module Aws::ElasticLoadBalancingV2
2589
2601
  # \[HTTPS and TLS listeners\] The default certificate for the
2590
2602
  # listener. You must provide exactly one certificate. Set
2591
2603
  # `CertificateArn` to the certificate ARN but do not set `IsDefault`.
2592
- #
2593
- # To create a certificate list, use AddListenerCertificates.
2594
2604
  # @return [Array<Types::Certificate>]
2595
2605
  #
2596
2606
  # @!attribute [rw] default_actions
@@ -2612,7 +2622,7 @@ module Aws::ElasticLoadBalancingV2
2612
2622
  #
2613
2623
  # * `None`
2614
2624
  #
2615
- # For more information, see [ALPN Policies][1] in the *Network Load
2625
+ # For more information, see [ALPN policies][1] in the *Network Load
2616
2626
  # Balancers Guide*.
2617
2627
  #
2618
2628
  #
@@ -2866,7 +2876,7 @@ module Aws::ElasticLoadBalancingV2
2866
2876
  #
2867
2877
  # {
2868
2878
  # target_group_arn: "TargetGroupArn", # required
2869
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
2879
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
2870
2880
  # health_check_port: "HealthCheckPort",
2871
2881
  # health_check_path: "Path",
2872
2882
  # health_check_enabled: false,
@@ -2887,8 +2897,9 @@ module Aws::ElasticLoadBalancingV2
2887
2897
  # @!attribute [rw] health_check_protocol
2888
2898
  # The protocol the load balancer uses when performing health checks on
2889
2899
  # targets. The TCP protocol is supported for health checks only if the
2890
- # protocol of the target group is TCP, TLS, UDP, or TCP\_UDP. The TLS,
2891
- # UDP, and TCP\_UDP protocols are not supported for health checks.
2900
+ # protocol of the target group is TCP, TLS, UDP, or TCP\_UDP. The
2901
+ # GENEVE, TLS, UDP, and TCP\_UDP protocols are not supported for
2902
+ # health checks.
2892
2903
  #
2893
2904
  # With Network Load Balancers, you can't modify this setting.
2894
2905
  # @return [String]
@@ -2915,9 +2926,8 @@ module Aws::ElasticLoadBalancingV2
2915
2926
  #
2916
2927
  # @!attribute [rw] health_check_interval_seconds
2917
2928
  # The approximate amount of time, in seconds, between health checks of
2918
- # an individual target. For HTTP and HTTPS health checks, the range is
2919
- # 5 to 300 seconds. For TPC health checks, the supported values are 10
2920
- # or 30 seconds.
2929
+ # an individual target. For TCP health checks, the supported values
2930
+ # are 10 or 30 seconds.
2921
2931
  #
2922
2932
  # With Network Load Balancers, you can't modify this setting.
2923
2933
  # @return [Integer]
@@ -3504,8 +3514,8 @@ module Aws::ElasticLoadBalancingV2
3504
3514
  # @!attribute [rw] ip_address_type
3505
3515
  # The IP address type. The possible values are `ipv4` (for IPv4
3506
3516
  # addresses) and `dualstack` (for IPv4 and IPv6 addresses). Internal
3507
- # load balancers must use `ipv4`. Network Load Balancers must use
3508
- # `ipv4`.
3517
+ # load balancers must use `ipv4`. You can’t specify `dualstack` for a
3518
+ # load balancer with a UDP or TCP\_UDP listener.
3509
3519
  # @return [String]
3510
3520
  #
3511
3521
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressTypeInput AWS API Documentation
@@ -3613,8 +3623,10 @@ module Aws::ElasticLoadBalancingV2
3613
3623
  # subnet_id: "SubnetId",
3614
3624
  # allocation_id: "AllocationId",
3615
3625
  # private_i_pv_4_address: "PrivateIPv4Address",
3626
+ # i_pv_6_address: "IPv6Address",
3616
3627
  # },
3617
3628
  # ],
3629
+ # ip_address_type: "ipv4", # accepts ipv4, dualstack
3618
3630
  # }
3619
3631
  #
3620
3632
  # @!attribute [rw] load_balancer_arn
@@ -3622,10 +3634,21 @@ module Aws::ElasticLoadBalancingV2
3622
3634
  # @return [String]
3623
3635
  #
3624
3636
  # @!attribute [rw] subnets
3625
- # The IDs of the public subnets. You must specify subnets from at
3626
- # least two Availability Zones. You can specify only one subnet per
3637
+ # The IDs of the public subnets. You can specify only one subnet per
3627
3638
  # Availability Zone. You must specify either subnets or subnet
3628
3639
  # mappings.
3640
+ #
3641
+ # \[Application Load Balancers\] You must specify subnets from at
3642
+ # least two Availability Zones.
3643
+ #
3644
+ # \[Application Load Balancers on Outposts\] You must specify one
3645
+ # Outpost subnet.
3646
+ #
3647
+ # \[Application Load Balancers on Local Zones\] You can specify
3648
+ # subnets from one or more Local Zones.
3649
+ #
3650
+ # \[Network Load Balancers\] You can specify subnets from one or more
3651
+ # Availability Zones.
3629
3652
  # @return [Array<String>]
3630
3653
  #
3631
3654
  # @!attribute [rw] subnet_mappings
@@ -3637,19 +3660,36 @@ module Aws::ElasticLoadBalancingV2
3637
3660
  # least two Availability Zones. You cannot specify Elastic IP
3638
3661
  # addresses for your subnets.
3639
3662
  #
3663
+ # \[Application Load Balancers on Outposts\] You must specify one
3664
+ # Outpost subnet.
3665
+ #
3666
+ # \[Application Load Balancers on Local Zones\] You can specify
3667
+ # subnets from one or more Local Zones.
3668
+ #
3640
3669
  # \[Network Load Balancers\] You can specify subnets from one or more
3641
- # Availability Zones. If you need static IP addresses for your
3642
- # internet-facing load balancer, you can specify one Elastic IP
3643
- # address per subnet. For internal load balancers, you can specify one
3644
- # private IP address per subnet from the IPv4 range of the subnet.
3670
+ # Availability Zones. You can specify one Elastic IP address per
3671
+ # subnet if you need static IP addresses for your internet-facing load
3672
+ # balancer. For internal load balancers, you can specify one private
3673
+ # IP address per subnet from the IPv4 range of the subnet. For
3674
+ # internet-facing load balancer, you can specify one IPv6 address per
3675
+ # subnet.
3645
3676
  # @return [Array<Types::SubnetMapping>]
3646
3677
  #
3678
+ # @!attribute [rw] ip_address_type
3679
+ # \[Network Load Balancers\] The type of IP addresses used by the
3680
+ # subnets for your load balancer. The possible values are `ipv4` (for
3681
+ # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses). You
3682
+ # can’t specify `dualstack` for a load balancer with a UDP or TCP\_UDP
3683
+ # listener. Internal load balancers must use `ipv4`.
3684
+ # @return [String]
3685
+ #
3647
3686
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsInput AWS API Documentation
3648
3687
  #
3649
3688
  class SetSubnetsInput < Struct.new(
3650
3689
  :load_balancer_arn,
3651
3690
  :subnets,
3652
- :subnet_mappings)
3691
+ :subnet_mappings,
3692
+ :ip_address_type)
3653
3693
  SENSITIVE = []
3654
3694
  include Aws::Structure
3655
3695
  end
@@ -3658,10 +3698,15 @@ module Aws::ElasticLoadBalancingV2
3658
3698
  # Information about the subnets.
3659
3699
  # @return [Array<Types::AvailabilityZone>]
3660
3700
  #
3701
+ # @!attribute [rw] ip_address_type
3702
+ # \[Network Load Balancers\] The IP address type.
3703
+ # @return [String]
3704
+ #
3661
3705
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsOutput AWS API Documentation
3662
3706
  #
3663
3707
  class SetSubnetsOutput < Struct.new(
3664
- :availability_zones)
3708
+ :availability_zones,
3709
+ :ip_address_type)
3665
3710
  SENSITIVE = []
3666
3711
  include Aws::Structure
3667
3712
  end
@@ -3732,6 +3777,7 @@ module Aws::ElasticLoadBalancingV2
3732
3777
  # subnet_id: "SubnetId",
3733
3778
  # allocation_id: "AllocationId",
3734
3779
  # private_i_pv_4_address: "PrivateIPv4Address",
3780
+ # i_pv_6_address: "IPv6Address",
3735
3781
  # }
3736
3782
  #
3737
3783
  # @!attribute [rw] subnet_id
@@ -3748,12 +3794,17 @@ module Aws::ElasticLoadBalancingV2
3748
3794
  # load balancer.
3749
3795
  # @return [String]
3750
3796
  #
3797
+ # @!attribute [rw] i_pv_6_address
3798
+ # \[Network Load Balancers\] The IPv6 address.
3799
+ # @return [String]
3800
+ #
3751
3801
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SubnetMapping AWS API Documentation
3752
3802
  #
3753
3803
  class SubnetMapping < Struct.new(
3754
3804
  :subnet_id,
3755
3805
  :allocation_id,
3756
- :private_i_pv_4_address)
3806
+ :private_i_pv_4_address,
3807
+ :i_pv_6_address)
3757
3808
  SENSITIVE = []
3758
3809
  include Aws::Structure
3759
3810
  end
@@ -3829,8 +3880,9 @@ module Aws::ElasticLoadBalancingV2
3829
3880
  # @return [String]
3830
3881
  #
3831
3882
  # @!attribute [rw] port
3832
- # The port on which the target is listening. Not used if the target is
3833
- # a Lambda function.
3883
+ # The port on which the target is listening. If the target group
3884
+ # protocol is GENEVE, the supported port is 6081. Not used if the
3885
+ # target is a Lambda function.
3834
3886
  # @return [Integer]
3835
3887
  #
3836
3888
  # @!attribute [rw] availability_zone
@@ -3889,7 +3941,8 @@ module Aws::ElasticLoadBalancingV2
3889
3941
  # @return [String]
3890
3942
  #
3891
3943
  # @!attribute [rw] health_check_protocol
3892
- # The protocol to use to connect with the target.
3944
+ # The protocol to use to connect with the target. The GENEVE, TLS,
3945
+ # UDP, and TCP\_UDP protocols are not supported for health checks.
3893
3946
  # @return [String]
3894
3947
  #
3895
3948
  # @!attribute [rw] health_check_port
@@ -3936,9 +3989,9 @@ module Aws::ElasticLoadBalancingV2
3936
3989
  #
3937
3990
  # @!attribute [rw] target_type
3938
3991
  # The type of target that you must specify when registering targets
3939
- # with this target group. The possible values are `instance` (targets
3940
- # are specified by instance ID) or `ip` (targets are specified by IP
3941
- # address).
3992
+ # with this target group. The possible values are `instance` (register
3993
+ # targets by instance ID), `ip` (register targets by IP address), or
3994
+ # `lambda` (register a single Lambda function as a target).
3942
3995
  # @return [String]
3943
3996
  #
3944
3997
  # @!attribute [rw] protocol_version
@@ -3990,8 +4043,7 @@ module Aws::ElasticLoadBalancingV2
3990
4043
  # @!attribute [rw] key
3991
4044
  # The name of the attribute.
3992
4045
  #
3993
- # The following attributes are supported by both Application Load
3994
- # Balancers and Network Load Balancers:
4046
+ # The following attribute is supported by all load balancers:
3995
4047
  #
3996
4048
  # * `deregistration_delay.timeout_seconds` - The amount of time, in
3997
4049
  # seconds, for Elastic Load Balancing to wait before changing the
@@ -3999,12 +4051,17 @@ module Aws::ElasticLoadBalancingV2
3999
4051
  # range is 0-3600 seconds. The default value is 300 seconds. If the
4000
4052
  # target is a Lambda function, this attribute is not supported.
4001
4053
  #
4054
+ # ^
4055
+ #
4056
+ # The following attributes are supported by both Application Load
4057
+ # Balancers and Network Load Balancers:
4058
+ #
4002
4059
  # * `stickiness.enabled` - Indicates whether sticky sessions are
4003
4060
  # enabled. The value is `true` or `false`. The default is `false`.
4004
4061
  #
4005
4062
  # * `stickiness.type` - The type of sticky sessions. The possible
4006
- # values are `lb_cookie` for Application Load Balancers or
4007
- # `source_ip` for Network Load Balancers.
4063
+ # values are `lb_cookie` and `app_cookie` for Application Load
4064
+ # Balancers or `source_ip` for Network Load Balancers.
4008
4065
  #
4009
4066
  # The following attributes are supported only if the load balancer is
4010
4067
  # an Application Load Balancer and the target is an instance or an IP
@@ -4021,6 +4078,13 @@ module Aws::ElasticLoadBalancingV2
4021
4078
  # ends, the target receives its full share of traffic. The range is
4022
4079
  # 30-900 seconds (15 minutes). The default is 0 seconds (disabled).
4023
4080
  #
4081
+ # * `stickiness.app_cookie.duration_seconds` - The time period, in
4082
+ # seconds, during which requests from a client should be routed to
4083
+ # the same target. After this time period expires, the
4084
+ # application-based cookie is considered stale. The range is 1
4085
+ # second to 1 week (604800 seconds). The default value is 1 day
4086
+ # (86400 seconds).
4087
+ #
4024
4088
  # * `stickiness.lb_cookie.duration_seconds` - The time period, in
4025
4089
  # seconds, during which requests from a client should be routed to
4026
4090
  # the same target. After this time period expires, the load
@@ -4041,13 +4105,23 @@ module Aws::ElasticLoadBalancingV2
4041
4105
  #
4042
4106
  # ^
4043
4107
  #
4044
- # The following attribute is supported only by Network Load Balancers:
4108
+ # The following attributes are supported only by Network Load
4109
+ # Balancers:
4110
+ #
4111
+ # * `deregistration_delay.connection_termination.enabled` - Indicates
4112
+ # whether the load balancer terminates connections at the end of the
4113
+ # deregistration timeout. The value is `true` or `false`. The
4114
+ # default is `false`.
4115
+ #
4116
+ # * `preserve_client_ip.enabled` - Indicates whether client IP
4117
+ # preservation is enabled. The value is `true` or `false`. The
4118
+ # default is disabled if the target group type is IP address and the
4119
+ # target group protocol is TCP or TLS. Otherwise, the default is
4120
+ # enabled.
4045
4121
  #
4046
4122
  # * `proxy_protocol_v2.enabled` - Indicates whether Proxy Protocol
4047
4123
  # version 2 is enabled. The value is `true` or `false`. The default
4048
4124
  # is `false`.
4049
- #
4050
- # ^
4051
4125
  # @return [String]
4052
4126
  #
4053
4127
  # @!attribute [rw] value
@@ -4151,10 +4225,11 @@ module Aws::ElasticLoadBalancingV2
4151
4225
  # the following values:
4152
4226
  #
4153
4227
  # * `Target.ResponseCodeMismatch` - The health checks did not return
4154
- # an expected HTTP code. Applies only to Application Load Balancers.
4228
+ # an expected HTTP code. Applies only to Application Load Balancers
4229
+ # and Gateway Load Balancers.
4155
4230
  #
4156
4231
  # * `Target.Timeout` - The health check requests timed out. Applies
4157
- # only to Application Load Balancers.
4232
+ # only to Application Load Balancers and Gateway Load Balancers.
4158
4233
  #
4159
4234
  # * `Target.FailedHealthChecks` - The load balancer received an error
4160
4235
  # while establishing a connection to the target or the target