aws-sdk-elasticloadbalancingv2 1.53.0 → 1.58.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.
@@ -119,6 +119,7 @@ module Aws::ElasticLoadBalancingV2
119
119
  FixedResponseActionMessage = Shapes::StringShape.new(name: 'FixedResponseActionMessage')
120
120
  FixedResponseActionStatusCode = Shapes::StringShape.new(name: 'FixedResponseActionStatusCode')
121
121
  ForwardActionConfig = Shapes::StructureShape.new(name: 'ForwardActionConfig')
122
+ GrpcCode = Shapes::StringShape.new(name: 'GrpcCode')
122
123
  HealthCheckEnabled = Shapes::BooleanShape.new(name: 'HealthCheckEnabled')
123
124
  HealthCheckIntervalSeconds = Shapes::IntegerShape.new(name: 'HealthCheckIntervalSeconds')
124
125
  HealthCheckPort = Shapes::StringShape.new(name: 'HealthCheckPort')
@@ -130,6 +131,7 @@ module Aws::ElasticLoadBalancingV2
130
131
  HttpHeaderConditionConfig = Shapes::StructureShape.new(name: 'HttpHeaderConditionConfig')
131
132
  HttpHeaderConditionName = Shapes::StringShape.new(name: 'HttpHeaderConditionName')
132
133
  HttpRequestMethodConditionConfig = Shapes::StructureShape.new(name: 'HttpRequestMethodConditionConfig')
134
+ IPv6Address = Shapes::StringShape.new(name: 'IPv6Address')
133
135
  IncompatibleProtocolsException = Shapes::StructureShape.new(name: 'IncompatibleProtocolsException')
134
136
  InvalidConfigurationRequestException = Shapes::StructureShape.new(name: 'InvalidConfigurationRequestException')
135
137
  InvalidLoadBalancerActionException = Shapes::StructureShape.new(name: 'InvalidLoadBalancerActionException')
@@ -188,6 +190,7 @@ module Aws::ElasticLoadBalancingV2
188
190
  PriorityInUseException = Shapes::StructureShape.new(name: 'PriorityInUseException')
189
191
  PrivateIPv4Address = Shapes::StringShape.new(name: 'PrivateIPv4Address')
190
192
  ProtocolEnum = Shapes::StringShape.new(name: 'ProtocolEnum')
193
+ ProtocolVersion = Shapes::StringShape.new(name: 'ProtocolVersion')
191
194
  QueryStringConditionConfig = Shapes::StructureShape.new(name: 'QueryStringConditionConfig')
192
195
  QueryStringKeyValuePair = Shapes::StructureShape.new(name: 'QueryStringKeyValuePair')
193
196
  QueryStringKeyValuePairList = Shapes::ListShape.new(name: 'QueryStringKeyValuePairList')
@@ -377,8 +380,8 @@ module Aws::ElasticLoadBalancingV2
377
380
  Ciphers.member = Shapes::ShapeRef.new(shape: Cipher)
378
381
 
379
382
  CreateListenerInput.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, required: true, location_name: "LoadBalancerArn"))
380
- CreateListenerInput.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolEnum, required: true, location_name: "Protocol"))
381
- 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"))
382
385
  CreateListenerInput.add_member(:ssl_policy, Shapes::ShapeRef.new(shape: SslPolicyName, location_name: "SslPolicy"))
383
386
  CreateListenerInput.add_member(:certificates, Shapes::ShapeRef.new(shape: CertificateList, location_name: "Certificates"))
384
387
  CreateListenerInput.add_member(:default_actions, Shapes::ShapeRef.new(shape: Actions, required: true, location_name: "DefaultActions"))
@@ -415,6 +418,7 @@ module Aws::ElasticLoadBalancingV2
415
418
 
416
419
  CreateTargetGroupInput.add_member(:name, Shapes::ShapeRef.new(shape: TargetGroupName, required: true, location_name: "Name"))
417
420
  CreateTargetGroupInput.add_member(:protocol, Shapes::ShapeRef.new(shape: ProtocolEnum, location_name: "Protocol"))
421
+ CreateTargetGroupInput.add_member(:protocol_version, Shapes::ShapeRef.new(shape: ProtocolVersion, location_name: "ProtocolVersion"))
418
422
  CreateTargetGroupInput.add_member(:port, Shapes::ShapeRef.new(shape: Port, location_name: "Port"))
419
423
  CreateTargetGroupInput.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
420
424
  CreateTargetGroupInput.add_member(:health_check_protocol, Shapes::ShapeRef.new(shape: ProtocolEnum, location_name: "HealthCheckProtocol"))
@@ -636,6 +640,7 @@ module Aws::ElasticLoadBalancingV2
636
640
  LoadBalancerAddress.add_member(:ip_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "IpAddress"))
637
641
  LoadBalancerAddress.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
638
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"))
639
644
  LoadBalancerAddress.struct_class = Types::LoadBalancerAddress
640
645
 
641
646
  LoadBalancerAddresses.member = Shapes::ShapeRef.new(shape: LoadBalancerAddress)
@@ -658,7 +663,8 @@ module Aws::ElasticLoadBalancingV2
658
663
 
659
664
  LoadBalancers.member = Shapes::ShapeRef.new(shape: LoadBalancer)
660
665
 
661
- Matcher.add_member(:http_code, Shapes::ShapeRef.new(shape: HttpCode, required: true, location_name: "HttpCode"))
666
+ Matcher.add_member(:http_code, Shapes::ShapeRef.new(shape: HttpCode, location_name: "HttpCode"))
667
+ Matcher.add_member(:grpc_code, Shapes::ShapeRef.new(shape: GrpcCode, location_name: "GrpcCode"))
662
668
  Matcher.struct_class = Types::Matcher
663
669
 
664
670
  ModifyListenerInput.add_member(:listener_arn, Shapes::ShapeRef.new(shape: ListenerArn, required: true, location_name: "ListenerArn"))
@@ -814,9 +820,11 @@ module Aws::ElasticLoadBalancingV2
814
820
  SetSubnetsInput.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, required: true, location_name: "LoadBalancerArn"))
