aws-sdk-elasticloadbalancingv2 1.52.0 → 1.57.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,12 +380,13 @@ 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"))
385
388
  CreateListenerInput.add_member(:alpn_policy, Shapes::ShapeRef.new(shape: AlpnPolicyName, location_name: "AlpnPolicy"))
389
+ CreateListenerInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
386
390
  CreateListenerInput.struct_class = Types::CreateListenerInput
387
391
 
388
392
  CreateListenerOutput.add_member(:listeners, Shapes::ShapeRef.new(shape: Listeners, location_name: "Listeners"))
@@ -406,6 +410,7 @@ module Aws::ElasticLoadBalancingV2
406
410
  CreateRuleInput.add_member(:conditions, Shapes::ShapeRef.new(shape: RuleConditionList, required: true, location_name: "Conditions"))
407
411
  CreateRuleInput.add_member(:priority, Shapes::ShapeRef.new(shape: RulePriority, required: true, location_name: "Priority"))
408
412
  CreateRuleInput.add_member(:actions, Shapes::ShapeRef.new(shape: Actions, required: true, location_name: "Actions"))
413
+ CreateRuleInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
409
414
  CreateRuleInput.struct_class = Types::CreateRuleInput
410
415
 
411
416
  CreateRuleOutput.add_member(:rules, Shapes::ShapeRef.new(shape: Rules, location_name: "Rules"))
@@ -413,6 +418,7 @@ module Aws::ElasticLoadBalancingV2
413
418
 
414
419
  CreateTargetGroupInput.add_member(:name, Shapes::ShapeRef.new(shape: TargetGroupName, required: true, location_name: "Name"))
415
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"))
416
422
  CreateTargetGroupInput.add_member(:port, Shapes::ShapeRef.new(shape: Port, location_name: "Port"))
417
423
  CreateTargetGroupInput.add_member(:vpc_id, Shapes::ShapeRef.new(shape: VpcId, location_name: "VpcId"))
418
424
  CreateTargetGroupInput.add_member(:health_check_protocol, Shapes::ShapeRef.new(shape: ProtocolEnum, location_name: "HealthCheckProtocol"))
@@ -425,6 +431,7 @@ module Aws::ElasticLoadBalancingV2
425
431
  CreateTargetGroupInput.add_member(:unhealthy_threshold_count, Shapes::ShapeRef.new(shape: HealthCheckThresholdCount, location_name: "UnhealthyThresholdCount"))
426
432
  CreateTargetGroupInput.add_member(:matcher, Shapes::ShapeRef.new(shape: Matcher, location_name: "Matcher"))
427
433
  CreateTargetGroupInput.add_member(:target_type, Shapes::ShapeRef.new(shape: TargetTypeEnum, location_name: "TargetType"))
434
+ CreateTargetGroupInput.add_member(:tags, Shapes::ShapeRef.new(shape: TagList, location_name: "Tags"))
428
435
  CreateTargetGroupInput.struct_class = Types::CreateTargetGroupInput
429
436
 
430
437
  CreateTargetGroupOutput.add_member(:target_groups, Shapes::ShapeRef.new(shape: TargetGroups, location_name: "TargetGroups"))
@@ -633,6 +640,7 @@ module Aws::ElasticLoadBalancingV2
633
640
  LoadBalancerAddress.add_member(:ip_address, Shapes::ShapeRef.new(shape: IpAddress, location_name: "IpAddress"))
634
641
  LoadBalancerAddress.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
635
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"))
636
644
  LoadBalancerAddress.struct_class = Types::LoadBalancerAddress
637
645
 
638
646
  LoadBalancerAddresses.member = Shapes::ShapeRef.new(shape: LoadBalancerAddress)
@@ -655,7 +663,8 @@ module Aws::ElasticLoadBalancingV2
655
663
 
656
664
  LoadBalancers.member = Shapes::ShapeRef.new(shape: LoadBalancer)
657
665
 
658
- 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"))
659
668
  Matcher.struct_class = Types::Matcher
660
669
 
661
670
  ModifyListenerInput.add_member(:listener_arn, Shapes::ShapeRef.new(shape: ListenerArn, required: true, location_name: "ListenerArn"))
@@ -811,9 +820,11 @@ module Aws::ElasticLoadBalancingV2
811
820
  SetSubnetsInput.add_member(:load_balancer_arn, Shapes::ShapeRef.new(shape: LoadBalancerArn, required: true, location_name: "LoadBalancerArn"))
812
821
  SetSubnetsInput.add_member(:subnets, Shapes::ShapeRef.new(shape: Subnets, location_name: "Subnets"))
813
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"))
814
824
  SetSubnetsInput.struct_class = Types::SetSubnetsInput
815
825
 
816
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"))
817
828
  SetSubnetsOutput.struct_class = Types::SetSubnetsOutput
818
829
 
819
830
  SourceIpConditionConfig.add_member(:values, Shapes::ShapeRef.new(shape: ListOfString, location_name: "Values"))
@@ -833,6 +844,7 @@ module Aws::ElasticLoadBalancingV2
833
844
  SubnetMapping.add_member(:subnet_id, Shapes::ShapeRef.new(shape: SubnetId, location_name: "SubnetId"))
834
845
  SubnetMapping.add_member(:allocation_id, Shapes::ShapeRef.new(shape: AllocationId, location_name: "AllocationId"))
835
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"))
836
848
  SubnetMapping.struct_class = Types::SubnetMapping
837
849
 
838
850
  SubnetMappings.member = Shapes::ShapeRef.new(shape: SubnetMapping)
@@ -878,6 +890,7 @@ module Aws::ElasticLoadBalancingV2
878
890
  TargetGroup.add_member(:matcher, Shapes::ShapeRef.new(shape: Matcher, location_name: "Matcher"))
879
891
  TargetGroup.add_member(:load_balancer_arns, Shapes::ShapeRef.new(shape: LoadBalancerArns, location_name: "LoadBalancerArns"))
880
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"))
881
894
  TargetGroup.struct_class = Types::TargetGroup
882
895
 
883
896
  TargetGroupArns.member = Shapes::ShapeRef.new(shape: TargetGroupArn)
@@ -1004,6 +1017,7 @@ module Aws::ElasticLoadBalancingV2
1004
1017
  o.errors << Shapes::ShapeRef.new(shape: InvalidLoadBalancerActionException)
1005
1018
  o.errors << Shapes::ShapeRef.new(shape: TooManyUniqueTargetGroupsPerLoadBalancerException)
1006
1019
  o.errors << Shapes::ShapeRef.new(shape: ALPNPolicyNotSupportedException)
1020
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
1007
1021
  end)
1008
1022
 
1009
1023
  api.add_operation(:create_load_balancer, Seahorse::Model::Operation.new.tap do |o|
@@ -1047,6 +1061,7 @@ module Aws::ElasticLoadBalancingV2
1047
1061
  o.errors << Shapes::ShapeRef.new(shape: TooManyActionsException)
1048
1062
  o.errors << Shapes::ShapeRef.new(shape: InvalidLoadBalancerActionException)
1049
1063
  o.errors << Shapes::ShapeRef.new(shape: TooManyUniqueTargetGroupsPerLoadBalancerException)
1064
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
1050
1065
  end)
