aws-sdk-ecs 1.248.0 → 1.250.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.
@@ -199,13 +199,20 @@ module Aws::ECS
199
199
  # the required types.
200
200
  #
201
201
  # @option options [Boolean] :correct_clock_skew (true)
202
- # Used only in `standard` and `adaptive` retry modes. Specifies whether to apply
203
- # a clock skew correction and retry requests with skewed client clocks.
202
+ # Used only in `standard` and `adaptive` retry modes. Specifies whether
203
+ # to apply a clock skew correction and retry requests with skewed client
204
+ # clocks. Takes effect only when `disable_clock_skew_correction` is not set.
204
205
  #
205
206
  # @option options [String] :defaults_mode ("legacy")
206
207
  # See {Aws::DefaultsModeConfiguration} for a list of the
207
208
  # accepted modes and the configuration defaults that are included.
208
209
  #
210
+ # @option options [Boolean] :disable_clock_skew_correction
211
+ # Used only in `standard` and `adaptive` retry modes. When `true`, the
212
+ # SDK does not apply a clock skew correction, does not update its stored
213
+ # skew from responses, and does not retry clock skew errors. Clock skew
214
+ # correction is enabled by default.
215
+ #
209
216
  # @option options [Boolean] :disable_host_prefix_injection (false)
210
217
  # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
211
218
  #
@@ -481,6 +488,65 @@ module Aws::ECS
481
488
 
482
489
  # @!group API Operations
483
490
 
491
+ # Associates a gateway with an Amazon ECS cluster. After a cluster is
492
+ # associated with a gateway, services in that cluster can use the
493
+ # gateway for ingress. No changes take effect until you update a service
494
+ # in the cluster to use the gateway. A single cluster can be associated
495
+ # with up to 5 gateways.
496
+ #
497
+ # @option params [required, String] :gateway
498
+ # The name or Amazon Resource Name (ARN) of the gateway to associate.
499
+ #
500
+ # @option params [required, String] :cluster
501
+ # The name or Amazon Resource Name (ARN) of the cluster to associate the
502
+ # gateway with.
503
+ #
504
+ # @return [Types::AssociateGatewayWithClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
505
+ #
506
+ # * {Types::AssociateGatewayWithClusterResponse#gateway_arn #gateway_arn} => String
507
+ # * {Types::AssociateGatewayWithClusterResponse#cluster_arn #cluster_arn} => String
508
+ # * {Types::AssociateGatewayWithClusterResponse#status #status} => String
509
+ #
510
+ #
511
+ # @example Example: To associate a gateway with a cluster
512
+ #
513
+ # # This example associates the gateway named my-gateway with the cluster named my-cluster so that services in the cluster
514
+ # # can use the gateway for ingress.
515
+ #
516
+ # resp = client.associate_gateway_with_cluster({
517
+ # cluster: "my-cluster",
518
+ # gateway: "my-gateway",
519
+ # })
520
+ #
521
+ # resp.to_h outputs the following:
522
+ # {
523
+ # cluster_arn: "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster",
524
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
525
+ # status: "ACTIVE",
526
+ # }
527
+ #
528
+ # @example Request syntax with placeholder values
529
+ #
530
+ # resp = client.associate_gateway_with_cluster({
531
+ # gateway: "String", # required
532
+ # cluster: "String", # required
533
+ # })
534
+ #
535
+ # @example Response structure
536
+ #
537
+ # resp.gateway_arn #=> String
538
+ # resp.cluster_arn #=> String
539
+ # resp.status #=> String, one of "ACTIVE", "DISASSOCIATING", "INACTIVE"
540
+ #
541
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AssociateGatewayWithCluster AWS API Documentation
542
+ #
543
+ # @overload associate_gateway_with_cluster(params = {})
544
+ # @param [Hash] params ({})
545
+ def associate_gateway_with_cluster(params = {}, options = {})
546
+ req = build_request(:associate_gateway_with_cluster, params)
547
+ req.send_request(options)
548
+ end
549
+
484
550
  # Continues or rolls back an Amazon ECS service deployment that is
485
551
  # paused at a lifecycle hook.
486
552
  #
@@ -1609,6 +1675,162 @@ module Aws::ECS
1609
1675
  req.send_request(options)
1610
1676
  end
1611
1677
 
1678
+ # Creates a gateway. A gateway defines and dynamically manages ingress
1679
+ # paths for your Amazon ECS services, handling traffic routing and
1680
+ # infrastructure across multiple services while optimizing
1681
+ # infrastructure usage. `CreateGateway` is a synchronous operation and
1682
+ # the gateway is returned with a status of `ACTIVE`. The load balancers
1683
+ # and other infrastructure that a gateway manages aren't created until
1684
+ # a service in an associated cluster begins using the gateway.
1685
+ #
1686
+ # To use this operation, you must have the `iam:PassRole` permission for
1687
+ # the infrastructure role that you specify in `infrastructureRoleArn`.
1688
+ #
1689
+ # @option params [required, String] :name
1690
+ # The name for the gateway. The name must be unique within your account
1691
+ # and can be up to 255 characters.
1692
+ #
1693
+ # @option params [required, String] :infrastructure_role_arn
1694
+ # The Amazon Resource Name (ARN) of the IAM role that the gateway
1695
+ # assumes to create and manage infrastructure on your behalf.
1696
+ #
1697
+ # @option params [String] :client_token
1698
+ # A unique, case-sensitive identifier that you provide to ensure that
1699
+ # the operation completes no more than one time. If this token matches a
1700
+ # previous request, the service ignores the request, but does not return
1701
+ # an error.
1702
+ #
1703
+ # **A suitable default value is auto-generated.** You should normally
1704
+ # not need to pass this option.**
1705
+ #
1706
+ # @option params [Boolean] :deletion_protection
1707
+ # Specifies whether to enable deletion protection for the gateway. When
1708
+ # enabled, the gateway can't be deleted, and the gateway propagates
1709
+ # this setting to the load balancers it manages. The default is `true`.
1710
+ #
1711
+ # @option params [required, Types::GatewayConfiguration] :configuration
1712
+ # The type-specific configuration for the gateway. Exactly one
1713
+ # configuration variant must be set, and it determines the gateway type.
1714
+ # For example, `hostSharedAlb` configures a gateway that uses
1715
+ # Application Load Balancers with host-based routing.
1716
+ #
1717
+ # @option params [Array<Types::Tag>] :tags
1718
+ # The metadata that you apply to the gateway to help you categorize and
1719
+ # organize it. Each tag consists of a key and an optional value.
1720
+ # Depending on `propagateTags`, these tags can be applied to the
1721
+ # infrastructure the gateway manages.
1722
+ #
1723
+ # @option params [String] :propagate_tags
1724
+ # Specifies whether to propagate the tags from the gateway to the
1725
+ # infrastructure that the gateway manages. The default is `GATEWAY`.
1726
+ #
1727
+ # @return [Types::CreateGatewayResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1728
+ #
1729
+ # * {Types::CreateGatewayResponse#gateway_arn #gateway_arn} => String
1730
+ # * {Types::CreateGatewayResponse#name #name} => String
1731
+ # * {Types::CreateGatewayResponse#status #status} => String
1732
+ #
1733
+ #
1734
+ # @example Example: To create a gateway
1735
+ #
1736
+ # # This example creates a gateway named my-gateway that uses internet-facing Application Load Balancers with host-based
1737
+ # # routing in the specified subnets.
1738
+ #
1739
+ # resp = client.create_gateway({
1740
+ # name: "my-gateway",
1741
+ # configuration: {
1742
+ # host_shared_alb: {
1743
+ # http_desync: "defensive",
1744
+ # max_alb_count: 10,
1745
+ # network_configuration: {
1746
+ # ip_address_type: "ipv4",
1747
+ # subnets: [
1748
+ # "subnet-0123456789abcdef0",
1749
+ # "subnet-0fedcba9876543210",
1750
+ # ],
1751
+ # },
1752
+ # port: 443,
1753
+ # protocol: "HTTPS",
1754
+ # scheme: "internet-facing",
1755
+ # },
1756
+ # },
1757
+ # infrastructure_role_arn: "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
1758
+ # propagate_tags: "GATEWAY",
1759
+ # tags: [
1760
+ # {
1761
+ # key: "team",
1762
+ # value: "web",
1763
+ # },
1764
+ # ],
1765
+ # })
1766
+ #
1767
+ # resp.to_h outputs the following:
1768
+ # {
1769
+ # name: "my-gateway",
1770
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
1771
+ # status: "ACTIVE",
1772
+ # }
1773
+ #
1774
+ # @example Request syntax with placeholder values
1775
+ #
1776
+ # resp = client.create_gateway({
1777
+ # name: "String", # required
1778
+ # infrastructure_role_arn: "String", # required
1779
+ # client_token: "String",
1780
+ # deletion_protection: false,
1781
+ # configuration: { # required
1782
+ # host_shared_alb: {
1783
+ # network_configuration: {
1784
+ # inbound_security_group: "String",
1785
+ # subnets: ["String"],
1786
+ # ip_address_type: "ipv4", # accepts ipv4, dualstack, dualstack-without-public-ipv4
1787
+ # },
1788
+ # scheme: "internet-facing", # accepts internet-facing, internal
1789
+ # web_acl_arn: "String",
1790
+ # access_logs: {
1791
+ # destination: {
1792
+ # s3: {
1793
+ # bucket: "String", # required
1794
+ # prefix: "String",
1795
+ # },
1796
+ # },
1797
+ # },
1798
+ # port: 1,
1799
+ # protocol: "HTTP", # accepts HTTP, HTTPS
1800
+ # max_alb_count: 1,
1801
+ # http_desync: "monitor", # accepts monitor, defensive, strictest
1802
+ # test_traffic_rules: {
1803
+ # header: {
1804
+ # name: "String", # required
1805
+ # values: ["String"], # required
1806
+ # },
1807
+ # },
1808
+ # },
1809
+ # },
1810
+ # tags: [
1811
+ # {
1812
+ # key: "TagKey",
1813
+ # value: "TagValue",
1814
+ # },
1815
+ # ],
1816
+ # propagate_tags: "NONE", # accepts NONE, GATEWAY
1817
+ # })
1818
+ #
1819
+ # @example Response structure
1820
+ #
1821
+ # resp.gateway_arn #=> String
1822
+ # resp.name #=> String
1823
+ # resp.status #=> String, one of "ACTIVE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "DELETED"
1824
+ #
1825
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateGateway AWS API Documentation
1826
+ #
1827
+ # @overload create_gateway(params = {})
1828
+ # @param [Hash] params ({})
1829
+ def create_gateway(params = {}, options = {})
1830
+ req = build_request(:create_gateway, params)
1831
+ req.send_request(options)
1832
+ end
1833
+
1612
1834
  # Runs and maintains your desired number of tasks from a specified task
