aws-sdk-elasticloadbalancingv2 1.51.0 → 1.56.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,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