1051
1066
 
1052
1067
  api.add_operation(:create_target_group, Seahorse::Model::Operation.new.tap do |o|
@@ -1058,6 +1073,7 @@ module Aws::ElasticLoadBalancingV2
1058
1073
  o.errors << Shapes::ShapeRef.new(shape: DuplicateTargetGroupNameException)
1059
1074
  o.errors << Shapes::ShapeRef.new(shape: TooManyTargetGroupsException)
1060
1075
  o.errors << Shapes::ShapeRef.new(shape: InvalidConfigurationRequestException)
1076
+ o.errors << Shapes::ShapeRef.new(shape: TooManyTagsException)
1061
1077
  end)
1062
1078
 
1063
1079
  api.add_operation(:delete_listener, Seahorse::Model::Operation.new.tap do |o|
@@ -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
  # {
@@ -597,6 +597,12 @@ module Aws::ElasticLoadBalancingV2
597
597
  # },
598
598
  # ],
599
599
  # alpn_policy: ["AlpnPolicyValue"],
600
+ # tags: [
601
+ # {
602
+ # key: "TagKey", # required
603
+ # value: "TagValue",
604
+ # },
605
+ # ],
600
606
  # }
601
607
  #
602
608
  # @!attribute [rw] load_balancer_arn
@@ -607,38 +613,22 @@ module Aws::ElasticLoadBalancingV2
607
613
  # The protocol for connections from clients to the load balancer. For
608
614
  # Application Load Balancers, the supported protocols are HTTP and
609
615
  # HTTPS. For Network Load Balancers, the supported protocols are TCP,
610
- # 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.
611
619
  # @return [String]
612
620
  #
613
621
  # @!attribute [rw] port
614
- # 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.
615
624
  # @return [Integer]
616
625
  #
617
626
  # @!attribute [rw] ssl_policy
618
627
  # \[HTTPS and TLS listeners\] The security policy that defines which
619
- # protocols and ciphers are supported. The following are the possible
620
- # values:
621
- #
622
- # * `ELBSecurityPolicy-2016-08`
623
- #
624
- # * `ELBSecurityPolicy-TLS-1-0-2015-04`
625
- #
626
- # * `ELBSecurityPolicy-TLS-1-1-2017-01`
627
- #
628
- # * `ELBSecurityPolicy-TLS-1-2-2017-01`
629
- #
630
- # * `ELBSecurityPolicy-TLS-1-2-Ext-2018-06`
631
- #
632
- # * `ELBSecurityPolicy-FS-2018-06`
633
- #
634
- # * `ELBSecurityPolicy-FS-1-1-2019-08`
635
- #
636
- # * `ELBSecurityPolicy-FS-1-2-2019-08`
637
- #
638
- # * `ELBSecurityPolicy-FS-1-2-Res-2019-08`
628
+ # protocols and ciphers are supported.
639
629
  #
640
- # For more information, see [Security Policies][1] in the *Application
641
- # 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
642
632
  # Load Balancers Guide*.
643
633
  #
644
634
  #
@@ -651,34 +641,10 @@ module Aws::ElasticLoadBalancingV2
651
641
  # \[HTTPS and TLS listeners\] The default certificate for the
652
642
  # listener. You must provide exactly one certificate. Set
653
643
  # `CertificateArn` to the certificate ARN but do not set `IsDefault`.
654
- #
655
- # To create a certificate list for the listener, use
656
- # AddListenerCertificates.
657
644
  # @return [Array<Types::Certificate>]
658
645
  #
659
646
  # @!attribute [rw] default_actions
660
- # The actions for the default rule. The rule must include one forward
661
- # action or one or more fixed-response actions.
662
- #
663
- # If the action type is `forward`, you specify one or more target
664
- # groups. The protocol of the target group must be HTTP or HTTPS for
665
- # an Application Load Balancer. The protocol of the target group must
666
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
667
- #
668
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
669
- # authenticate users through an identity provider that is OpenID
670
- # Connect (OIDC) compliant.
671
- #
672
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
673
- # you authenticate users through the user pools supported by Amazon
674
- # Cognito.
675
- #
676
- # \[Application Load Balancer\] If the action type is `redirect`, you
677
- # redirect specified client requests from one URL to another.
678
- #
679
- # \[Application Load Balancer\] If the action type is
680
- # `fixed-response`, you drop specified client requests and return a
681
- # custom HTTP response.
647
+ # The actions for the default rule.
682
648
  # @return [Array<Types::Action>]
683
649
  #
684
650
  # @!attribute [rw] alpn_policy
@@ -696,7 +662,7 @@ module Aws::ElasticLoadBalancingV2
696
662
  #
697
663
  # * `None`
698
664
  #
699
- # For more information, see [ALPN Policies][1] in the *Network Load
665
+ # For more information, see [ALPN policies][1] in the *Network Load
700
666
  # Balancers Guide*.
701
667
  #
702
668
  #
@@ -704,6 +670,10 @@ module Aws::ElasticLoadBalancingV2
704
670
  # [1]: https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-tls-listener.html#alpn-policies
705
671
  # @return [Array<String>]
706
672
  #
673
+ # @!attribute [rw] tags
674
+ # The tags to assign to the listener.
675
+ # @return [Array<Types::Tag>]
676
+ #
707
677
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListenerInput AWS API Documentation
708
678
  #
709
679
  class CreateListenerInput < Struct.new(
@@ -713,7 +683,8 @@ module Aws::ElasticLoadBalancingV2
713
683
  :ssl_policy,
714
684
  :certificates,
715
685
  :default_actions,
716
- :alpn_policy)
686
+ :alpn_policy,
687
+ :tags)
717
688
  SENSITIVE = []
718
689
  include Aws::Structure
719
690
  end
@@ -741,6 +712,7 @@ module Aws::ElasticLoadBalancingV2
741
712
  # subnet_id: "SubnetId",
742
713
  # allocation_id: "AllocationId",
743
714
  # private_i_pv_4_address: "PrivateIPv4Address",
715
+ # i_pv_6_address: "IPv6Address",
744
716
  # },
745
717
  # ],
746
718
  # security_groups: ["SecurityGroupId"],
@@ -751,7 +723,7 @@ module Aws::ElasticLoadBalancingV2
751
723
  # value: "TagValue",
752
724
  # },
753
725
  # ],
754
- # type: "application", # accepts application, network
726
+ # type: "application", # accepts application, network, gateway
755
727
  # ip_address_type: "ipv4", # accepts ipv4, dualstack
756
728
  # customer_owned_ipv_4_pool: "CustomerOwnedIpv4Pool",
757
729
  # }
@@ -781,6 +753,9 @@ module Aws::ElasticLoadBalancingV2
781
753
  #
782
754
  # \[Network Load Balancers\] You can specify subnets from one or more