1613
1835
  # definition. If the number of tasks running in a service drops below
1614
1836
  # the `desiredCount`, Amazon ECS runs another copy of the task in the
@@ -2210,6 +2432,10 @@ module Aws::ECS
2210
2432
  # @option params [Array<Types::VpcLatticeConfiguration>] :vpc_lattice_configurations
2211
2433
  # The VPC Lattice configuration for the service being created.
2212
2434
  #
2435
+ # @option params [Array<Types::GatewayConnector>] :gateway_connectors
2436
+ # The gateway connectors that attach the service to a gateway ingress
2437
+ # path. You can specify at most one gateway connector.
2438
+ #
2213
2439
  # @option params [Types::MonitoringConfiguration] :monitoring
2214
2440
  # The optional monitoring configuration for the service, which defines
2215
2441
  # the resolution for the service-level `CPUUtilization` and
@@ -2626,6 +2852,11 @@ module Aws::ECS
2626
2852
  # format: "TEXT", # required, accepts TEXT, JSON
2627
2853
  # include_query_parameters: "DISABLED", # accepts DISABLED, ENABLED
2628
2854
  # },
2855
+ # container_configurations: [
2856
+ # {
2857
+ # log_level: "debug", # accepts debug, info
2858
+ # },
2859
+ # ],
2629
2860
  # },
2630
2861
  # volume_configurations: [
2631
2862
  # {
@@ -2668,6 +2899,27 @@ module Aws::ECS
2668
2899
  # },
2669
2900
  # },
2670
2901
  # ],
2902
+ # gateway_connectors: [
2903
+ # {
2904
+ # port_name: "String", # required
2905
+ # health_check: {
2906
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS
2907
+ # health_check_port: 1,
2908
+ # health_check_path: "String",
2909
+ # health_check_timeout_seconds: 1,
2910
+ # health_check_interval_seconds: 1,
2911
+ # healthy_threshold_count: 1,
2912
+ # unhealthy_threshold_count: 1,
2913
+ # matcher: {
2914
+ # http_code: "String",
2915
+ # grpc_code: "String",
2916
+ # },
2917
+ # },
2918
+ # filters: {
2919
+ # access_types: ["PUBLIC"], # accepts PUBLIC, PRIVATE
2920
+ # },
2921
+ # },
2922
+ # ],
2671
2923
  # monitoring: {
2672
2924
  # metric_configurations: [
2673
2925
  # {
@@ -2833,6 +3085,8 @@ module Aws::ECS
2833
3085
  # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
2834
3086
  # resp.service.deployments[0].service_connect_configuration.access_log_configuration.format #=> String, one of "TEXT", "JSON"
2835
3087
  # resp.service.deployments[0].service_connect_configuration.access_log_configuration.include_query_parameters #=> String, one of "DISABLED", "ENABLED"
3088
+ # resp.service.deployments[0].service_connect_configuration.container_configurations #=> Array
3089
+ # resp.service.deployments[0].service_connect_configuration.container_configurations[0].log_level #=> String, one of "debug", "info"
2836
3090
  # resp.service.deployments[0].service_connect_resources #=> Array
2837
3091
  # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
2838
3092
  # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
@@ -3858,6 +4112,61 @@ module Aws::ECS
3858
4112
  req.send_request(options)
3859
4113
  end
3860
4114
 
4115
+ # Deletes a gateway. Before you can delete a gateway, deletion
4116
+ # protection must be disabled and the gateway must not have any cluster
4117
+ # associations that are in the `ACTIVE` or `DISASSOCIATING` state. If
4118
+ # associations exist, the operation fails; disassociate all clusters
4119
+ # first. `DeleteGateway` is a synchronous operation. After you delete a
4120
+ # gateway, subsequent requests for it return a
4121
+ # `GatewayNotFoundException`.
4122
+ #
4123
+ # @option params [required, String] :gateway
4124
+ # The name or Amazon Resource Name (ARN) of the gateway to delete.
4125
+ #
4126
+ # @return [Types::DeleteGatewayResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4127
+ #
4128
+ # * {Types::DeleteGatewayResponse#gateway_arn #gateway_arn} => String
4129
+ # * {Types::DeleteGatewayResponse#name #name} => String
4130
+ # * {Types::DeleteGatewayResponse#status #status} => String
4131
+ #
4132
+ #
4133
+ # @example Example: To delete a gateway
4134
+ #
4135
+ # # This example deletes the gateway named my-gateway. Deletion protection must be disabled and the gateway must not be
4136
+ # # associated with any clusters.
4137
+ #
4138
+ # resp = client.delete_gateway({
4139
+ # gateway: "my-gateway",
4140
+ # })
4141
+ #
4142
+ # resp.to_h outputs the following:
4143
+ # {
4144
+ # name: "my-gateway",
4145
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
4146
+ # status: "DELETED",
4147
+ # }
4148
+ #
4149
+ # @example Request syntax with placeholder values
4150
+ #
4151
+ # resp = client.delete_gateway({
4152
+ # gateway: "String", # required
4153
+ # })
4154
+ #
4155
+ # @example Response structure
4156
+ #
4157
+ # resp.gateway_arn #=> String
4158
+ # resp.name #=> String
4159
+ # resp.status #=> String, one of "ACTIVE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "DELETED"
4160
+ #
4161
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteGateway AWS API Documentation
4162
+ #
4163
+ # @overload delete_gateway(params = {})
4164
+ # @param [Hash] params ({})
4165
+ def delete_gateway(params = {}, options = {})
4166
+ req = build_request(:delete_gateway, params)
4167
+ req.send_request(options)
4168
+ end
4169
+
3861
4170
  # Deletes a specified service within a cluster. You can delete a service