815
821
  SetSubnetsInput.add_member(:subnets, Shapes::ShapeRef.new(shape: Subnets, location_name: "Subnets"))
816
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"))
817
824
  SetSubnetsInput.struct_class = Types::SetSubnetsInput
818
825
 
819
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"))
820
828
  SetSubnetsOutput.struct_class = Types::SetSubnetsOutput
821
829
 
822
830
  SourceIpConditionConfig.add_member(:values, Shapes::ShapeRef.new(shape: ListOfString, location_name: "Values"))
@@ -836,6 +844,7 @@ module Aws::ElasticLoadBalancingV2
836
844
  SubnetMapping.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
837
845
  SubnetMapping.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
838
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"))
839
848
  SubnetMapping.struct_class = Types::SubnetMapping
840
849
 
841
850
  SubnetMappings.member = Shapes::ShapeRef.new(shape: SubnetMapping)
@@ -881,6 +890,7 @@ module Aws::ElasticLoadBalancingV2
881
890
  TargetGroup.add_member(:matcher, Shapes::ShapeRef.new(shape: Matcher, location_name: "Matcher"))
882
891
  TargetGroup.add_member(:load_balancer_arns, Shapes::ShapeRef.new(shape: LoadBalancerArns, location_name: "LoadBalancerArns"))
883
892
  TargetGroup.add_member(:target_type, Shapes::ShapeRef.new(shape: TargetTypeEnum, location_name: "TargetType"))
893
+ TargetGroup.add_member(:protocol_version, Shapes::ShapeRef.new(shape: ProtocolVersion, location_name: "ProtocolVersion"))
884
894
  TargetGroup.struct_class = Types::TargetGroup
885
895
 
886
896
  TargetGroupArns.member = Shapes::ShapeRef.new(shape: TargetGroupArn)
@@ -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,34 +641,10 @@ 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
666
- # The actions for the default rule. The rule must include one forward
667
- # action or one or more fixed-response actions.
668
- #
669
- # If the action type is `forward`, you specify one or more target
670
- # groups. The protocol of the target group must be HTTP or HTTPS for
671
- # an Application Load Balancer. The protocol of the target group must
672
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
673
- #
674
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
675
- # authenticate users through an identity provider that is OpenID
676
- # Connect (OIDC) compliant.
677
- #
678
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
679
- # you authenticate users through the user pools supported by Amazon
680
- # Cognito.
681
- #
682
- # \[Application Load Balancer\] If the action type is `redirect`, you
683
- # redirect specified client requests from one URL to another.
684
- #
685
- # \[Application Load Balancer\] If the action type is
686
- # `fixed-response`, you drop specified client requests and return a
687
- # custom HTTP response.
647
+ # The actions for the default rule.
688
648
  # @return [Array<Types::Action>]
689
649
  #
690
650
  # @!attribute [rw] alpn_policy
@@ -702,7 +662,7 @@ module Aws::ElasticLoadBalancingV2
702
662
  #
703
663
  # * `None`
704
664
  #
705
- # For more information, see [ALPN Policies][1] in the *Network Load
665
+ # For more information, see [ALPN policies][1] in the *Network Load
706
666
  # Balancers Guide*.
707
667
  #
708
668
  #
@@ -752,6 +712,7 @@ module Aws::ElasticLoadBalancingV2
752
712
  # subnet_id: "SubnetId",
753
713
  # allocation_id: "AllocationId",
754
714
  # private_i_pv_4_address: "PrivateIPv4Address",
715
+ # i_pv_6_address: "IPv6Address",
755
716
  # },
756
717
  # ],
757
718
  # security_groups: ["SecurityGroupId"],
@@ -762,7 +723,7 @@ module Aws::ElasticLoadBalancingV2
762
723
  # value: "TagValue",
763
724
  # },
764
725
  # ],
765
- # type: "application", # accepts application, network
726
+ # type: "application", # accepts application, network, gateway
766
727
  # ip_address_type: "ipv4", # accepts ipv4, dualstack
767
728
  # customer_owned_ipv_4_pool: "CustomerOwnedIpv4Pool",
768
729
  # }
@@ -792,6 +753,9 @@ module Aws::ElasticLoadBalancingV2
792
753
  #
793
754
  # \[Network Load Balancers\] You can specify subnets from one or more
794
755
  # Availability Zones.
756
+ #
757
+ # \[Gateway Load Balancers\] You can specify subnets from one or more
758
+ # Availability Zones.
795
759
  # @return [Array<String>]
796
760
  #
797
761
  # @!attribute [rw] subnet_mappings
@@ -813,7 +777,13 @@ module Aws::ElasticLoadBalancingV2
813
777
  # Availability Zones. You can specify one Elastic IP address per
814
778
  # subnet if you need static IP addresses for your internet-facing load
815
779
  # balancer. For internal load balancers, you can specify one private
816
- # 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.
817
787
  # @return [Array<Types::SubnetMapping>]
818
788
  #
819
789
  # @!attribute [rw] security_groups
@@ -835,6 +805,8 @@ module Aws::ElasticLoadBalancingV2
835
805
  # access to the VPC for the load balancer.
836
806
  #
837
807
  # The default is an Internet-facing load balancer.
808
+ #
809
+ # You cannot specify a scheme for a Gateway Load Balancer.
838
810
  # @return [String]
839
811
  #
840
812
  # @!attribute [rw] tags
@@ -846,10 +818,10 @@ module Aws::ElasticLoadBalancingV2
846
818
  # @return [String]
847
819
  #
848
820
  # @!attribute [rw] ip_address_type
849
- # \[Application Load Balancers\] The type of IP addresses used by the
850
- # subnets for your load balancer. The possible values are `ipv4` (for
851
- # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses).
852
- # 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`.
853
825
  # @return [String]
854
826
  #
855
827
  # @!attribute [rw] customer_owned_ipv_4_pool
@@ -994,11 +966,7 @@ module Aws::ElasticLoadBalancingV2
994
966
  # @return [String]