783
755
  # Availability Zones.
756
+ #
757
+ # \[Gateway Load Balancers\] You can specify subnets from one or more
758
+ # Availability Zones.
784
759
  # @return [Array<String>]
785
760
  #
786
761
  # @!attribute [rw] subnet_mappings
@@ -802,7 +777,13 @@ module Aws::ElasticLoadBalancingV2
802
777
  # Availability Zones. You can specify one Elastic IP address per
803
778
  # subnet if you need static IP addresses for your internet-facing load
804
779
  # balancer. For internal load balancers, you can specify one private
805
- # 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.
806
787
  # @return [Array<Types::SubnetMapping>]
807
788
  #
808
789
  # @!attribute [rw] security_groups
@@ -824,10 +805,12 @@ module Aws::ElasticLoadBalancingV2
824
805
  # access to the VPC for the load balancer.
825
806
  #
826
807
  # The default is an Internet-facing load balancer.
808
+ #
809
+ # You cannot specify a scheme for a Gateway Load Balancer.
827
810
  # @return [String]
828
811
  #
829
812
  # @!attribute [rw] tags
830
- # One or more tags to assign to the load balancer.
813
+ # The tags to assign to the load balancer.
831
814
  # @return [Array<Types::Tag>]
832
815
  #
833
816
  # @!attribute [rw] type
@@ -835,10 +818,10 @@ module Aws::ElasticLoadBalancingV2
835
818
  # @return [String]
836
819
  #
837
820
  # @!attribute [rw] ip_address_type
838
- # \[Application Load Balancers\] The type of IP addresses used by the
839
- # subnets for your load balancer. The possible values are `ipv4` (for
840
- # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses).
841
- # 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`.
842
825
  # @return [String]
843
826
  #
844
827
  # @!attribute [rw] customer_owned_ipv_4_pool
@@ -970,6 +953,12 @@ module Aws::ElasticLoadBalancingV2
970
953
  # },
971
954
  # },
972
955
  # ],
956
+ # tags: [
957
+ # {
958
+ # key: "TagKey", # required
959
+ # value: "TagValue",
960
+ # },
961
+ # ],
973
962
  # }
974
963
  #
975
964
  # @!attribute [rw] listener_arn
@@ -977,11 +966,7 @@ module Aws::ElasticLoadBalancingV2
977
966
  # @return [String]
978
967
  #
979
968
  # @!attribute [rw] conditions
980
- # The conditions. Each rule can optionally include up to one of each
981
- # of the following conditions: `http-request-method`, `host-header`,
982
- # `path-pattern`, and `source-ip`. Each rule can also optionally
983
- # include one or more of each of the following conditions:
984
- # `http-header` and `query-string`.
969
+ # The conditions.
985
970
  # @return [Array<Types::RuleCondition>]
986
971
  #
987
972
  # @!attribute [rw] priority
@@ -990,38 +975,21 @@ module Aws::ElasticLoadBalancingV2
990
975
  # @return [Integer]
991
976
  #
992
977
  # @!attribute [rw] actions
993
- # The actions. Each rule must include exactly one of the following
994
- # types of actions: `forward`, `fixed-response`, or `redirect`, and it
995
- # must be the last action to be performed.
996
- #
997
- # If the action type is `forward`, you specify one or more target
998
- # groups. The protocol of the target group must be HTTP or HTTPS for
999
- # an Application Load Balancer. The protocol of the target group must
1000
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
1001
- #
1002
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
1003
- # authenticate users through an identity provider that is OpenID
1004
- # Connect (OIDC) compliant.
1005
- #
1006
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
1007
- # you authenticate users through the user pools supported by Amazon
1008
- # Cognito.
1009
- #
1010
- # \[Application Load Balancer\] If the action type is `redirect`, you
1011
- # redirect specified client requests from one URL to another.
1012
- #
1013
- # \[Application Load Balancer\] If the action type is
1014
- # `fixed-response`, you drop specified client requests and return a
1015
- # custom HTTP response.
978
+ # The actions.
1016
979
  # @return [Array<Types::Action>]
1017
980
  #
981
+ # @!attribute [rw] tags
982
+ # The tags to assign to the rule.
983
+ # @return [Array<Types::Tag>]
984
+ #
1018
985
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRuleInput AWS API Documentation
1019
986
  #
1020
987
  class CreateRuleInput < Struct.new(
1021
988
  :listener_arn,
1022
989
  :conditions,
1023
990
  :priority,
1024
- :actions)
991
+ :actions,
992
+ :tags)
1025
993
  SENSITIVE = []
1026
994
  include Aws::Structure
1027
995
  end
@@ -1043,10 +1011,11 @@ module Aws::ElasticLoadBalancingV2
1043
1011
  #
1044
1012
  # {
1045
1013
  # name: "TargetGroupName", # required
1046
- # 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",
1047
1016
  # port: 1,
1048
1017
  # vpc_id: "VpcId",
1049
- # 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
1050
1019
  # health_check_port: "HealthCheckPort",
1051
1020
  # health_check_enabled: false,
1052
1021
  # health_check_path: "Path",
@@ -1055,9 +1024,16 @@ module Aws::ElasticLoadBalancingV2
1055
1024
  # healthy_threshold_count: 1,
1056
1025
  # unhealthy_threshold_count: 1,
1057
1026
  # matcher: {
1058
- # http_code: "HttpCode", # required
1027
+ # http_code: "HttpCode",
1028
+ # grpc_code: "GrpcCode",
1059
1029
  # },
1060
1030
  # target_type: "instance", # accepts instance, ip, lambda
1031
+ # tags: [
1032
+ # {
1033
+ # key: "TagKey", # required
1034
+ # value: "TagValue",
1035
+ # },
1036
+ # ],
1061
1037
  # }
1062
1038
  #
1063
1039
  # @!attribute [rw] name
@@ -1072,15 +1048,24 @@ module Aws::ElasticLoadBalancingV2
1072
1048
  # The protocol to use for routing traffic to the targets. For
1073
1049
  # Application Load Balancers, the supported protocols are HTTP and
1074
1050
  # HTTPS. For Network Load Balancers, the supported protocols are TCP,
1075
- # 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
1076
1053
  # TCP\_UDP target group. If the target is a Lambda function, this
1077
1054
  # parameter does not apply.
1078
1055
  # @return [String]
1079
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
+ #
1080
1064
  # @!attribute [rw] port
1081
1065
  # The port on which the targets receive traffic. This port is used
1082
1066
  # unless you specify a port override when registering the target. If
1083
- # 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.
1084
1069
  # @return [Integer]
1085
1070
  #
1086
1071
  # @!attribute [rw] vpc_id
@@ -1092,16 +1077,18 @@ module Aws::ElasticLoadBalancingV2
1092
1077
  # @!attribute [rw] health_check_protocol
1093
1078
  # The protocol the load balancer uses when performing health checks on
1094
1079
  # targets. For Application Load Balancers, the default is HTTP. For