3862
4171
  # if you have no running tasks in it and the desired task count is zero.
3863
4172
  # If the service is actively maintaining tasks, you can't delete it,
@@ -4082,6 +4391,8 @@ module Aws::ECS
4082
4391
  # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
4083
4392
  # resp.service.deployments[0].service_connect_configuration.access_log_configuration.format #=> String, one of "TEXT", "JSON"
4084
4393
  # resp.service.deployments[0].service_connect_configuration.access_log_configuration.include_query_parameters #=> String, one of "DISABLED", "ENABLED"
4394
+ # resp.service.deployments[0].service_connect_configuration.container_configurations #=> Array
4395
+ # resp.service.deployments[0].service_connect_configuration.container_configurations[0].log_level #=> String, one of "debug", "info"
4085
4396
  # resp.service.deployments[0].service_connect_resources #=> Array
4086
4397
  # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
4087
4398
  # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
@@ -6153,6 +6464,285 @@ module Aws::ECS
6153
6464
  req.send_request(options)
6154
6465
  end
6155
6466
 
6467
+ # Describes a gateway, including its configuration, status, and the
6468
+ # type-specific infrastructure settings that it uses.
6469
+ #
6470
+ # @option params [required, String] :gateway
6471
+ # The name or Amazon Resource Name (ARN) of the gateway to describe.
6472
+ #
6473
+ # @return [Types::DescribeGatewayResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6474
+ #
6475
+ # * {Types::DescribeGatewayResponse#gateway #gateway} => Types::Gateway
6476
+ #
6477
+ #
6478
+ # @example Example: To describe a gateway
6479
+ #
6480
+ # # This example describes the gateway named my-gateway.
6481
+ #
6482
+ # resp = client.describe_gateway({
6483
+ # gateway: "my-gateway",
6484
+ # })
6485
+ #
6486
+ # resp.to_h outputs the following:
6487
+ # {
6488
+ # gateway: {
6489
+ # name: "my-gateway",
6490
+ # access_type: "PUBLIC",
6491
+ # configuration: {
6492
+ # host_shared_alb: {
6493
+ # current_alb_count: 1,
6494
+ # http_desync: "defensive",
6495
+ # max_alb_count: 10,
6496
+ # network_configuration: {
6497
+ # ip_address_type: "ipv4",
6498
+ # subnets: [
6499
+ # "subnet-0123456789abcdef0",
6500
+ # "subnet-0fedcba9876543210",
6501
+ # ],
6502
+ # },
6503
+ # port: 443,
6504
+ # protocol: "HTTPS",
6505
+ # scheme: "internet-facing",
6506
+ # },
6507
+ # },
6508
+ # created_at: Time.parse("2026-10-20T12:00:00.000Z"),
6509
+ # deletion_protection: true,
6510
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
6511
+ # infrastructure_role_arn: "arn:aws:iam::123456789012:role/ecsInfrastructureRole",
6512
+ # propagate_tags: "GATEWAY",
6513
+ # status: "ACTIVE",
6514
+ # tags: [
6515
+ # {
6516
+ # key: "team",
6517
+ # value: "web",
6518
+ # },
6519
+ # ],
6520
+ # updated_at: Time.parse("2026-10-20T12:00:00.000Z"),
6521
+ # },
6522
+ # }
6523
+ #
6524
+ # @example Request syntax with placeholder values
6525
+ #
6526
+ # resp = client.describe_gateway({
6527
+ # gateway: "String", # required
6528
+ # })
6529
+ #
6530
+ # @example Response structure
6531
+ #
6532
+ # resp.gateway.gateway_arn #=> String
6533
+ # resp.gateway.name #=> String
6534
+ # resp.gateway.status #=> String, one of "ACTIVE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "DELETED"
6535
+ # resp.gateway.status_reason #=> String
6536
+ # resp.gateway.failures #=> Array
6537
+ # resp.gateway.failures[0].arn #=> String
6538
+ # resp.gateway.failures[0].errors #=> Array
6539
+ # resp.gateway.failures[0].errors[0].operation #=> String
6540
+ # resp.gateway.failures[0].errors[0].code #=> String
6541
+ # resp.gateway.failures[0].errors[0].message #=> String
6542
+ # resp.gateway.infrastructure_role_arn #=> String
6543
+ # resp.gateway.deletion_protection #=> Boolean
6544
+ # resp.gateway.configuration.host_shared_alb.network_configuration.inbound_security_group #=> String
6545
+ # resp.gateway.configuration.host_shared_alb.network_configuration.subnets #=> Array
6546
+ # resp.gateway.configuration.host_shared_alb.network_configuration.subnets[0] #=> String
6547
+ # resp.gateway.configuration.host_shared_alb.network_configuration.ip_address_type #=> String, one of "ipv4", "dualstack", "dualstack-without-public-ipv4"
6548
+ # resp.gateway.configuration.host_shared_alb.scheme #=> String, one of "internet-facing", "internal"
6549
+ # resp.gateway.configuration.host_shared_alb.access_logs.destination.s3.bucket #=> String
6550
+ # resp.gateway.configuration.host_shared_alb.access_logs.destination.s3.prefix #=> String
6551
+ # resp.gateway.configuration.host_shared_alb.web_acl_arn #=> String
6552
+ # resp.gateway.configuration.host_shared_alb.port #=> Integer
6553
+ # resp.gateway.configuration.host_shared_alb.protocol #=> String, one of "HTTP", "HTTPS"
6554
+ # resp.gateway.configuration.host_shared_alb.max_alb_count #=> Integer
6555
+ # resp.gateway.configuration.host_shared_alb.current_alb_count #=> Integer
6556
+ # resp.gateway.configuration.host_shared_alb.http_desync #=> String, one of "monitor", "defensive", "strictest"
6557
+ # resp.gateway.configuration.host_shared_alb.test_traffic_rules.header.name #=> String
6558
+ # resp.gateway.configuration.host_shared_alb.test_traffic_rules.header.values #=> Array
6559
+ # resp.gateway.configuration.host_shared_alb.test_traffic_rules.header.values[0] #=> String
6560
+ # resp.gateway.access_type #=> String, one of "PUBLIC", "PRIVATE"
6561
+ # resp.gateway.propagate_tags #=> String, one of "NONE", "GATEWAY"
6562
+ # resp.gateway.tags #=> Array
6563
+ # resp.gateway.tags[0].key #=> String
6564
+ # resp.gateway.tags[0].value #=> String
6565
+ # resp.gateway.created_at #=> Time
6566
+ # resp.gateway.updated_at #=> Time
6567
+ #
6568
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeGateway AWS API Documentation
6569
+ #
6570
+ # @overload describe_gateway(params = {})
6571
+ # @param [Hash] params ({})
6572
+ def describe_gateway(params = {}, options = {})
6573
+ req = build_request(:describe_gateway, params)
6574
+ req.send_request(options)
6575
+ end
6576
+
6577
+ # Returns the infrastructure that a gateway has created and manages, so
6578
+ # that you can follow the traffic path from top-level shared resources,
6579
+ # such as load balancers, to the service-specific resources represented
6580
+ # as gateway routes. Responses include only the Amazon Resource Names
6581
+ # (ARNs) of gateway-managed infrastructure. For the current state of a
6582
+ # resource, describe it with the corresponding Amazon Web Services
6583
+ # service (Elastic Load Balancing, Amazon EC2, or Amazon Web Services
6584
+ # Certificate Manager). The results are paginated.
6585
+ #
6586
+ # @option params [required, String] :gateway
6587
+ # The name or Amazon Resource Name (ARN) of the gateway.
6588
+ #
6589
+ # @option params [Integer] :max_results
6590
+ # The maximum number of results that the operation returns in a single
6591
+ # page. The maximum value is 20 and the default is 10.
6592
+ #
6593
+ # @option params [String] :next_token
6594
+ # The `nextToken` value returned from a previous paginated request.
6595
+ #
6596
+ # @return [Types::DescribeGatewayResourcesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6597
+ #
6598
+ # * {Types::DescribeGatewayResourcesResponse#gateway_resources #gateway_resources} => Types::GatewayResources
6599
+ # * {Types::DescribeGatewayResourcesResponse#next_token #next_token} => String
6600
+ #
6601
+ #
6602
+ # @example Example: To describe the infrastructure that a gateway manages
6603
+ #
6604
+ # # This example returns the load balancers, listeners, and gateway routes that the gateway named my-gateway manages.
6605
+ #
6606
+ # resp = client.describe_gateway_resources({
6607
+ # gateway: "my-gateway",
6608
+ # })
6609
+ #
6610
+ # resp.to_h outputs the following:
6611
+ # {
6612
+ # gateway_resources: {
6613
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
6614
+ # resources: {
6615
+ # host_shared_alb: [
6616
+ # {
6617
+ # gateway_route_arns: [
6618
+ # "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f",
6619
+ # ],
6620
+ # listener_arn: "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2",
6621
+ # load_balancer_arn: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/ecs-gateway-alb-1/50dc6c495c0c9188",
6622
+ # security_group: "sg-0123456789abcdef0",
6623
+ # },
6624
+ # ],
6625
+ # },
6626
+ # },
6627
+ # }
6628
+ #
6629
+ # @example Request syntax with placeholder values
6630
+ #
6631
+ # resp = client.describe_gateway_resources({
6632
+ # gateway: "String", # required
6633
+ # max_results: 1,
6634
+ # next_token: "String",
6635
+ # })
6636
+ #
6637
+ # @example Response structure
6638
+ #
6639
+ # resp.gateway_resources.gateway_arn #=> String
6640
+ # resp.gateway_resources.resources.host_shared_alb #=> Array
6641
+ # resp.gateway_resources.resources.host_shared_alb[0].load_balancer_arn #=> String
6642
+ # resp.gateway_resources.resources.host_shared_alb[0].listener_arn #=> String
6643
+ # resp.gateway_resources.resources.host_shared_alb[0].security_group #=> String
6644
+ # resp.gateway_resources.resources.host_shared_alb[0].gateway_route_arns #=> Array
6645
+ # resp.gateway_resources.resources.host_shared_alb[0].gateway_route_arns[0] #=> String
6646
+ # resp.next_token #=> String
6647
+ #
6648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeGatewayResources AWS API Documentation
6649
+ #
6650
+ # @overload describe_gateway_resources(params = {})
6651
+ # @param [Hash] params ({})
6652
+ def describe_gateway_resources(params = {}, options = {})
6653
+ req = build_request(:describe_gateway_resources, params)
6654
+ req.send_request(options)
6655
+ end
6656
+
6657
+ # Describes a gateway route, including its status, the service it routes
6658
+ # traffic to, and the service-specific infrastructure, such as target
6659
+ # groups and listener rules, that the gateway manages for it.
6660
+ #
6661
+ # @option params [required, String] :gateway_route_arn
6662
+ # The Amazon Resource Name (ARN) of the gateway route to describe.
6663
+ #
6664
+ # @return [Types::DescribeGatewayRouteResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6665
+ #
6666
+ # * {Types::DescribeGatewayRouteResponse#gateway_route #gateway_route} => Types::GatewayRoute
6667
+ #
6668
+ #
6669
+ # @example Example: To describe a gateway route
6670
+ #
6671
+ # # This example describes the specified gateway route, including the service URL and the load balancer resources that the
6672
+ # # gateway manages for the route.
6673
+ #
6674
+ # resp = client.describe_gateway_route({
6675
+ # gateway_route_arn: "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f",
6676
+ # })
6677
+ #
6678
+ # resp.to_h outputs the following:
6679
+ # {
6680
+ # gateway_route: {
6681
+ # gateway_route_arn: "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f",
6682
+ # resources: {
6683
+ # host_shared_alb: [
6684
+ # {
6685
+ # acm_certificate_arn: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-90ab-cdef-1234-567890abcdef",
6686
+ # listener_arn: "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2",
6687
+ # listener_rule_arn: "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener-rule/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cabee",
6688
+ # load_balancer_arn: "arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/ecs-gateway-alb-1/50dc6c495c0c9188",
6689
+ # load_balancer_security_groups: [
6690
+ # {
6691
+ # arn: "arn:aws:ec2:us-east-1:123456789012:security-group/sg-0123456789abcdef0",
6692
+ # rule_arns: [
6693
+ # "arn:aws:ec2:us-east-1:123456789012:security-group-rule/sgr-0123456789abcdef0",
6694
+ # ],
6695
+ # },
6696
+ # ],
6697
+ # service_security_group_arn: "arn:aws:ec2:us-east-1:123456789012:security-group/sg-0fedcba9876543210",
6698
+ # test_listener_rule_arns: [
6699
+ # "arn:aws:elasticloadbalancing:us-east-1:123456789012:listener-rule/app/ecs-gateway-alb-1/50dc6c495c0c9188/f2f7dc8efc522ab2/9683b2d02a6cc1d2",
6700
+ # ],
6701
+ # },
6702
+ # ],
6703
+ # },
6704
+ # service_arn: "arn:aws:ecs:us-east-1:123456789012:service/my-cluster/my-web-service",
6705
+ # service_container_port_name: "web",
6706
+ # service_url: "https://my-web-service.example.com",
6707
+ # status: "ACTIVE",
6708
+ # },
6709
+ # }
6710
+ #
6711
+ # @example Request syntax with placeholder values
6712
+ #
6713
+ # resp = client.describe_gateway_route({
6714
+ # gateway_route_arn: "String", # required
6715
+ # })
6716
+ #
6717
+ # @example Response structure
6718
+ #
6719
+ # resp.gateway_route.gateway_route_arn #=> String
6720
+ # resp.gateway_route.service_arn #=> String
6721
+ # resp.gateway_route.service_container_port_name #=> String
6722
+ # resp.gateway_route.status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
6723
+ # resp.gateway_route.service_url #=> String
6724
+ # resp.gateway_route.resources.host_shared_alb #=> Array
6725
+ # resp.gateway_route.resources.host_shared_alb[0].acm_certificate_arn #=> String
6726
+ # resp.gateway_route.resources.host_shared_alb[0].load_balancer_arn #=> String
6727
+ # resp.gateway_route.resources.host_shared_alb[0].listener_arn #=> String
6728
+ # resp.gateway_route.resources.host_shared_alb[0].listener_rule_arn #=> String
6729
+ # resp.gateway_route.resources.host_shared_alb[0].test_listener_rule_arns #=> Array
6730
+ # resp.gateway_route.resources.host_shared_alb[0].test_listener_rule_arns[0] #=> String
6731
+ # resp.gateway_route.resources.host_shared_alb[0].load_balancer_security_groups #=> Array
6732
+ # resp.gateway_route.resources.host_shared_alb[0].load_balancer_security_groups[0].arn #=> String
6733
+ # resp.gateway_route.resources.host_shared_alb[0].load_balancer_security_groups[0].rule_arns #=> Array
6734
+ # resp.gateway_route.resources.host_shared_alb[0].load_balancer_security_groups[0].rule_arns[0] #=> String
6735
+ # resp.gateway_route.resources.host_shared_alb[0].service_security_group_arn #=> String
6736
+ #
6737
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeGatewayRoute AWS API Documentation
6738
+ #
6739
+ # @overload describe_gateway_route(params = {})
6740
+ # @param [Hash] params ({})
6741
+ def describe_gateway_route(params = {}, options = {})
6742
+ req = build_request(:describe_gateway_route, params)
6743
+ req.send_request(options)
6744
+ end
6745
+
6156
6746
  # Describes one or more of your service deployments.