995
967
  #
996
968
  # @!attribute [rw] conditions
997
- # The conditions. Each rule can optionally include up to one of each
998
- # of the following conditions: `http-request-method`, `host-header`,
999
- # `path-pattern`, and `source-ip`. Each rule can also optionally
1000
- # include one or more of each of the following conditions:
1001
- # `http-header` and `query-string`.
969
+ # The conditions.
1002
970
  # @return [Array<Types::RuleCondition>]
1003
971
  #
1004
972
  # @!attribute [rw] priority
@@ -1007,29 +975,7 @@ module Aws::ElasticLoadBalancingV2
1007
975
  # @return [Integer]
1008
976
  #
1009
977
  # @!attribute [rw] actions
1010
- # The actions. Each rule must include exactly one of the following
1011
- # types of actions: `forward`, `fixed-response`, or `redirect`, and it
1012
- # must be the last action to be performed.
1013
- #
1014
- # If the action type is `forward`, you specify one or more target
1015
- # groups. The protocol of the target group must be HTTP or HTTPS for
1016
- # an Application Load Balancer. The protocol of the target group must
1017
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
1018
- #
1019
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
1020
- # authenticate users through an identity provider that is OpenID
1021
- # Connect (OIDC) compliant.
1022
- #
1023
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
1024
- # you authenticate users through the user pools supported by Amazon
1025
- # Cognito.
1026
- #
1027
- # \[Application Load Balancer\] If the action type is `redirect`, you
1028
- # redirect specified client requests from one URL to another.
1029
- #
1030
- # \[Application Load Balancer\] If the action type is
1031
- # `fixed-response`, you drop specified client requests and return a
1032
- # custom HTTP response.
978
+ # The actions.
1033
979
  # @return [Array<Types::Action>]
1034
980
  #
1035
981
  # @!attribute [rw] tags
@@ -1065,10 +1011,11 @@ module Aws::ElasticLoadBalancingV2
1065
1011
  #
1066
1012
  # {
1067
1013
  # name: "TargetGroupName", # required
1068
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
1014
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
1015
+ # protocol_version: "ProtocolVersion",
1069
1016
  # port: 1,
1070
1017
  # vpc_id: "VpcId",
1071
- # 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
1072
1019
  # health_check_port: "HealthCheckPort",
1073
1020
  # health_check_enabled: false,
1074
1021
  # health_check_path: "Path",
@@ -1077,7 +1024,8 @@ module Aws::ElasticLoadBalancingV2
1077
1024
  # healthy_threshold_count: 1,
1078
1025
  # unhealthy_threshold_count: 1,
1079
1026
  # matcher: {
1080
- # http_code: "HttpCode", # required
1027
+ # http_code: "HttpCode",
1028
+ # grpc_code: "GrpcCode",
1081
1029
  # },
1082
1030
  # target_type: "instance", # accepts instance, ip, lambda
1083
1031
  # tags: [
@@ -1100,15 +1048,24 @@ module Aws::ElasticLoadBalancingV2
1100
1048
  # The protocol to use for routing traffic to the targets. For
1101
1049
  # Application Load Balancers, the supported protocols are HTTP and
1102
1050
  # HTTPS. For Network Load Balancers, the supported protocols are TCP,
1103
- # 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
1104
1053
  # TCP\_UDP target group. If the target is a Lambda function, this
1105
1054
  # parameter does not apply.
1106
1055
  # @return [String]
1107
1056
  #
1057
+ # @!attribute [rw] protocol_version
1058
+ # \[HTTP/HTTPS protocol\] The protocol version. Specify `GRPC` to send
1059
+ # requests to targets using gRPC. Specify `HTTP2` to send requests to
1060
+ # targets using HTTP/2. The default is `HTTP1`, which sends requests
1061
+ # to targets using HTTP/1.1.
1062
+ # @return [String]
1063
+ #
1108
1064
  # @!attribute [rw] port
1109
1065
  # The port on which the targets receive traffic. This port is used
1110
1066
  # unless you specify a port override when registering the target. If
1111
- # 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.
1112
1069
  # @return [Integer]
1113
1070
  #
1114
1071
  # @!attribute [rw] vpc_id
@@ -1120,16 +1077,18 @@ module Aws::ElasticLoadBalancingV2
1120
1077
  # @!attribute [rw] health_check_protocol
1121
1078
  # The protocol the load balancer uses when performing health checks on
1122
1079
  # targets. For Application Load Balancers, the default is HTTP. For
1123
- # Network Load Balancers, the default is TCP. The TCP protocol is
1124
- # supported for health checks only if the protocol of the target group
1125
- # is TCP, TLS, UDP, or TCP\_UDP. The TLS, UDP, and TCP\_UDP protocols
1126
- # 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.
1127
1084
  # @return [String]
1128
1085
  #
1129
1086
  # @!attribute [rw] health_check_port
1130
1087
  # The port the load balancer uses when performing health checks on
1131
- # targets. The default is `traffic-port`, which is the port on which
1132
- # 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.
1133
1092
  # @return [String]
1134
1093
  #
1135
1094
  # @!attribute [rw] health_check_enabled
@@ -1140,47 +1099,55 @@ module Aws::ElasticLoadBalancingV2
1140
1099
  # @return [Boolean]
1141
1100
  #
1142
1101
  # @!attribute [rw] health_check_path
1143
- # \[HTTP/HTTPS health checks\] The ping path that is the destination
1144
- # on the targets for health checks. The default is /.
1102
+ # \[HTTP/HTTPS health checks\] The destination for health checks on
1103
+ # the targets.
1104
+ #
1105
+ # \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /.
1106
+ #
1107
+ # \[GRPC protocol version\] The path of a custom health check method
1108
+ # with the format /package.service/method. The default is
1109
+ # /AWS.ALB/healthcheck.
1145
1110
  # @return [String]
1146
1111
  #
1147
1112
  # @!attribute [rw] health_check_interval_seconds
1148
1113
  # The approximate amount of time, in seconds, between health checks of