1095
- # Network Load Balancers, the default is TCP. The TCP protocol is
1096
- # supported for health checks only if the protocol of the target group
1097
- # is TCP, TLS, UDP, or TCP\_UDP. The TLS, UDP, and TCP\_UDP protocols
1098
- # 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.
1099
1084
  # @return [String]
1100
1085
  #
1101
1086
  # @!attribute [rw] health_check_port
1102
1087
  # The port the load balancer uses when performing health checks on
1103
- # targets. The default is `traffic-port`, which is the port on which
1104
- # 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.
1105
1092
  # @return [String]
1106
1093
  #
1107
1094
  # @!attribute [rw] health_check_enabled
@@ -1112,47 +1099,55 @@ module Aws::ElasticLoadBalancingV2
1112
1099
  # @return [Boolean]
1113
1100
  #
1114
1101
  # @!attribute [rw] health_check_path
1115
- # \[HTTP/HTTPS health checks\] The ping path that is the destination
1116
- # 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.
1117
1110
  # @return [String]
1118
1111
  #
1119
1112
  # @!attribute [rw] health_check_interval_seconds
1120
1113
  # The approximate amount of time, in seconds, between health checks of
1121
- # an individual target. For HTTP and HTTPS health checks, the range is
1122
- # 5–300 seconds. For TCP health checks, the supported values are 10
1123
- # and 30 seconds. If the target type is `instance` or `ip`, the
1124
- # default is 30 seconds. If the target type is `lambda`, the default
1114
+ # an individual target. For TCP health checks, the supported values
1115
+ # are 10 and 30 seconds. If the target type is `instance` or `ip`, the
1116
+ # default is 30 seconds. If the target group protocol is GENEVE, the
1117
+ # default is 10 seconds. If the target type is `lambda`, the default
1125
1118
  # is 35 seconds.
1126
1119
  # @return [Integer]
1127
1120
  #
1128
1121
  # @!attribute [rw] health_check_timeout_seconds
1129
1122
  # The amount of time, in seconds, during which no response from a
1130
1123
  # target means a failed health check. For target groups with a
1131
- # protocol of HTTP or HTTPS, the default is 5 seconds. For target
1132
- # groups with a protocol of TCP or TLS, this value must be 6 seconds
1133
- # for HTTP health checks and 10 seconds for TCP and HTTPS health
1134
- # 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.
1135
1129
  # @return [Integer]
1136
1130
  #
1137
1131
  # @!attribute [rw] healthy_threshold_count
1138
1132
  # The number of consecutive health checks successes required before
1139
1133
  # considering an unhealthy target healthy. For target groups with a
1140
1134
  # protocol of HTTP or HTTPS, the default is 5. For target groups with
1141
- # a protocol of TCP or TLS, the default is 3. If the target type is
1142
- # `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.
1143
1137
  # @return [Integer]
1144
1138
  #
1145
1139
  # @!attribute [rw] unhealthy_threshold_count
1146
1140
  # The number of consecutive health check failures required before
1147
- # considering a target unhealthy. For target groups with a protocol of
1148
- # HTTP or HTTPS, the default is 2. For target groups with a protocol
1149
- # of TCP or TLS, this value must be the same as the healthy threshold
1150
- # 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.
1151
1146
  # @return [Integer]
1152
1147
  #
1153
1148
  # @!attribute [rw] matcher
1154
- # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for
1155
- # 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.
1156
1151
  # @return [Types::Matcher]
1157
1152
  #
1158
1153
  # @!attribute [rw] target_type
@@ -1160,23 +1155,28 @@ module Aws::ElasticLoadBalancingV2
1160
1155
  # with this target group. You can't specify targets for a target
1161
1156
  # group using more than one target type.
1162
1157
  #
1163
- # * `instance` - Targets are specified by instance ID. This is the
1164
- # default value.
1158
+ # * `instance` - Register targets by instance ID. This is the default
1159
+ # value.
1165
1160
  #
1166
- # * `ip` - Targets are specified by IP address. You can specify IP
1161
+ # * `ip` - Register targets by IP address. You can specify IP
1167
1162
  # addresses from the subnets of the virtual private cloud (VPC) for
1168
1163
  # the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12,
1169
1164
  # and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You
1170
1165
  # can't specify publicly routable IP addresses.
1171
1166
  #
1172
- # * `lambda` - The target groups contains a single Lambda function.
1167
+ # * `lambda` - Register a single Lambda function as a target.
1173
1168
  # @return [String]
1174
1169
  #
1170
+ # @!attribute [rw] tags
1171
+ # The tags to assign to the target group.
1172
+ # @return [Array<Types::Tag>]
1173
+ #
1175
1174
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroupInput AWS API Documentation
1176
1175
  #
1177
1176
  class CreateTargetGroupInput < Struct.new(
1178
1177
  :name,
1179
1178
  :protocol,
1179
+ :protocol_version,
1180
1180
  :port,
1181
1181
  :vpc_id,
1182
1182
  :health_check_protocol,
@@ -1188,7 +1188,8 @@ module Aws::ElasticLoadBalancingV2
1188
1188
  :healthy_threshold_count,
1189
1189
  :unhealthy_threshold_count,
1190
1190
  :matcher,
1191
- :target_type)
1191
+ :target_type,
1192
+ :tags)
1192
1193
  SENSITIVE = []
1193
1194
  include Aws::Structure
1194
1195
  end
@@ -2110,6 +2111,16 @@ module Aws::ElasticLoadBalancingV2
2110
2111
  #
2111
2112
  # * application-load-balancers
2112
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
+ #
2113
2124
  # * listeners-per-application-load-balancer
2114
2125
  #
2115
2126
  # * listeners-per-network-load-balancer
@@ -2128,6 +2139,8 @@ module Aws::ElasticLoadBalancingV2
2128
2139
  #
2129
2140
  # * targets-per-application-load-balancer
2130
2141
  #
2142
+ # * targets-per-availability-zone-per-gateway-load-balancer
2143
+ #
2131
2144
  # * targets-per-availability-zone-per-network-load-balancer
2132
2145
  #
2133
2146
  # * targets-per-network-load-balancer
@@ -2307,12 +2320,17 @@ module Aws::ElasticLoadBalancingV2
2307
2320
  # load balancer.
2308
2321
  # @return [String]
2309
2322
  #
2323
+ # @!attribute [rw] i_pv_6_address
2324
+ # \[Network Load Balancers\] The IPv6 address.
2325
+ # @return [String]
2326
+ #
2310
2327
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerAddress AWS API Documentation
2311
2328
  #
2312
2329
  class LoadBalancerAddress < Struct.new(
2313
2330
  :ip_address,
2314
2331
  :allocation_id,
2315
- :private_i_pv_4_address)
2332
+ :private_i_pv_4_address,
2333
+ :i_pv_6_address)
2316
2334
  SENSITIVE = []
2317
2335
  include Aws::Structure
2318
2336
  end
@@ -2330,6 +2348,14 @@ module Aws::ElasticLoadBalancingV2
2330
2348
  # @!attribute [rw] key