6157
6747
  #
6158
6748
  # A service deployment happens when you release a software update for
@@ -6559,6 +7149,8 @@ module Aws::ECS
6559
7149
  # resp.service_revisions[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
6560
7150
  # resp.service_revisions[0].service_connect_configuration.access_log_configuration.format #=> String, one of "TEXT", "JSON"
6561
7151
  # resp.service_revisions[0].service_connect_configuration.access_log_configuration.include_query_parameters #=> String, one of "DISABLED", "ENABLED"
7152
+ # resp.service_revisions[0].service_connect_configuration.container_configurations #=> Array
7153
+ # resp.service_revisions[0].service_connect_configuration.container_configurations[0].log_level #=> String, one of "debug", "info"
6562
7154
  # resp.service_revisions[0].volume_configurations #=> Array
6563
7155
  # resp.service_revisions[0].volume_configurations[0].name #=> String
6564
7156
  # resp.service_revisions[0].volume_configurations[0].managed_ebs_volume.encrypted #=> Boolean
@@ -6660,7 +7252,37 @@ module Aws::ECS
6660
7252
  # resp.service_revisions[0].ecs_managed_resources.log_groups[0].status_reason #=> String
6661
7253
  # resp.service_revisions[0].ecs_managed_resources.log_groups[0].updated_at #=> Time