1149
- # an individual target. For HTTP and HTTPS health checks, the range is
1150
- # 5–300 seconds. For TCP health checks, the supported values are 10
1151
- # and 30 seconds. If the target type is `instance` or `ip`, the
1152
- # default is 30 seconds. If the target type is `lambda`, the default
1153
- # 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.
1154
1119
  # @return [Integer]
1155
1120
  #
1156
1121
  # @!attribute [rw] health_check_timeout_seconds
1157
1122
  # The amount of time, in seconds, during which no response from a
1158
1123
  # target means a failed health check. For target groups with a
1159
- # protocol of HTTP or HTTPS, the default is 5 seconds. For target
1160
- # groups with a protocol of TCP or TLS, this value must be 6 seconds
1161
- # for HTTP health checks and 10 seconds for TCP and HTTPS health
1162
- # 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.
1163
1129
  # @return [Integer]
1164
1130
  #
1165
1131
  # @!attribute [rw] healthy_threshold_count
1166
1132
  # The number of consecutive health checks successes required before
1167
1133
  # considering an unhealthy target healthy. For target groups with a
1168
1134
  # protocol of HTTP or HTTPS, the default is 5. For target groups with
1169
- # a protocol of TCP or TLS, the default is 3. If the target type is
1170
- # `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.
1171
1137
  # @return [Integer]
1172
1138
  #
1173
1139
  # @!attribute [rw] unhealthy_threshold_count
1174
1140
  # The number of consecutive health check failures required before
1175
- # considering a target unhealthy. For target groups with a protocol of
1176
- # HTTP or HTTPS, the default is 2. For target groups with a protocol
1177
- # of TCP or TLS, this value must be the same as the healthy threshold
1178
- # 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.
1179
1146
  # @return [Integer]
1180
1147
  #
1181
1148
  # @!attribute [rw] matcher
1182
- # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for
1183
- # a successful response from a target.
1149
+ # \[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when
1150
+ # checking for a successful response from a target.
1184
1151
  # @return [Types::Matcher]
1185
1152
  #
1186
1153
  # @!attribute [rw] target_type
@@ -1188,16 +1155,16 @@ module Aws::ElasticLoadBalancingV2
1188
1155
  # with this target group. You can't specify targets for a target
1189
1156
  # group using more than one target type.
1190
1157
  #
1191
- # * `instance` - Targets are specified by instance ID. This is the
1192
- # default value.
1158
+ # * `instance` - Register targets by instance ID. This is the default
1159
+ # value.
1193
1160
  #
1194
- # * `ip` - Targets are specified by IP address. You can specify IP
1161
+ # * `ip` - Register targets by IP address. You can specify IP
1195
1162
  # addresses from the subnets of the virtual private cloud (VPC) for
1196
1163
  # the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12,
1197
1164
  # and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You
1198
1165
  # can't specify publicly routable IP addresses.
1199
1166
  #
1200
- # * `lambda` - The target groups contains a single Lambda function.
1167
+ # * `lambda` - Register a single Lambda function as a target.
1201
1168
  # @return [String]
1202
1169
  #
1203
1170
  # @!attribute [rw] tags
@@ -1209,6 +1176,7 @@ module Aws::ElasticLoadBalancingV2
1209
1176
  class CreateTargetGroupInput < Struct.new(
1210
1177
  :name,
1211
1178
  :protocol,
1179
+ :protocol_version,
1212
1180
  :port,
1213
1181
  :vpc_id,
1214
1182
  :health_check_protocol,
@@ -2143,6 +2111,16 @@ module Aws::ElasticLoadBalancingV2
2143
2111
  #
2144
2112
  # * application-load-balancers
2145
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
+ #
2146
2124
  # * listeners-per-application-load-balancer
2147
2125
  #
2148
2126
  # * listeners-per-network-load-balancer
@@ -2161,6 +2139,8 @@ module Aws::ElasticLoadBalancingV2
2161
2139
  #
2162
2140
  # * targets-per-application-load-balancer
2163
2141
  #
2142
+ # * targets-per-availability-zone-per-gateway-load-balancer
2143
+ #
2164
2144
  # * targets-per-availability-zone-per-network-load-balancer
2165
2145
  #
2166
2146
  # * targets-per-network-load-balancer
@@ -2340,12 +2320,17 @@ module Aws::ElasticLoadBalancingV2
2340
2320
  # load balancer.
2341
2321
  # @return [String]
2342
2322
  #
2323
+ # @!attribute [rw] i_pv_6_address
2324
+ # \[Network Load Balancers\] The IPv6 address.
2325
+ # @return [String]
2326
+ #
2343
2327
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerAddress AWS API Documentation
2344
2328
  #
2345
2329
  class LoadBalancerAddress < Struct.new(
2346
2330
  :ip_address,
2347
2331
  :allocation_id,
2348
- :private_i_pv_4_address)
2332
+ :private_i_pv_4_address,
2333
+ :i_pv_6_address)
2349
2334
  SENSITIVE = []
2350
2335
  include Aws::Structure
2351
2336
  end
@@ -2363,6 +2348,14 @@ module Aws::ElasticLoadBalancingV2
2363
2348
  # @!attribute [rw] key
2364
2349
  # The name of the attribute.
2365
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
+ #
2366
2359
  # The following attributes are supported by both Application Load
2367
2360
  # Balancers and Network Load Balancers:
2368
2361
  #
@@ -2378,10 +2371,6 @@ module Aws::ElasticLoadBalancingV2
2378
2371
  # * `access_logs.s3.prefix` - The prefix for the location in the S3
2379
2372
  # bucket for the access logs.
2380
2373
  #
2381
- # * `deletion_protection.enabled` - Indicates whether deletion
2382
- # protection is enabled. The value is `true` or `false`. The default
2383
- # is `false`.
2384
- #
2385
2374
  # The following attributes are supported by only Application Load
2386
2375
  # Balancers:
2387
2376
  #
@@ -2404,8 +2393,13 @@ module Aws::ElasticLoadBalancingV2
2404
2393
  # Balancing requires that message header names contain only