2331
2349
  # The name of the attribute.
2332
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
+ #
2333
2359
  # The following attributes are supported by both Application Load
2334
2360
  # Balancers and Network Load Balancers:
2335
2361
  #
@@ -2345,10 +2371,6 @@ module Aws::ElasticLoadBalancingV2
2345
2371
  # * `access_logs.s3.prefix` - The prefix for the location in the S3
2346
2372
  # bucket for the access logs.
2347
2373
  #
2348
- # * `deletion_protection.enabled` - Indicates whether deletion
2349
- # protection is enabled. The value is `true` or `false`. The default
2350
- # is `false`.
2351
- #
2352
2374
  # The following attributes are supported by only Application Load
2353
2375
  # Balancers:
2354
2376
  #
@@ -2371,8 +2393,13 @@ module Aws::ElasticLoadBalancingV2
2371
2393
  # Balancing requires that message header names contain only
2372
2394
  # alphanumeric characters and hyphens.
2373
2395
  #
2374
- # The following attributes are supported by only Network Load
2375
- # 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:
2376
2403
  #
2377
2404
  # * `load_balancing.cross_zone.enabled` - Indicates whether cross-zone
2378
2405
  # load balancing is enabled. The value is `true` or `false`. The
@@ -2422,31 +2449,39 @@ module Aws::ElasticLoadBalancingV2
2422
2449
  include Aws::Structure
2423
2450
  end
2424
2451
 
2425
- # Information to use when checking for a successful response from a
2426
- # target.
2452
+ # The codes to use when checking for a successful response from a
2453
+ # target. If the protocol version is gRPC, these are gRPC codes.
2454
+ # Otherwise, these are HTTP codes.
2427
2455
  #
2428
2456
  # @note When making an API call, you may pass Matcher
2429
2457
  # data as a hash:
2430
2458
  #
2431
2459
  # {
2432
- # http_code: "HttpCode", # required
2460
+ # http_code: "HttpCode",
2461
+ # grpc_code: "GrpcCode",
2433
2462
  # }
2434
2463
  #
2435
2464
  # @!attribute [rw] http_code
2436
- # The HTTP codes.
2437
- #
2438
2465
  # For Application Load Balancers, you can specify values between 200
2439
2466
  # and 499, and the default value is 200. You can specify multiple
2440
2467
  # values (for example, "200,202") or a range of values (for example,
2441
2468
  # "200-299").
2442
2469
  #
2443
- # For Network Load Balancers, this is 200–399.
2470
+ # For Network Load Balancers and Gateway Load Balancers, this must be
2471
+ # "200–399".
2472
+ # @return [String]
2473
+ #
2474
+ # @!attribute [rw] grpc_code
2475
+ # You can specify values between 0 and 99. You can specify multiple
2476
+ # values (for example, "0,1") or a range of values (for example,
2477
+ # "0-5"). The default value is 12.
2444
2478
  # @return [String]
2445
2479
  #
2446
2480
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Matcher AWS API Documentation
2447
2481
  #
2448
2482
  class Matcher < Struct.new(
2449
- :http_code)
2483
+ :http_code,
2484
+ :grpc_code)
2450
2485
  SENSITIVE = []
2451
2486
  include Aws::Structure
2452
2487
  end
@@ -2457,7 +2492,7 @@ module Aws::ElasticLoadBalancingV2
2457
2492
  # {
2458
2493
  # listener_arn: "ListenerArn", # required
2459
2494
  # port: 1,
2460
- # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
2495
+ # protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
2461
2496
  # ssl_policy: "SslPolicyName",
2462
2497
  # certificates: [
2463
2498
  # {
@@ -2533,42 +2568,26 @@ module Aws::ElasticLoadBalancingV2
2533
2568
  # @return [String]
2534
2569
  #
2535
2570
  # @!attribute [rw] port
2536
- # The port for connections from clients to the load balancer.
2571
+ # The port for connections from clients to the load balancer. You
2572
+ # cannot specify a port for a Gateway Load Balancer.
2537
2573
  # @return [Integer]
2538
2574
  #
2539
2575
  # @!attribute [rw] protocol
2540
2576
  # The protocol for connections from clients to the load balancer.
2541
2577
  # Application Load Balancers support the HTTP and HTTPS protocols.
2542
2578
  # Network Load Balancers support the TCP, TLS, UDP, and TCP\_UDP
2543
- # protocols.
2579
+ # protocols. You can’t change the protocol to UDP or TCP\_UDP if
2580
+ # dual-stack mode is enabled. You cannot specify a protocol for a
2581
+ # Gateway Load Balancer.
2544
2582
  # @return [String]
2545
2583
  #
2546
2584
  # @!attribute [rw] ssl_policy
2547
2585
  # \[HTTPS and TLS listeners\] The security policy that defines which
2548
- # protocols and ciphers are supported. The following are the possible
2549
- # values:
2550
- #
2551
- # * `ELBSecurityPolicy-2016-08`
2552
- #
2553
- # * `ELBSecurityPolicy-TLS-1-0-2015-04`
2554
- #
2555
- # * `ELBSecurityPolicy-TLS-1-1-2017-01`
2556
- #
2557
- # * `ELBSecurityPolicy-TLS-1-2-2017-01`
2558
- #
2559
- # * `ELBSecurityPolicy-TLS-1-2-Ext-2018-06`
2560
- #
2561
- # * `ELBSecurityPolicy-FS-2018-06`
2562
- #
2563
- # * `ELBSecurityPolicy-FS-1-1-2019-08`
2564
- #
2565
- # * `ELBSecurityPolicy-FS-1-2-2019-08`
2566
- #
2567
- # * `ELBSecurityPolicy-FS-1-2-Res-2019-08`
2586
+ # protocols and ciphers are supported.
2568
2587
  #
2569
- # For more information, see [Security Policies][1] in the *Application
2570
- # Load Balancers Guide* and [Security Policies][2] in the *Network
2571
- # Load Balancers Guide*.
2588
+ # For more information, see [Security policies][1] in the *Application
2589
+ # Load Balancers Guide* or [Security policies][2] in the *Network Load
2590
+ # Balancers Guide*.
2572
2591
  #
2573
2592
  #
2574
2593
  #
@@ -2580,33 +2599,10 @@ module Aws::ElasticLoadBalancingV2
2580
2599
  # \[HTTPS and TLS listeners\] The default certificate for the
2581
2600
  # listener. You must provide exactly one certificate. Set
2582
2601
  # `CertificateArn` to the certificate ARN but do not set `IsDefault`.
2583
- #
2584
- # To create a certificate list, use AddListenerCertificates.
2585
2602
  # @return [Array<Types::Certificate>]
2586
2603
  #
2587
2604
  # @!attribute [rw] default_actions