6662
7254
  # resp.service_revisions[0].ecs_managed_resources.log_groups[0].log_group_name #=> String
7255
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections #=> Array
7256
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].gateway_arn #=> String
7257
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].gateway_route_arn #=> String
7258
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].port_name #=> String
7259
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].service_url #=> String
7260
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].access_type #=> String, one of "PUBLIC", "PRIVATE"
7261
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
7262
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb #=> Array
7263
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].acm_certificate_arn #=> String
7264
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].load_balancer_arn #=> String
7265
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].load_balancer_security_group_arns #=> Array
7266
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].load_balancer_security_group_arns[0] #=> String
7267
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].listener_arn #=> String
7268
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].listener_rule_arn #=> String
7269
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].test_listener_rule_arn #=> String
7270
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].target_group_arn #=> String
7271
+ # resp.service_revisions[0].ecs_managed_resources.gateway_connections[0].resources.host_shared_alb[0].alternate_target_group_arn #=> String
6663
7272
  # resp.service_revisions[0].overrides.runtime_platform.cpu_architecture #=> String
7273
+ # resp.service_revisions[0].gateway_connectors #=> Array
7274
+ # resp.service_revisions[0].gateway_connectors[0].port_name #=> String
7275
+ # resp.service_revisions[0].gateway_connectors[0].health_check.health_check_protocol #=> String, one of "HTTP", "HTTPS"
7276
+ # resp.service_revisions[0].gateway_connectors[0].health_check.health_check_port #=> Integer
7277
+ # resp.service_revisions[0].gateway_connectors[0].health_check.health_check_path #=> String
7278
+ # resp.service_revisions[0].gateway_connectors[0].health_check.health_check_timeout_seconds #=> Integer
7279
+ # resp.service_revisions[0].gateway_connectors[0].health_check.health_check_interval_seconds #=> Integer
7280
+ # resp.service_revisions[0].gateway_connectors[0].health_check.healthy_threshold_count #=> Integer
7281
+ # resp.service_revisions[0].gateway_connectors[0].health_check.unhealthy_threshold_count #=> Integer
7282
+ # resp.service_revisions[0].gateway_connectors[0].health_check.matcher.http_code #=> String
7283
+ # resp.service_revisions[0].gateway_connectors[0].health_check.matcher.grpc_code #=> String
7284
+ # resp.service_revisions[0].gateway_connectors[0].filters.access_types #=> Array
7285
+ # resp.service_revisions[0].gateway_connectors[0].filters.access_types[0] #=> String, one of "PUBLIC", "PRIVATE"
6664
7286
  # resp.service_revisions[0].monitoring.metric_configurations #=> Array
6665
7287
  # resp.service_revisions[0].monitoring.metric_configurations[0].metric_names #=> Array
6666
7288
  # resp.service_revisions[0].monitoring.metric_configurations[0].metric_names[0] #=> String
@@ -6984,6 +7606,8 @@ module Aws::ECS
6984
7606
  # resp.services[0].deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
6985
7607
  # resp.services[0].deployments[0].service_connect_configuration.access_log_configuration.format #=> String, one of "TEXT", "JSON"
6986
7608
  # resp.services[0].deployments[0].service_connect_configuration.access_log_configuration.include_query_parameters #=> String, one of "DISABLED", "ENABLED"
7609
+ # resp.services[0].deployments[0].service_connect_configuration.container_configurations #=> Array
7610
+ # resp.services[0].deployments[0].service_connect_configuration.container_configurations[0].log_level #=> String, one of "debug", "info"
6987
7611
  # resp.services[0].deployments[0].service_connect_resources #=> Array
6988
7612
  # resp.services[0].deployments[0].service_connect_resources[0].discovery_name #=> String
6989
7613
  # resp.services[0].deployments[0].service_connect_resources[0].discovery_arn #=> String
@@ -7727,6 +8351,67 @@ module Aws::ECS
7727
8351
  req.send_request(options)
7728
8352
  end
7729
8353
 