2405
2394
  # alphanumeric characters and hyphens.
2406
2395
  #
2407
- # The following attributes are supported by only Network Load
2408
- # 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:
2409
2403
  #
2410
2404
  # * `load_balancing.cross_zone.enabled` - Indicates whether cross-zone
2411
2405
  # load balancing is enabled. The value is `true` or `false`. The
@@ -2438,8 +2432,10 @@ module Aws::ElasticLoadBalancingV2
2438
2432
  # @!attribute [rw] code
2439
2433
  # The state code. The initial state of the load balancer is
2440
2434
  # `provisioning`. After the load balancer is fully set up and ready to
2441
- # route traffic, its state is `active`. If the load balancer could not
2442
- # 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`.
2443
2439
  # @return [String]
2444
2440
  #
2445
2441
  # @!attribute [rw] reason
@@ -2455,31 +2451,39 @@ module Aws::ElasticLoadBalancingV2
2455
2451
  include Aws::Structure
2456
2452
  end
2457
2453
 
2458
- # Information to use when checking for a successful response from a
2459
- # target.
2454
+ # The codes to use when checking for a successful response from a
2455
+ # target. If the protocol version is gRPC, these are gRPC codes.
2456
+ # Otherwise, these are HTTP codes.
2460
2457
  #
2461
2458
  # @note When making an API call, you may pass Matcher
2462
2459
  # data as a hash:
2463
2460
  #
2464
2461
  # {
2465
- # http_code: "HttpCode", # required
2462
+ # http_code: "HttpCode",
2463
+ # grpc_code: "GrpcCode",
2466
2464
  # }
2467
2465
  #
2468
2466
  # @!attribute [rw] http_code
2469
- # The HTTP codes.
2470
- #
2471
2467
  # For Application Load Balancers, you can specify values between 200
2472
2468
  # and 499, and the default value is 200. You can specify multiple
2473
2469
  # values (for example, "200,202") or a range of values (for example,
2474
2470
  # "200-299").
2475
2471
  #
2476
- # For Network Load Balancers, this is 200–399.
2472
+ # For Network Load Balancers and Gateway Load Balancers, this must be
2473
+ # "200–399".
2474
+ # @return [String]
2475
+ #
2476
+ # @!attribute [rw] grpc_code
2477
+ # You can specify values between 0 and 99. You can specify multiple
2478
+ # values (for example, "0,1") or a range of values (for example,
2479
+ # "0-5"). The default value is 12.
2477
2480
  # @return [String]
2478
2481
  #
2479
2482
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Matcher AWS API Documentation
2480
2483
  #
2481
2484
  class Matcher < Struct.new(
2482
- :http_code)
2485
+ :http_code,
2486
+ :grpc_code)
2483
2487
  SENSITIVE = []
2484
2488
  include Aws::Structure
2485
2489
  end
@@ -2490,7 +2494,7 @@ module Aws::ElasticLoadBalancingV2
2490
2494
  # {
2491
2495
  # listener_arn: "ListenerArn", # required
2492
2496
  # port: 1,
2493
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
2497
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
2494
2498
  # ssl_policy: "SslPolicyName",
2495
2499
  # certificates: [
2496
2500
  # {
@@ -2566,42 +2570,26 @@ module Aws::ElasticLoadBalancingV2
2566
2570
  # @return [String]
2567
2571
  #
2568
2572
  # @!attribute [rw] port
2569
- # 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.
2570
2575
  # @return [Integer]
2571
2576
  #
2572
2577
  # @!attribute [rw] protocol
2573
2578
  # The protocol for connections from clients to the load balancer.
2574
2579
  # Application Load Balancers support the HTTP and HTTPS protocols.
2575
2580
  # Network Load Balancers support the TCP, TLS, UDP, and TCP\_UDP
2576
- # 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.
2577
2584
  # @return [String]
2578
2585
  #
2579
2586
  # @!attribute [rw] ssl_policy
2580
2587
  # \[HTTPS and TLS listeners\] The security policy that defines which
2581
- # protocols and ciphers are supported. The following are the possible
2582
- # values:
2583
- #
2584
- # * `ELBSecurityPolicy-2016-08`
2585
- #
2586
- # * `ELBSecurityPolicy-TLS-1-0-2015-04`
2587
- #
2588
- # * `ELBSecurityPolicy-TLS-1-1-2017-01`
2589
- #
2590
- # * `ELBSecurityPolicy-TLS-1-2-2017-01`
2591
- #
2592
- # * `ELBSecurityPolicy-TLS-1-2-Ext-2018-06`
2593
- #
2594
- # * `ELBSecurityPolicy-FS-2018-06`
2595
- #
2596
- # * `ELBSecurityPolicy-FS-1-1-2019-08`
2597
- #
2598
- # * `ELBSecurityPolicy-FS-1-2-2019-08`
2599
- #
2600
- # * `ELBSecurityPolicy-FS-1-2-Res-2019-08`
2588
+ # protocols and ciphers are supported.
2601
2589
  #
2602
- # For more information, see [Security Policies][1] in the *Application
2603
- # Load Balancers Guide* and [Security Policies][2] in the *Network
2604
- # 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*.
2605
2593
  #
2606
2594
  #
2607
2595
  #
@@ -2613,33 +2601,10 @@ module Aws::ElasticLoadBalancingV2
2613
2601
  # \[HTTPS and TLS listeners\] The default certificate for the
2614
2602
  # listener. You must provide exactly one certificate. Set
2615
2603
  # `CertificateArn` to the certificate ARN but do not set `IsDefault`.
2616
- #
2617
- # To create a certificate list, use AddListenerCertificates.
2618
2604
  # @return [Array<Types::Certificate>]
2619
2605
  #
2620
2606
  # @!attribute [rw] default_actions