2588
- # The actions for the default rule. The rule must include one forward
2589
- # action or one or more fixed-response actions.
2590
- #
2591
- # If the action type is `forward`, you specify one or more target
2592
- # groups. The protocol of the target group must be HTTP or HTTPS for
2593
- # an Application Load Balancer. The protocol of the target group must
2594
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
2595
- #
2596
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
2597
- # authenticate users through an identity provider that is OpenID
2598
- # Connect (OIDC) compliant.
2599
- #
2600
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
2601
- # you authenticate users through the user pools supported by Amazon
2602
- # Cognito.
2603
- #
2604
- # \[Application Load Balancer\] If the action type is `redirect`, you
2605
- # redirect specified client requests from one URL to another.
2606
- #
2607
- # \[Application Load Balancer\] If the action type is
2608
- # `fixed-response`, you drop specified client requests and return a
2609
- # custom HTTP response.
2605
+ # The actions for the default rule.
2610
2606
  # @return [Array<Types::Action>]
2611
2607
  #
2612
2608
  # @!attribute [rw] alpn_policy
@@ -2624,7 +2620,7 @@ module Aws::ElasticLoadBalancingV2
2624
2620
  #
2625
2621
  # * `None`
2626
2622
  #
2627
- # For more information, see [ALPN Policies][1] in the *Network Load
2623
+ # For more information, see [ALPN policies][1] in the *Network Load
2628
2624
  # Balancers Guide*.
2629
2625
  #
2630
2626
  #
@@ -2802,36 +2798,11 @@ module Aws::ElasticLoadBalancingV2
2802
2798
  # @return [String]
2803
2799
  #
2804
2800
  # @!attribute [rw] conditions
2805
- # The conditions. Each rule can include zero or one of the following
2806
- # conditions: `http-request-method`, `host-header`, `path-pattern`,
2807
- # and `source-ip`, and zero or more of the following conditions:
2808
- # `http-header` and `query-string`.
2801
+ # The conditions.
2809
2802
  # @return [Array<Types::RuleCondition>]
2810
2803
  #
2811
2804
  # @!attribute [rw] actions
2812
- # The actions. Each rule must include exactly one of the following
2813
- # types of actions: `forward`, `fixed-response`, or `redirect`, and it
2814
- # must be the last action to be performed.
2815
- #
2816
- # If the action type is `forward`, you specify one or more target
2817
- # groups. The protocol of the target group must be HTTP or HTTPS for
2818
- # an Application Load Balancer. The protocol of the target group must
2819
- # be TCP, TLS, UDP, or TCP\_UDP for a Network Load Balancer.
2820
- #
2821
- # \[HTTPS listeners\] If the action type is `authenticate-oidc`, you
2822
- # authenticate users through an identity provider that is OpenID
2823
- # Connect (OIDC) compliant.
2824
- #
2825
- # \[HTTPS listeners\] If the action type is `authenticate-cognito`,
2826
- # you authenticate users through the user pools supported by Amazon
2827
- # Cognito.
2828
- #
2829
- # \[Application Load Balancer\] If the action type is `redirect`, you
2830
- # redirect specified client requests from one URL to another.
2831
- #
2832
- # \[Application Load Balancer\] If the action type is
2833
- # `fixed-response`, you drop specified client requests and return a
2834
- # custom HTTP response.
2805
+ # The actions.
2835
2806
  # @return [Array<Types::Action>]
2836
2807
  #
2837
2808
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRuleInput AWS API Documentation
@@ -2903,7 +2874,7 @@ module Aws::ElasticLoadBalancingV2
2903
2874
  #
2904
2875
  # {
2905
2876
  # target_group_arn: "TargetGroupArn", # required
2906
- # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP
2877
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS, TCP, TLS, UDP, TCP_UDP, GENEVE
2907
2878
  # health_check_port: "HealthCheckPort",
2908
2879
  # health_check_path: "Path",
2909
2880
  # health_check_enabled: false,
@@ -2912,7 +2883,8 @@ module Aws::ElasticLoadBalancingV2
2912
2883
  # healthy_threshold_count: 1,
2913
2884
  # unhealthy_threshold_count: 1,
2914
2885
  # matcher: {
2915
- # http_code: "HttpCode", # required
2886
+ # http_code: "HttpCode",
2887
+ # grpc_code: "GrpcCode",
2916
2888
  # },
2917
2889
  # }
2918
2890
  #
@@ -2923,8 +2895,9 @@ module Aws::ElasticLoadBalancingV2
2923
2895
  # @!attribute [rw] health_check_protocol
2924
2896
  # The protocol the load balancer uses when performing health checks on
2925
2897
  # targets. The TCP protocol is supported for health checks only if the
2926
- # protocol of the target group is TCP, TLS, UDP, or TCP\_UDP. The TLS,
2927
- # UDP, and TCP\_UDP protocols are not supported for health checks.
2898
+ # protocol of the target group is TCP, TLS, UDP, or TCP\_UDP. The
2899
+ # GENEVE, TLS, UDP, and TCP\_UDP protocols are not supported for
2900
+ # health checks.
2928
2901
  #
2929
2902
  # With Network Load Balancers, you can't modify this setting.
2930
2903
  # @return [String]
@@ -2935,8 +2908,14 @@ module Aws::ElasticLoadBalancingV2
2935
2908
  # @return [String]
2936
2909
  #
2937
2910
  # @!attribute [rw] health_check_path
2938
- # \[HTTP/HTTPS health checks\] The ping path that is the destination
2939
- # for the health check request.
2911
+ # \[HTTP/HTTPS health checks\] The destination for health checks on
2912
+ # the targets.
2913
+ #
2914
+ # \[HTTP1 or HTTP2 protocol version\] The ping path. The default is /.
2915
+ #
2916
+ # \[GRPC protocol version\] The path of a custom health check method
2917
+ # with the format /package.service/method. The default is
2918
+ # /AWS.ALB/healthcheck.
2940
2919
  # @return [String]
2941
2920
  #
2942
2921
  # @!attribute [rw] health_check_enabled
@@ -2945,9 +2924,8 @@ module Aws::ElasticLoadBalancingV2
2945
2924
  #
2946
2925
  # @!attribute [rw] health_check_interval_seconds
2947
2926
  # The approximate amount of time, in seconds, between health checks of
2948
- # an individual target. For Application Load Balancers, the range is 5
2949
- # to 300 seconds. For Network Load Balancers, the supported values are
2950
- # 10 or 30 seconds.
2927
+ # an individual target. For TCP health checks, the supported values
2928
+ # are 10 or 30 seconds.
2951
2929
  #
2952
2930
  # With Network Load Balancers, you can't modify this setting.
2953
2931
  # @return [Integer]
@@ -2966,16 +2944,14 @@ module Aws::ElasticLoadBalancingV2
2966
2944
  #
2967
2945
  # @!attribute [rw] unhealthy_threshold_count
2968
2946
  # The number of consecutive health check failures required before
2969
- # considering the target unhealthy. For Network Load Balancers, this
2970
- # value must be the same as the healthy threshold count.
2947
+ # considering the target unhealthy. For target groups with a protocol
2948
+ # of TCP or TLS, this value must be the same as the healthy threshold
2949
+ # count.
2971
2950
  # @return [Integer]