8354
+ # Removes the association between a gateway and an Amazon ECS cluster.
8355
+ # The association remains in the `DISASSOCIATING` state until you remove
8356
+ # all of the gateway routes for the cluster by updating the associated
8357
+ # services. You can use `ListGatewayRoutes` with a cluster filter to
8358
+ # determine which routes are preventing disassociation. No
8359
+ # infrastructure changes are made until the affected services are
8360
+ # updated.
8361
+ #
8362
+ # @option params [required, String] :gateway
8363
+ # The name or Amazon Resource Name (ARN) of the gateway to disassociate.
8364
+ #
8365
+ # @option params [required, String] :cluster
8366
+ # The name or Amazon Resource Name (ARN) of the cluster to disassociate
8367
+ # the gateway from.
8368
+ #
8369
+ # @return [Types::DisassociateGatewayFromClusterResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
8370
+ #
8371
+ # * {Types::DisassociateGatewayFromClusterResponse#gateway_arn #gateway_arn} => String
8372
+ # * {Types::DisassociateGatewayFromClusterResponse#cluster_arn #cluster_arn} => String
8373
+ # * {Types::DisassociateGatewayFromClusterResponse#status #status} => String
8374
+ #
8375
+ #
8376
+ # @example Example: To disassociate a gateway from a cluster
8377
+ #
8378
+ # # This example removes the association between the gateway named my-gateway and the cluster named my-cluster. The
8379
+ # # association remains in the DISASSOCIATING state until all gateway routes for the cluster are removed.
8380
+ #
8381
+ # resp = client.disassociate_gateway_from_cluster({
8382
+ # cluster: "my-cluster",
8383
+ # gateway: "my-gateway",
8384
+ # })
8385
+ #
8386
+ # resp.to_h outputs the following:
8387
+ # {
8388
+ # cluster_arn: "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster",
8389
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
8390
+ # status: "DISASSOCIATING",
8391
+ # }
8392
+ #
8393
+ # @example Request syntax with placeholder values
8394
+ #
8395
+ # resp = client.disassociate_gateway_from_cluster({
8396
+ # gateway: "String", # required
8397
+ # cluster: "String", # required
8398
+ # })
8399
+ #
8400
+ # @example Response structure
8401
+ #
8402
+ # resp.gateway_arn #=> String
8403
+ # resp.cluster_arn #=> String
8404
+ # resp.status #=> String, one of "ACTIVE", "DISASSOCIATING", "INACTIVE"
8405
+ #
8406
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DisassociateGatewayFromCluster AWS API Documentation
8407
+ #
8408
+ # @overload disassociate_gateway_from_cluster(params = {})
8409
+ # @param [Hash] params ({})
8410
+ def disassociate_gateway_from_cluster(params = {}, options = {})
8411
+ req = build_request(:disassociate_gateway_from_cluster, params)
8412
+ req.send_request(options)
8413
+ end
8414
+
7730
8415
  # <note markdown="1"> This action is only used by the Amazon ECS agent,
7731
8416
  # and it is not
7732
8417
  # intended for use outside of the agent.
@@ -8695,6 +9380,269 @@ module Aws::ECS
8695
9380
  req.send_request(options)
8696
9381
  end
8697
9382
 