2621
- # The actions for the default rule. The rule must include one forward
2622
- # action or one or more fixed-response actions.
2623
- #
2624
- # If the action type is `forward`, you specify one or more target
2625
- # groups. The protocol of the target group must be HTTP or HTTPS for
2626
- # an Application Load Balancer. The protocol of the target group must
2627
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
2628
- #
2629
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
2630
- # authenticate users through an identity provider that is OpenID
2631
- # Connect (OIDC) compliant.
2632
- #
2633
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
2634
- # you authenticate users through the user pools supported by Amazon
2635
- # Cognito.
2636
- #
2637
- # \[Application Load Balancer\] If the action type is `redirect`, you
2638
- # redirect specified client requests from one URL to another.
2639
- #
2640
- # \[Application Load Balancer\] If the action type is
2641
- # `fixed-response`, you drop specified client requests and return a
2642
- # custom HTTP response.
2607
+ # The actions for the default rule.
2643
2608
  # @return [Array<Types::Action>]
2644
2609
  #
2645
2610
  # @!attribute [rw] alpn_policy
@@ -2657,7 +2622,7 @@ module Aws::ElasticLoadBalancingV2
2657
2622
  #
2658
2623
  # * `None`
2659
2624
  #
2660
- # For more information, see [ALPN Policies][1] in the *Network Load
2625
+ # For more information, see [ALPN policies][1] in the *Network Load
2661
2626
  # Balancers Guide*.
2662
2627
  #
2663
2628
  #
@@ -2835,36 +2800,11 @@ module Aws::ElasticLoadBalancingV2
2835
2800
  # @return [String]
2836
2801
  #
2837
2802
  # @!attribute [rw] conditions
2838
- # The conditions. Each rule can include zero or one of the following
2839
- # conditions: `http-request-method`, `host-header`, `path-pattern`,
2840
- # and `source-ip`, and zero or more of the following conditions:
2841
- # `http-header` and `query-string`.
2803
+ # The conditions.
2842
2804
  # @return [Array<Types::RuleCondition>]
2843
2805
  #
2844
2806
  # @!attribute [rw] actions
2845
- # The actions. Each rule must include exactly one of the following
2846
- # types of actions: `forward`, `fixed-response`, or `redirect`, and it
2847
- # must be the last action to be performed.
2848
- #
2849
- # If the action type is `forward`, you specify one or more target
2850
- # groups. The protocol of the target group must be HTTP or HTTPS for
2851
- # an Application Load Balancer. The protocol of the target group must
2852
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
2853
- #
2854
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
2855
- # authenticate users through an identity provider that is OpenID
2856
- # Connect (OIDC) compliant.
2857
- #
2858
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
2859
- # you authenticate users through the user pools supported by Amazon
2860
- # Cognito.
2861
- #
2862
- # \[Application Load Balancer\] If the action type is `redirect`, you
2863
- # redirect specified client requests from one URL to another.
2864
- #
2865
- # \[Application Load Balancer\] If the action type is
2866
- # `fixed-response`, you drop specified client requests and return a
2867
- # custom HTTP response.
2807
+ # The actions.
2868
2808
  # @return [Array<Types::Action>]
2869
2809
  #
2870
2810
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRuleInput AWS API Documentation
@@ -2936,7 +2876,7 @@ module Aws::ElasticLoadBalancingV2
2936
2876
  #
2937
2877
  # {
2938
2878
  # target_group_arn: "TargetGroupArn", # required
2939
- # 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
2940
2880
  # health_check_port: "HealthCheckPort",
2941
2881
  # health_check_path: "Path",
2942
2882
  # health_check_enabled: false,
@@ -2945,7 +2885,8 @@ module Aws::ElasticLoadBalancingV2
2945
2885
  # healthy_threshold_count: 1,
2946
2886
  # unhealthy_threshold_count: 1,
2947
2887
  # matcher: {
2948
- # http_code: "HttpCode", # required
2888
+ # http_code: "HttpCode",
2889
+ # grpc_code: "GrpcCode",
2949
2890
  # },
2950
2891
  # }
2951
2892
  #
@@ -2956,8 +2897,9 @@ module Aws::ElasticLoadBalancingV2
2956
2897
  # @!attribute [rw] health_check_protocol
2957
2898
  # The protocol the load balancer uses when performing health checks on
2958
2899
  # targets. The TCP protocol is supported for health checks only if the
2959
- # protocol of the target group is TCP, TLS, UDP, or TCP\_UDP. The TLS,
2960
- # 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.
2961
2903
  #
2962
2904
  # With Network Load Balancers, you can't modify this setting.
2963
2905
  # @return [String]
@@ -2968,8 +2910,14 @@ module Aws::ElasticLoadBalancingV2
2968
2910
  # @return [String]
2969
2911
  #
2970
2912
  # @!attribute [rw] health_check_path
2971
- # \[HTTP/HTTPS health checks\] The ping path that is the destination
2972
- # for the health check request.
2913
+ # \[HTTP/HTTPS health checks\] The destination for health checks on
2914
+ # the targets.
2915
+ #
2916
+ # \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /.
2917
+ #
2918
+ # \[GRPC protocol version\] The path of a custom health check method
2919
+ # with the format /package.service/method. The default is
2920
+ # /AWS.ALB/healthcheck.
2973
2921
  # @return [String]
2974
2922
  #
2975
2923
  # @!attribute [rw] health_check_enabled
@@ -2978,9 +2926,8 @@ module Aws::ElasticLoadBalancingV2
2978
2926
  #
2979
2927
  # @!attribute [rw] health_check_interval_seconds
2980
2928
  # The approximate amount of time, in seconds, between health checks of
2981
- # an individual target. For Application Load Balancers, the range is 5
2982
- # to 300 seconds. For Network Load Balancers, the supported values are
2983
- # 10 or 30 seconds.
2929
+ # an individual target. For TCP health checks, the supported values
2930
+ # are 10 or 30 seconds.
2984
2931
  #
2985
2932
  # With Network Load Balancers, you can't modify this setting.
2986
2933
  # @return [Integer]
@@ -2999,16 +2946,14 @@ module Aws::ElasticLoadBalancingV2
2999
2946
  #
3000
2947
  # @!attribute [rw] unhealthy_threshold_count
3001
2948
  # The number of consecutive health check failures required before