2972
2951
  #
2973
2952
  # @!attribute [rw] matcher
2974
- # \[HTTP/HTTPS health checks\] The HTTP codes to use when checking for
2975
- # a successful response from a target. The possible values are from
2976
- # 200 to 499. You can specify multiple values (for example,
2977
- # "200,202") or a range of values (for example, "200-299"). The
2978
- # default is 200.
2953
+ # \[HTTP/HTTPS health checks\] The HTTP or gRPC codes to use when
2954
+ # checking for a successful response from a target.
2979
2955
  #
2980
2956
  # With Network Load Balancers, you can't modify this setting.
2981
2957
  # @return [Types::Matcher]
@@ -3219,10 +3195,6 @@ module Aws::ElasticLoadBalancingV2
3219
3195
  #
3220
3196
  # @!attribute [rw] targets
3221
3197
  # The targets.
3222
- #
3223
- # To register a target by instance ID, specify the instance ID. To
3224
- # register a target by IP address, specify the IP address. To register
3225
- # a Lambda function, specify the ARN of the Lambda function.
3226
3198
  # @return [Array<Types::TargetDescription>]
3227
3199
  #
3228
3200
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargetsInput AWS API Documentation
@@ -3540,8 +3512,8 @@ module Aws::ElasticLoadBalancingV2
3540
3512
  # @!attribute [rw] ip_address_type
3541
3513
  # The IP address type. The possible values are `ipv4` (for IPv4
3542
3514
  # addresses) and `dualstack` (for IPv4 and IPv6 addresses). Internal
3543
- # load balancers must use `ipv4`. Network Load Balancers must use
3544
- # `ipv4`.
3515
+ # load balancers must use `ipv4`. You can’t specify `dualstack` for a
3516
+ # load balancer with a UDP or TCP\_UDP listener.
3545
3517
  # @return [String]
3546
3518
  #
3547
3519
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressTypeInput AWS API Documentation
@@ -3649,8 +3621,10 @@ module Aws::ElasticLoadBalancingV2
3649
3621
  # subnet_id: "SubnetId",
3650
3622
  # allocation_id: "AllocationId",
3651
3623
  # private_i_pv_4_address: "PrivateIPv4Address",
3624
+ # i_pv_6_address: "IPv6Address",
3652
3625
  # },
3653
3626
  # ],
3627
+ # ip_address_type: "ipv4", # accepts ipv4, dualstack
3654
3628
  # }
3655
3629
  #
3656
3630
  # @!attribute [rw] load_balancer_arn
@@ -3658,10 +3632,21 @@ module Aws::ElasticLoadBalancingV2
3658
3632
  # @return [String]
3659
3633
  #
3660
3634
  # @!attribute [rw] subnets
3661
- # The IDs of the public subnets. You must specify subnets from at
3662
- # least two Availability Zones. You can specify only one subnet per
3635
+ # The IDs of the public subnets. You can specify only one subnet per
3663
3636
  # Availability Zone. You must specify either subnets or subnet
3664
3637
  # mappings.
3638
+ #
3639
+ # \[Application Load Balancers\] You must specify subnets from at
3640
+ # least two Availability Zones.
3641
+ #
3642
+ # \[Application Load Balancers on Outposts\] You must specify one
3643
+ # Outpost subnet.
3644
+ #
3645
+ # \[Application Load Balancers on Local Zones\] You can specify
3646
+ # subnets from one or more Local Zones.
3647
+ #
3648
+ # \[Network Load Balancers\] You can specify subnets from one or more
3649
+ # Availability Zones.
3665
3650
  # @return [Array<String>]
3666
3651
  #
3667
3652
  # @!attribute [rw] subnet_mappings
@@ -3673,19 +3658,36 @@ module Aws::ElasticLoadBalancingV2
3673
3658
  # least two Availability Zones. You cannot specify Elastic IP
3674
3659
  # addresses for your subnets.
3675
3660
  #
3661
+ # \[Application Load Balancers on Outposts\] You must specify one
3662
+ # Outpost subnet.
3663
+ #
3664
+ # \[Application Load Balancers on Local Zones\] You can specify
3665
+ # subnets from one or more Local Zones.
3666
+ #
3676
3667
  # \[Network Load Balancers\] You can specify subnets from one or more
3677
- # Availability Zones. If you need static IP addresses for your
3678
- # internet-facing load balancer, you can specify one Elastic IP
3679
- # address per subnet. For internal load balancers, you can specify one
3680
- # private IP address per subnet from the IPv4 range of the subnet.
3668
+ # Availability Zones. You can specify one Elastic IP address per
3669
+ # subnet if you need static IP addresses for your internet-facing load
3670
+ # balancer. For internal load balancers, you can specify one private
3671
+ # IP address per subnet from the IPv4 range of the subnet. For
3672
+ # internet-facing load balancer, you can specify one IPv6 address per
3673
+ # subnet.
3681
3674
  # @return [Array<Types::SubnetMapping>]
3682
3675
  #
3676
+ # @!attribute [rw] ip_address_type
3677
+ # \[Network Load Balancers\] The type of IP addresses used by the
3678
+ # subnets for your load balancer. The possible values are `ipv4` (for
3679
+ # IPv4 addresses) and `dualstack` (for IPv4 and IPv6 addresses). You
3680
+ # can’t specify `dualstack` for a load balancer with a UDP or TCP\_UDP
3681
+ # listener. Internal load balancers must use `ipv4`.
3682
+ # @return [String]
3683
+ #
3683
3684
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsInput AWS API Documentation
3684
3685
  #
3685
3686
  class SetSubnetsInput < Struct.new(
3686
3687
  :load_balancer_arn,
3687
3688
  :subnets,
3688
- :subnet_mappings)
3689
+ :subnet_mappings,
3690
+ :ip_address_type)
3689
3691
  SENSITIVE = []
3690
3692
  include Aws::Structure
3691
3693
  end
@@ -3694,10 +3696,15 @@ module Aws::ElasticLoadBalancingV2
3694
3696
  # Information about the subnets.
3695
3697
  # @return [Array<Types::AvailabilityZone>]
3696
3698
  #
3699
+ # @!attribute [rw] ip_address_type
3700
+ # \[Network Load Balancers\] The IP address type.
3701
+ # @return [String]
3702
+ #
3697
3703
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsOutput AWS API Documentation
3698
3704
  #
3699
3705
  class SetSubnetsOutput < Struct.new(
3700
- :availability_zones)
3706
+ :availability_zones,
3707
+ :ip_address_type)
3701
3708
  SENSITIVE = []
3702
3709
  include Aws::Structure
3703
3710
  end
@@ -3768,6 +3775,7 @@ module Aws::ElasticLoadBalancingV2
3768
3775
  # subnet_id: "SubnetId",
3769
3776
  # allocation_id: "AllocationId",
3770
3777
  # private_i_pv_4_address: "PrivateIPv4Address",
3778
+ # i_pv_6_address: "IPv6Address",
3771
3779
  # }