9383
+ # Returns a list of the associations between gateways and clusters. You
9384
+ # can filter the results by gateway, cluster, and status. The results
9385
+ # are paginated. We recommend that you use pagination to ensure that the
9386
+ # operation returns quickly and successfully.
9387
+ #
9388
+ # @option params [String] :gateway
9389
+ # The name or Amazon Resource Name (ARN) of a gateway to filter the
9390
+ # results by.
9391
+ #
9392
+ # @option params [String] :cluster
9393
+ # The name or Amazon Resource Name (ARN) of a cluster to filter the
9394
+ # results by.
9395
+ #
9396
+ # @option params [Array<String>] :status
9397
+ # The association status to filter the results by.
9398
+ #
9399
+ # @option params [Integer] :max_results
9400
+ # The maximum number of results that the operation returns in a single
9401
+ # page. The default is 100.
9402
+ #
9403
+ # @option params [String] :next_token
9404
+ # The `nextToken` value returned from a previous paginated request.
9405
+ #
9406
+ # @return [Types::ListGatewayClusterAssociationsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9407
+ #
9408
+ # * {Types::ListGatewayClusterAssociationsResponse#gateway_cluster_associations #gateway_cluster_associations} => Array&lt;Types::GatewayClusterAssociationSummary&gt;
9409
+ # * {Types::ListGatewayClusterAssociationsResponse#next_token #next_token} => String
9410
+ #
9411
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
9412
+ #
9413
+ #
9414
+ # @example Example: To list the clusters associated with a gateway
9415
+ #
9416
+ # # This example lists the clusters that are associated with the gateway named my-gateway.
9417
+ #
9418
+ # resp = client.list_gateway_cluster_associations({
9419
+ # gateway: "my-gateway",
9420
+ # })
9421
+ #
9422
+ # resp.to_h outputs the following:
9423
+ # {
9424
+ # gateway_cluster_associations: [
9425
+ # {
9426
+ # cluster_arn: "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster",
9427
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
9428
+ # status: "ACTIVE",
9429
+ # },
9430
+ # {
9431
+ # cluster_arn: "arn:aws:ecs:us-east-1:123456789012:cluster/my-staging-cluster",
9432
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
9433
+ # status: "ACTIVE",
9434
+ # },
9435
+ # ],
9436
+ # }
9437
+ #
9438
+ # @example Request syntax with placeholder values
9439
+ #
9440
+ # resp = client.list_gateway_cluster_associations({
9441
+ # gateway: "String",
9442
+ # cluster: "String",
9443
+ # status: ["ACTIVE"], # accepts ACTIVE, DISASSOCIATING, INACTIVE
9444
+ # max_results: 1,
9445
+ # next_token: "String",
9446
+ # })
9447
+ #
9448
+ # @example Response structure
9449
+ #
9450
+ # resp.gateway_cluster_associations #=> Array
9451
+ # resp.gateway_cluster_associations[0].gateway_arn #=> String
9452
+ # resp.gateway_cluster_associations[0].cluster_arn #=> String
9453
+ # resp.gateway_cluster_associations[0].status #=> String, one of "ACTIVE", "DISASSOCIATING", "INACTIVE"
9454
+ # resp.next_token #=> String
9455
+ #
9456
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListGatewayClusterAssociations AWS API Documentation
9457
+ #
9458
+ # @overload list_gateway_cluster_associations(params = {})
9459
+ # @param [Hash] params ({})
9460
+ def list_gateway_cluster_associations(params = {}, options = {})
9461
+ req = build_request(:list_gateway_cluster_associations, params)
9462
+ req.send_request(options)
9463
+ end
9464
+
9465
+ # Returns a list of gateway routes. A gateway route represents the
9466
+ # association between a service and a gateway and the service-specific
9467
+ # infrastructure the gateway manages for it. You can filter the results
9468
+ # by gateway, cluster, service, container port name, and status. The
9469
+ # results are paginated. We recommend that you use pagination to ensure
9470
+ # that the operation returns quickly and successfully.
9471
+ #
9472
+ # @option params [String] :gateway
9473
+ # The name or Amazon Resource Name (ARN) of a gateway to filter the
9474
+ # results by.
9475
+ #
9476
+ # @option params [String] :cluster
9477
+ # The name or Amazon Resource Name (ARN) of a cluster to filter the
9478
+ # results by.
9479
+ #
9480
+ # @option params [String] :service
9481
+ # The name or Amazon Resource Name (ARN) of a service to filter the
9482
+ # results by. Because services can span clusters, a service name isn't
9483
+ # necessarily unique and can match multiple services.
9484
+ #
9485
+ # @option params [String] :service_container_port_name
9486
+ # The name of a task definition container port to filter the results by.
9487
+ #
9488
+ # @option params [Array<String>] :status
9489
+ # The gateway route status to filter the results by.
9490
+ #
9491
+ # @option params [Integer] :max_results
9492
+ # The maximum number of results that the operation returns in a single
9493
+ # page. The default is 100.
9494
+ #
9495
+ # @option params [String] :next_token
9496
+ # The `nextToken` value returned from a previous paginated request.
9497
+ #
9498
+ # @return [Types::ListGatewayRoutesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9499
+ #
9500
+ # * {Types::ListGatewayRoutesResponse#gateway_routes #gateway_routes} => Array&lt;Types::GatewayRouteSummary&gt;
9501
+ # * {Types::ListGatewayRoutesResponse#next_token #next_token} => String
9502
+ #
9503
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
9504
+ #
9505
+ #
9506
+ # @example Example: To list the gateway routes for a gateway
9507
+ #
9508
+ # # This example lists the gateway routes for the gateway named my-gateway in the cluster named my-cluster.
9509
+ #
9510
+ # resp = client.list_gateway_routes({
9511
+ # cluster: "my-cluster",
9512
+ # gateway: "my-gateway",
9513
+ # })
9514
+ #
9515
+ # resp.to_h outputs the following:
9516
+ # {
9517
+ # gateway_routes: [
9518
+ # {
9519
+ # cluster_arn: "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster",
9520
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
9521
+ # gateway_route_arn: "arn:aws:ecs:us-east-1:123456789012:gateway-route/my-gateway/a1b2c3d4e5f6478890abcdef12345678/f0e1d2c3b4a5968778695a4b3c2d1e0f",
9522
+ # service_arn: "arn:aws:ecs:us-east-1:123456789012:service/my-cluster/my-web-service",
9523
+ # service_container_port_name: "web",
9524
+ # status: "ACTIVE",
9525
+ # },
9526
+ # ],
9527
+ # }
9528
+ #
9529
+ # @example Request syntax with placeholder values
9530
+ #
9531
+ # resp = client.list_gateway_routes({
9532
+ # gateway: "String",
9533
+ # cluster: "String",
9534
+ # service: "String",
9535
+ # service_container_port_name: "String",
9536
+ # status: ["ACTIVE"], # accepts ACTIVE, CREATE_IN_PROGRESS, CREATE_FAILED, UPDATE_IN_PROGRESS, UPDATE_FAILED, DELETE_IN_PROGRESS, DELETE_FAILED
9537
+ # max_results: 1,
9538
+ # next_token: "String",
9539
+ # })
9540
+ #
9541
+ # @example Response structure
9542
+ #
9543
+ # resp.gateway_routes #=> Array
9544
+ # resp.gateway_routes[0].gateway_route_arn #=> String
9545
+ # resp.gateway_routes[0].gateway_arn #=> String
9546
+ # resp.gateway_routes[0].cluster_arn #=> String
9547
+ # resp.gateway_routes[0].service_arn #=> String
9548
+ # resp.gateway_routes[0].service_container_port_name #=> String
9549
+ # resp.gateway_routes[0].status #=> String, one of "ACTIVE", "CREATE_IN_PROGRESS", "CREATE_FAILED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "DELETE_IN_PROGRESS", "DELETE_FAILED"
9550
+ # resp.next_token #=> String
9551
+ #
9552
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListGatewayRoutes AWS API Documentation
9553
+ #
9554
+ # @overload list_gateway_routes(params = {})
9555
+ # @param [Hash] params ({})
9556
+ def list_gateway_routes(params = {}, options = {})
9557
+ req = build_request(:list_gateway_routes, params)
9558
+ req.send_request(options)
9559
+ end
9560
+
9561
+ # Returns a list of gateways in your account. You can filter the results
9562
+ # by gateway name and status. The results are paginated. We recommend
9563
+ # that you use pagination to ensure that the operation returns quickly
9564
+ # and successfully.
9565
+ #
9566
+ # @option params [Array<String>] :names
9567
+ # The gateway names to filter the results by. You can specify up to 10
9568
+ # names.
9569
+ #
9570
+ # @option params [Array<String>] :status
9571
+ # The gateway statuses to filter the results by.
9572
+ #
9573
+ # @option params [Integer] :max_results
9574
+ # The maximum number of gateway results that `ListGateways` returns in a
9575
+ # single page. The default is 100.
9576
+ #
9577
+ # @option params [String] :next_token
9578
+ # The `nextToken` value returned from a previous paginated
9579
+ # `ListGateways` request where `maxResults` was used and the results
9580
+ # exceeded the value of that parameter. Pagination continues from the
9581
+ # end of the previous results.
9582
+ #
9583
+ # @return [Types::ListGatewaysResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9584
+ #
9585
+ # * {Types::ListGatewaysResponse#gateways #gateways} => Array&lt;Types::GatewaySummary&gt;
9586
+ # * {Types::ListGatewaysResponse#next_token #next_token} => String
9587
+ #
9588
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
9589
+ #
9590
+ #
9591
+ # @example Example: To list active gateways
9592
+ #
9593
+ # # This example lists the gateways in your account that have a status of ACTIVE.
9594
+ #
9595
+ # resp = client.list_gateways({
9596
+ # status: [
9597
+ # "ACTIVE",
9598
+ # ],
9599
+ # })
9600
+ #
9601
+ # resp.to_h outputs the following:
9602
+ # {
9603
+ # gateways: [
9604
+ # {
9605
+ # name: "my-gateway",
9606
+ # created_at: Time.parse("2026-10-20T12:00:00.000Z"),
9607
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
9608
+ # status: "ACTIVE",
9609
+ # },
9610
+ # {
9611
+ # name: "my-internal-gateway",
9612
+ # created_at: Time.parse("2026-10-21T09:30:00.000Z"),
9613
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-internal-gateway/0f1e2d3c4b5a69788796a5b4c3d2e1f0",
9614
+ # status: "ACTIVE",
9615
+ # },
9616
+ # ],
9617
+ # }
9618
+ #
9619
+ # @example Request syntax with placeholder values
9620
+ #
9621
+ # resp = client.list_gateways({
9622
+ # names: ["String"],
9623
+ # status: ["ACTIVE"], # accepts ACTIVE, UPDATE_IN_PROGRESS, UPDATE_COMPLETE, UPDATE_FAILED, DELETED
9624
+ # max_results: 1,
9625
+ # next_token: "String",
9626
+ # })
9627
+ #
9628
+ # @example Response structure
9629
+ #
9630
+ # resp.gateways #=> Array
9631
+ # resp.gateways[0].gateway_arn #=> String
9632
+ # resp.gateways[0].name #=> String
9633
+ # resp.gateways[0].status #=> String, one of "ACTIVE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "DELETED"
9634
+ # resp.gateways[0].created_at #=> Time
9635
+ # resp.next_token #=> String
9636
+ #
9637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListGateways AWS API Documentation
9638
+ #
9639
+ # @overload list_gateways(params = {})
9640
+ # @param [Hash] params ({})
9641
+ def list_gateways(params = {}, options = {})
9642
+ req = build_request(:list_gateways, params)
9643
+ req.send_request(options)
9644
+ end
9645
+
8698
9646
  # This operation lists all the service deployments that meet the
8699
9647
  # specified filter criteria.
8700
9648
  #
@@ -14905,6 +15853,119 @@ module Aws::ECS
14905
15853
  req.send_request(options)
14906
15854
  end
14907
15855
 