3002
- # considering the target unhealthy. For Network Load Balancers, this
3003
- # value must be the same as the healthy threshold count.
2949
+ # considering the target unhealthy. For target groups with a protocol
2950
+ # of TCP or TLS, this value must be the same as the healthy threshold
2951
+ # count.
3004
2952
  # @return [Integer]
3005
2953
  #
3006
2954
  # @!attribute [rw] matcher
3007
- # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for
3008
- # a successful response from a target. The possible values are from
3009
- # 200 to 499. You can specify multiple values (for example,
3010
- # "200,202") or a range of values (for example, "200-299"). The
3011
- # default is 200.
2955
+ # \[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when
2956
+ # checking for a successful response from a target.
3012
2957
  #
3013
2958
  # With Network Load Balancers, you can't modify this setting.
3014
2959
  # @return [Types::Matcher]
@@ -3252,10 +3197,6 @@ module Aws::ElasticLoadBalancingV2
3252
3197
  #
3253
3198
  # @!attribute [rw] targets
3254
3199
  # The targets.
3255
- #
3256
- # To register a target by instance ID, specify the instance ID. To
3257
- # register a target by IP address, specify the IP address. To register
3258
- # a Lambda function, specify the ARN of the Lambda function.
3259
3200
  # @return [Array<Types::TargetDescription>]
3260
3201
  #
3261
3202
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargetsInput AWS API Documentation
@@ -3573,8 +3514,8 @@ module Aws::ElasticLoadBalancingV2
3573
3514
  # @!attribute [rw] ip_address_type
3574
3515
  # The IP address type. The possible values are `ipv4` (for IPv4
3575
3516
  # addresses) and `dualstack` (for IPv4 and IPv6 addresses). Internal
3576
- # load balancers must use `ipv4`. Network Load Balancers must use
3577
- # `ipv4`.
3517
+ # load balancers must use `ipv4`. You can’t specify `dualstack` for a
3518
+ # load balancer with a UDP or TCP\_UDP listener.
3578
3519
  # @return [String]
3579
3520
  #
3580
3521
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressTypeInput AWS API Documentation
@@ -3682,8 +3623,10 @@ module Aws::ElasticLoadBalancingV2
3682
3623
  # subnet_id: "SubnetId",
3683
3624
  # allocation_id: "AllocationId",
3684
3625
  # private_i_pv_4_address: "PrivateIPv4Address",
3626
+ # i_pv_6_address: "IPv6Address",
3685
3627
  # },
3686
3628
  # ],
3629
+ # ip_address_type: "ipv4", # accepts ipv4, dualstack
3687
3630
  # }
3688
3631
  #
3689
3632
  # @!attribute [rw] load_balancer_arn
@@ -3691,10 +3634,21 @@ module Aws::ElasticLoadBalancingV2
3691
3634
  # @return [String]
3692
3635
  #
3693
3636
  # @!attribute [rw] subnets
3694
- # The IDs of the public subnets. You must specify subnets from at
3695
- # 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
3696
3638
  # Availability Zone. You must specify either subnets or subnet
3697
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.
3698
3652
  # @return [Array<String>]
3699
3653
  #
3700
3654
  # @!attribute [rw] subnet_mappings
@@ -3706,19 +3660,36 @@ module Aws::ElasticLoadBalancingV2
3706
3660
  # least two Availability Zones. You cannot specify Elastic IP
3707
3661
  # addresses for your subnets.
3708
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
+ #
3709
3669
  # \[Network Load Balancers\] You can specify subnets from one or more
3710
- # Availability Zones. If you need static IP addresses for your
3711
- # internet-facing load balancer, you can specify one Elastic IP
3712
- # address per subnet. For internal load balancers, you can specify one
3713
- # 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.
3714
3676
  # @return [Array<Types::SubnetMapping>]
3715
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
+ #
3716
3686
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsInput AWS API Documentation
3717
3687
  #
3718
3688
  class SetSubnetsInput < Struct.new(
3719
3689
  :load_balancer_arn,
3720
3690
  :subnets,
3721
- :subnet_mappings)
3691
+ :subnet_mappings,
3692
+ :ip_address_type)
3722
3693
  SENSITIVE = []
3723
3694
  include Aws::Structure
3724
3695
  end
@@ -3727,10 +3698,15 @@ module Aws::ElasticLoadBalancingV2
3727
3698
  # Information about the subnets.
3728
3699
  # @return [Array<Types::AvailabilityZone>]
3729
3700
  #
3701
+ # @!attribute [rw] ip_address_type
3702
+ # \[Network Load Balancers\] The IP address type.
3703
+ # @return [String]
3704
+ #
3730
3705
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsOutput AWS API Documentation
3731
3706
  #
3732
3707
  class SetSubnetsOutput < Struct.new(
3733
- :availability_zones)
3708
+ :availability_zones,
3709
+ :ip_address_type)
3734
3710
  SENSITIVE = []
3735
3711
  include Aws::Structure
3736
3712
  end
@@ -3801,6 +3777,7 @@ module Aws::ElasticLoadBalancingV2
3801
3777
  # subnet_id: "SubnetId",
3802
3778
  # allocation_id: "AllocationId",
3803
3779
  # private_i_pv_4_address: "PrivateIPv4Address",
3780
+ # i_pv_6_address: "IPv6Address",
3804
3781
  # }
3805
3782
  #
3806
3783
  # @!attribute [rw] subnet_id
@@ -3817,12 +3794,17 @@ module Aws::ElasticLoadBalancingV2
3817
3794
  # load balancer.
3818
3795
  # @return [String]
3819
3796
  #
3797
+ # @!attribute [rw] i_pv_6_address
3798
+ # \[Network Load Balancers\] The IPv6 address.
3799
+ # @return [String]
3800
+ #
3820
3801
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SubnetMapping AWS API Documentation
3821
3802
  #
3822
3803
  class SubnetMapping < Struct.new(
3823
3804
  :subnet_id,
3824
3805
  :allocation_id,
3825
- :private_i_pv_4_address)
3806
+ :private_i_pv_4_address,
3807
+ :i_pv_6_address)
3826
3808
  SENSITIVE = []