3772
3780
  #
3773
3781
  # @!attribute [rw] subnet_id
@@ -3784,12 +3792,17 @@ module Aws::ElasticLoadBalancingV2
3784
3792
  # load balancer.
3785
3793
  # @return [String]
3786
3794
  #
3795
+ # @!attribute [rw] i_pv_6_address
3796
+ # \[Network Load Balancers\] The IPv6 address.
3797
+ # @return [String]
3798
+ #
3787
3799
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SubnetMapping AWS API Documentation
3788
3800
  #
3789
3801
  class SubnetMapping < Struct.new(
3790
3802
  :subnet_id,
3791
3803
  :allocation_id,
3792
- :private_i_pv_4_address)
3804
+ :private_i_pv_4_address,
3805
+ :i_pv_6_address)
3793
3806
  SENSITIVE = []
3794
3807
  include Aws::Structure
3795
3808
  end
@@ -3865,8 +3878,9 @@ module Aws::ElasticLoadBalancingV2
3865
3878
  # @return [String]
3866
3879
  #
3867
3880
  # @!attribute [rw] port
3868
- # The port on which the target is listening. Not used if the target is
3869
- # a Lambda function.
3881
+ # The port on which the target is listening. If the target group
3882
+ # protocol is GENEVE, the supported port is 6081. Not used if the
3883
+ # target is a Lambda function.
3870
3884
  # @return [Integer]
3871
3885
  #
3872
3886
  # @!attribute [rw] availability_zone
@@ -3925,7 +3939,8 @@ module Aws::ElasticLoadBalancingV2
3925
3939
  # @return [String]
3926
3940
  #
3927
3941
  # @!attribute [rw] health_check_protocol
3928
- # The protocol to use to connect with the target.
3942
+ # The protocol to use to connect with the target. The GENEVE, TLS,
3943
+ # UDP, and TCP\_UDP protocols are not supported for health checks.
3929
3944
  # @return [String]
3930
3945
  #
3931
3946
  # @!attribute [rw] health_check_port
@@ -3957,12 +3972,12 @@ module Aws::ElasticLoadBalancingV2
3957
3972
  # @return [Integer]
3958
3973
  #
3959
3974
  # @!attribute [rw] health_check_path
3960
- # The destination for the health check request.
3975
+ # The destination for health checks on the targets.
3961
3976
  # @return [String]
3962
3977
  #
3963
3978
  # @!attribute [rw] matcher
3964
- # The HTTP codes to use when checking for a successful response from a
3965
- # target.
3979
+ # The HTTP or gRPC codes to use when checking for a successful
3980
+ # response from a target.
3966
3981
  # @return [Types::Matcher]
3967
3982
  #
3968
3983
  # @!attribute [rw] load_balancer_arns
@@ -3972,9 +3987,14 @@ module Aws::ElasticLoadBalancingV2
3972
3987
  #
3973
3988
  # @!attribute [rw] target_type
3974
3989
  # The type of target that you must specify when registering targets
3975
- # with this target group. The possible values are `instance` (targets
3976
- # are specified by instance ID) or `ip` (targets are specified by IP
3977
- # address).
3990
+ # with this target group. The possible values are `instance` (register
3991
+ # targets by instance ID), `ip` (register targets by IP address), or
3992
+ # `lambda` (register a single Lambda function as a target).
3993
+ # @return [String]
3994
+ #
3995
+ # @!attribute [rw] protocol_version
3996
+ # \[HTTP/HTTPS protocol\] The protocol version. The possible values
3997
+ # are `GRPC`, `HTTP1`, and `HTTP2`.
3978
3998
  # @return [String]
3979
3999
  #
3980
4000
  # @see http://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetGroup AWS API Documentation
@@ -3995,7 +4015,8 @@ module Aws::ElasticLoadBalancingV2
3995
4015
  :health_check_path,
3996
4016
  :matcher,
3997
4017
  :load_balancer_arns,
3998
- :target_type)
4018
+ :target_type,
4019
+ :protocol_version)
3999
4020
  SENSITIVE = []
4000
4021
  include Aws::Structure
4001
4022
  end
@@ -4020,8 +4041,7 @@ module Aws::ElasticLoadBalancingV2
4020
4041
  # @!attribute [rw] key
4021
4042
  # The name of the attribute.
4022
4043
  #
4023
- # The following attributes are supported by both Application Load
4024
- # Balancers and Network Load Balancers:
4044
+ # The following attribute is supported by all load balancers:
4025
4045
  #
4026
4046
  # * `deregistration_delay.timeout_seconds` - The amount of time, in
4027
4047
  # seconds, for Elastic Load Balancing to wait before changing the
@@ -4029,6 +4049,11 @@ module Aws::ElasticLoadBalancingV2
4029
4049
  # range is 0-3600 seconds. The default value is 300 seconds. If the
4030
4050
  # target is a Lambda function, this attribute is not supported.
4031
4051
  #
4052
+ # ^
4053
+ #
4054
+ # The following attributes are supported by both Application Load
4055
+ # Balancers and Network Load Balancers:
4056
+ #
4032
4057
  # * `stickiness.enabled` - Indicates whether sticky sessions are
4033
4058
  # enabled. The value is `true` or `false`. The default is `false`.
4034
4059
  #
@@ -4071,13 +4096,17 @@ module Aws::ElasticLoadBalancingV2
4071
4096
  #
4072
4097
  # ^
4073
4098
  #
4074
- # The following attribute is supported only by Network Load Balancers:
4099
+ # The following attributes are supported only by Network Load
4100
+ # Balancers:
4101
+ #
4102
+ # * `deregistration_delay.connection_termination.enabled` - Indicates
4103
+ # whether the load balancer terminates connections at the end of the
4104
+ # deregistration timeout. The value is `true` or `false`. The
4105
+ # default is `false`.
4075
4106
  #
4076
4107
  # * `proxy_protocol_v2.enabled` - Indicates whether Proxy Protocol
4077
4108
  # version 2 is enabled. The value is `true` or `false`. The default
4078
4109
  # is `false`.
4079
- #
4080
- # ^
4081
4110
  # @return [String]
4082
4111
  #
4083
4112
  # @!attribute [rw] value
@@ -4181,10 +4210,11 @@ module Aws::ElasticLoadBalancingV2
4181
4210
  # the following values:
4182
4211
  #
4183
4212
  # * `Target.ResponseCodeMismatch` - The health checks did not return
4184
- # an expected HTTP code. Applies only to Application Load Balancers.
4213
+ # an expected HTTP code. Applies only to Application Load Balancers
4214
+ # and Gateway Load Balancers.
4185
4215
  #
4186
4216
  # * `Target.Timeout` - The health check requests timed out. Applies
4187
- # only to Application Load Balancers.
4217
+ # only to Application Load Balancers and Gateway Load Balancers.
4188
4218
  #
4189
4219
  # * `Target.FailedHealthChecks` - The load balancer received an error
4190
4220
  # while establishing a connection to the target or the target