aws-sdk-elasticloadbalancingv2 1.53.0 → 1.58.0

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