3827
3809
  include Aws::Structure
3828
3810
  end
@@ -3898,8 +3880,9 @@ module Aws::ElasticLoadBalancingV2
3898
3880
  # @return [String]
3899
3881
  #
3900
3882
  # @!attribute [rw] port
3901
- # The port on which the target is listening. Not used if the target is
3902
- # 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.
3903
3886
  # @return [Integer]
3904
3887
  #
3905
3888
  # @!attribute [rw] availability_zone
@@ -3958,7 +3941,8 @@ module Aws::ElasticLoadBalancingV2
3958
3941
  # @return [String]
3959
3942
  #
3960
3943
  # @!attribute [rw] health_check_protocol
3961
- # 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.
3962
3946
  # @return [String]
3963
3947
  #
3964
3948
  # @!attribute [rw] health_check_port
@@ -3990,12 +3974,12 @@ module Aws::ElasticLoadBalancingV2
3990
3974
  # @return [Integer]
3991
3975
  #
3992
3976
  # @!attribute [rw] health_check_path
3993
- # The destination for the health check request.
3977
+ # The destination for health checks on the targets.
3994
3978
  # @return [String]
3995
3979
  #
3996
3980
  # @!attribute [rw] matcher
3997
- # The HTTP codes to use when checking for a successful response from a
3998
- # target.
3981
+ # The HTTP or gRPC codes to use when checking for a successful
3982
+ # response from a target.
3999
3983
  # @return [Types::Matcher]
4000
3984
  #
4001
3985
  # @!attribute [rw] load_balancer_arns
@@ -4005,9 +3989,14 @@ module Aws::ElasticLoadBalancingV2
4005
3989
  #
4006
3990
  # @!attribute [rw] target_type
4007
3991
  # The type of target that you must specify when registering targets
4008
- # with this target group. The possible values are `instance` (targets
4009
- # are specified by instance ID) or `ip` (targets are specified by IP
4010
- # 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).
3995
+ # @return [String]
3996
+ #
3997
+ # @!attribute [rw] protocol_version
3998
+ # \[HTTP/HTTPS protocol\] The protocol version. The possible values
3999
+ # are `GRPC`, `HTTP1`, and `HTTP2`.
4011
4000
  # @return [String]
4012
4001
  #
4013
4002
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetGroup AWS API Documentation
@@ -4028,7 +4017,8 @@ module Aws::ElasticLoadBalancingV2
4028
4017
  :health_check_path,
4029
4018
  :matcher,
4030
4019
  :load_balancer_arns,
4031
- :target_type)
4020
+ :target_type,
4021
+ :protocol_version)
4032
4022
  SENSITIVE = []
4033
4023
  include Aws::Structure
4034
4024
  end
@@ -4053,8 +4043,7 @@ module Aws::ElasticLoadBalancingV2
4053
4043
  # @!attribute [rw] key
4054
4044
  # The name of the attribute.
4055
4045
  #
4056
- # The following attributes are supported by both Application Load
4057
- # Balancers and Network Load Balancers:
4046
+ # The following attribute is supported by all load balancers:
4058
4047
  #
4059
4048
  # * `deregistration_delay.timeout_seconds` - The amount of time, in
4060
4049
  # seconds, for Elastic Load Balancing to wait before changing the
@@ -4062,6 +4051,11 @@ module Aws::ElasticLoadBalancingV2
4062
4051
  # range is 0-3600 seconds. The default value is 300 seconds. If the
4063
4052
  # target is a Lambda function, this attribute is not supported.
4064
4053
  #
4054
+ # ^
4055
+ #
4056
+ # The following attributes are supported by both Application Load
4057
+ # Balancers and Network Load Balancers:
4058
+ #
4065
4059
  # * `stickiness.enabled` - Indicates whether sticky sessions are
4066
4060
  # enabled. The value is `true` or `false`. The default is `false`.
4067
4061
  #
@@ -4104,13 +4098,23 @@ module Aws::ElasticLoadBalancingV2
4104
4098
  #
4105
4099
  # ^
4106
4100
  #
4107
- # The following attribute is supported only by Network Load Balancers:
4101
+ # The following attributes are supported only by Network Load
4102
+ # Balancers:
4103
+ #
4104
+ # * `deregistration_delay.connection_termination.enabled` - Indicates
4105
+ # whether the load balancer terminates connections at the end of the
4106
+ # deregistration timeout. The value is `true` or `false`. The
4107
+ # default is `false`.
4108
+ #
4109
+ # * `preserve_client_ip.enabled` - Indicates whether client IP
4110
+ # preservation is enabled. The value is `true` or `false`. The
4111
+ # default is disabled if the target group type is IP address and the
4112
+ # target group protocol is TCP or TLS. Otherwise, the default is
4113
+ # enabled.
4108
4114
  #
4109
4115
  # * `proxy_protocol_v2.enabled` - Indicates whether Proxy Protocol
4110
4116
  # version 2 is enabled. The value is `true` or `false`. The default
4111
4117
  # is `false`.
4112
- #
4113
- # ^
4114
4118
  # @return [String]
4115
4119
  #
4116
4120
  # @!attribute [rw] value
@@ -4214,10 +4218,11 @@ module Aws::ElasticLoadBalancingV2
4214
4218
  # the following values:
4215
4219
  #
4216
4220
  # * `Target.ResponseCodeMismatch` - The health checks did not return
4217
- # an expected HTTP code. Applies only to Application Load Balancers.
4221
+ # an expected HTTP code. Applies only to Application Load Balancers
4222
+ # and Gateway Load Balancers.
4218
4223
  #
4219
4224
  # * `Target.Timeout` - The health check requests timed out. Applies
4220
- # only to Application Load Balancers.
4225
+ # only to Application Load Balancers and Gateway Load Balancers.
4221
4226
  #
4222
4227
  # * `Target.FailedHealthChecks` - The load balancer received an error
4223
4228
  # while establishing a connection to the target or the target