15856
+ # Modifies the configuration of a gateway. You can change only the
15857
+ # properties that can be applied without interrupting traffic, and the
15858
+ # configuration variant that you provide must match the gateway's type.
15859
+ # `UpdateGateway` is an asynchronous operation: the changes are applied
15860
+ # to each load balancer the gateway manages, and the gateway reports a
15861
+ # status of `UPDATE_IN_PROGRESS` until the update completes. If Amazon
15862
+ # ECS can't update one or more resources, it makes a best effort to
15863
+ # update the rest and the gateway status changes to `UPDATE_FAILED`. Use
15864
+ # `DescribeGateway` to inspect the gateway's `statusReason` and
15865
+ # failures list, which gives the ARN of each load balancer that was not
15866
+ # updated and the operation, error code, and message for each failure.
15867
+ #
15868
+ # If you specify `infrastructureRoleArn`, you must have the
15869
+ # `iam:PassRole` permission for that role.
15870
+ #
15871
+ # @option params [required, String] :gateway
15872
+ # The name or Amazon Resource Name (ARN) of the gateway to update.
15873
+ #
15874
+ # @option params [String] :infrastructure_role_arn
15875
+ # The Amazon Resource Name (ARN) of the IAM role that the gateway
15876
+ # assumes to manage infrastructure on your behalf.
15877
+ #
15878
+ # @option params [Boolean] :deletion_protection
15879
+ # Specifies whether to enable deletion protection for the gateway. When
15880
+ # enabled, the gateway can't be deleted.
15881
+ #
15882
+ # @option params [Types::UpdateGatewayConfiguration] :configuration
15883
+ # The updated type-specific configuration for the gateway. The
15884
+ # configuration variant must match the gateway's existing type, and
15885
+ # only mutable fields can be changed.
15886
+ #
15887
+ # @option params [String] :propagate_tags
15888
+ # Specifies whether to propagate the tags from the gateway to the
15889
+ # infrastructure that the gateway manages. If you don't specify a
15890
+ # value, the gateway's existing setting is unchanged.
15891
+ #
15892
+ # @return [Types::UpdateGatewayResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
15893
+ #
15894
+ # * {Types::UpdateGatewayResponse#gateway_arn #gateway_arn} => String
15895
+ # * {Types::UpdateGatewayResponse#name #name} => String
15896
+ # * {Types::UpdateGatewayResponse#status #status} => String
15897
+ #
15898
+ #
15899
+ # @example Example: To update a gateway
15900
+ #
15901
+ # # This example raises the maximum number of Application Load Balancers that the gateway named my-gateway manages, and
15902
+ # # changes the desync mitigation mode to strictest.
15903
+ #
15904
+ # resp = client.update_gateway({
15905
+ # configuration: {
15906
+ # host_shared_alb: {
15907
+ # http_desync: "strictest",
15908
+ # max_alb_count: 20,
15909
+ # },
15910
+ # },
15911
+ # gateway: "my-gateway",
15912
+ # })
15913
+ #
15914
+ # resp.to_h outputs the following:
15915
+ # {
15916
+ # name: "my-gateway",
15917
+ # gateway_arn: "arn:aws:ecs:us-east-1:123456789012:gateway/my-gateway/a1b2c3d4e5f6478890abcdef12345678",
15918
+ # status: "UPDATE_IN_PROGRESS",
15919
+ # }
15920
+ #
15921
+ # @example Request syntax with placeholder values
15922
+ #
15923
+ # resp = client.update_gateway({
15924
+ # gateway: "String", # required
15925
+ # infrastructure_role_arn: "String",
15926
+ # deletion_protection: false,
15927
+ # configuration: {
15928
+ # host_shared_alb: {
15929
+ # network_configuration: {
15930
+ # inbound_security_group: "String",
15931
+ # },
15932
+ # max_alb_count: 1,
15933
+ # web_acl_arn: "String",
15934
+ # access_logs: {
15935
+ # destination: {
15936
+ # s3: {
15937
+ # bucket: "String", # required
15938
+ # prefix: "String",
15939
+ # },
15940
+ # },
15941
+ # },
15942
+ # http_desync: "monitor", # accepts monitor, defensive, strictest
15943
+ # test_traffic_rules: {
15944
+ # header: {
15945
+ # name: "String", # required
15946
+ # values: ["String"], # required
15947
+ # },
15948
+ # },
15949
+ # },
15950
+ # },
15951
+ # propagate_tags: "NONE", # accepts NONE, GATEWAY
15952
+ # })
15953
+ #
15954
+ # @example Response structure
15955
+ #
15956
+ # resp.gateway_arn #=> String
15957
+ # resp.name #=> String
15958
+ # resp.status #=> String, one of "ACTIVE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "DELETED"
15959
+ #
15960
+ # @see http://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateGateway AWS API Documentation
15961
+ #
15962
+ # @overload update_gateway(params = {})
15963
+ # @param [Hash] params ({})
15964
+ def update_gateway(params = {}, options = {})
15965
+ req = build_request(:update_gateway, params)
15966
+ req.send_request(options)
15967
+ end
15968
+
14908
15969
  # Modifies the parameters of a service.
14909
15970
  #
14910
15971
  # <note markdown="1"> On March 21, 2024, a change was made to resolve the task definition
@@ -15369,6 +16430,11 @@ module Aws::ECS
15369
16430
  #
15370
16431
  # This parameter triggers a new service deployment.
15371
16432
  #
16433
+ # @option params [Array<Types::GatewayConnector>] :gateway_connectors
16434
+ # The updated set of gateway connectors that connect the service to a
16435
+ # gateway ingress path. A service supports no more than one gateway
16436
+ # connector.
16437
+ #
15372
16438
  # @option params [Types::MonitoringConfiguration] :monitoring
15373
16439
  # The optional monitoring configuration for the service, which defines
15374
16440
  # the resolution for the service-level `CPUUtilization` and
@@ -15623,6 +16689,11 @@ module Aws::ECS
15623
16689
  # format: "TEXT", # required, accepts TEXT, JSON
15624
16690
  # include_query_parameters: "DISABLED", # accepts DISABLED, ENABLED
15625
16691
  # },
16692
+ # container_configurations: [
16693
+ # {
16694
+ # log_level: "debug", # accepts debug, info
16695
+ # },
16696
+ # ],
15626
16697
  # },
15627
16698
  # volume_configurations: [
15628
16699
  # {
@@ -15665,6 +16736,27 @@ module Aws::ECS
15665
16736
  # },
15666
16737
  # },
15667
16738
  # ],
16739
+ # gateway_connectors: [
16740
+ # {
16741
+ # port_name: "String", # required
16742
+ # health_check: {
16743
+ # health_check_protocol: "HTTP", # accepts HTTP, HTTPS
16744
+ # health_check_port: 1,
16745
+ # health_check_path: "String",
16746
+ # health_check_timeout_seconds: 1,
16747
+ # health_check_interval_seconds: 1,
16748
+ # healthy_threshold_count: 1,
16749
+ # unhealthy_threshold_count: 1,
16750
+ # matcher: {
16751
+ # http_code: "String",
16752
+ # grpc_code: "String",
16753
+ # },
16754
+ # },
16755
+ # filters: {
16756
+ # access_types: ["PUBLIC"], # accepts PUBLIC, PRIVATE
16757
+ # },
16758
+ # },
16759
+ # ],
15668
16760
  # monitoring: {
15669
16761
  # metric_configurations: [
15670
16762
  # {
@@ -15830,6 +16922,8 @@ module Aws::ECS
15830
16922
  # resp.service.deployments[0].service_connect_configuration.log_configuration.secret_options[0].value_from #=> String
15831
16923
  # resp.service.deployments[0].service_connect_configuration.access_log_configuration.format #=> String, one of "TEXT", "JSON"
15832
16924
  # resp.service.deployments[0].service_connect_configuration.access_log_configuration.include_query_parameters #=> String, one of "DISABLED", "ENABLED"
16925
+ # resp.service.deployments[0].service_connect_configuration.container_configurations #=> Array
16926
+ # resp.service.deployments[0].service_connect_configuration.container_configurations[0].log_level #=> String, one of "debug", "info"
15833
16927
  # resp.service.deployments[0].service_connect_resources #=> Array
15834
16928
  # resp.service.deployments[0].service_connect_resources[0].discovery_name #=> String
15835
16929
  # resp.service.deployments[0].service_connect_resources[0].discovery_arn #=> String
@@ -16388,7 +17482,7 @@ module Aws::ECS
16388
17482
  tracer: tracer
16389
17483
  )
16390
17484
  context[:gem_name] = 'aws-sdk-ecs'
16391
- context[:gem_version] = '1.248.0'
17485
+ context[:gem_version] = '1.250.0'
16392
17486
  Seahorse::Client::Request.new(handlers, context)
16393
17487
  end
16394
17488