@aws-sdk/client-ecs 3.1153.0 → 3.1154.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.
Files changed (93) hide show
  1. package/README.md +77 -0
  2. package/dist-cjs/index.js +717 -36
  3. package/dist-es/ECS.js +28 -0
  4. package/dist-es/commands/AssociateGatewayWithClusterCommand.js +4 -0
  5. package/dist-es/commands/CreateGatewayCommand.js +4 -0
  6. package/dist-es/commands/DeleteGatewayCommand.js +4 -0
  7. package/dist-es/commands/DescribeGatewayCommand.js +4 -0
  8. package/dist-es/commands/DescribeGatewayResourcesCommand.js +4 -0
  9. package/dist-es/commands/DescribeGatewayRouteCommand.js +4 -0
  10. package/dist-es/commands/DisassociateGatewayFromClusterCommand.js +4 -0
  11. package/dist-es/commands/ListGatewayClusterAssociationsCommand.js +4 -0
  12. package/dist-es/commands/ListGatewayRoutesCommand.js +4 -0
  13. package/dist-es/commands/ListGatewaysCommand.js +4 -0
  14. package/dist-es/commands/UpdateGatewayCommand.js +4 -0
  15. package/dist-es/commands/index.js +11 -0
  16. package/dist-es/models/enums.js +47 -0
  17. package/dist-es/models/errors.js +26 -13
  18. package/dist-es/pagination/ListGatewayClusterAssociationsPaginator.js +4 -0
  19. package/dist-es/pagination/ListGatewayRoutesPaginator.js +4 -0
  20. package/dist-es/pagination/ListGatewaysPaginator.js +4 -0
  21. package/dist-es/pagination/index.js +3 -0
  22. package/dist-es/schemas/schemas_0.js +504 -23
  23. package/dist-types/ECS.d.ts +101 -0
  24. package/dist-types/ECSClient.d.ts +13 -2
  25. package/dist-types/commands/AssociateGatewayWithClusterCommand.d.ts +113 -0
  26. package/dist-types/commands/CreateGatewayCommand.d.ts +172 -0
  27. package/dist-types/commands/CreateServiceCommand.d.ts +24 -1
  28. package/dist-types/commands/DeleteExpressGatewayServiceCommand.d.ts +1 -1
  29. package/dist-types/commands/DeleteGatewayCommand.d.ts +108 -0
  30. package/dist-types/commands/DeleteServiceCommand.d.ts +1 -1
  31. package/dist-types/commands/DescribeExpressGatewayServiceCommand.d.ts +1 -1
  32. package/dist-types/commands/DescribeGatewayCommand.d.ts +200 -0
  33. package/dist-types/commands/DescribeGatewayResourcesCommand.d.ts +135 -0
  34. package/dist-types/commands/DescribeGatewayRouteCommand.d.ts +160 -0
  35. package/dist-types/commands/DescribeServiceRevisionsCommand.d.ts +48 -2
  36. package/dist-types/commands/DescribeServicesCommand.d.ts +1 -1
  37. package/dist-types/commands/DisassociateGatewayFromClusterCommand.d.ts +116 -0
  38. package/dist-types/commands/ListGatewayClusterAssociationsCommand.d.ts +125 -0
  39. package/dist-types/commands/ListGatewayRoutesCommand.d.ts +132 -0
  40. package/dist-types/commands/ListGatewaysCommand.d.ts +131 -0
  41. package/dist-types/commands/ListServiceDeploymentsCommand.d.ts +1 -1
  42. package/dist-types/commands/ListServicesCommand.d.ts +1 -1
  43. package/dist-types/commands/StopServiceDeploymentCommand.d.ts +1 -1
  44. package/dist-types/commands/UpdateExpressGatewayServiceCommand.d.ts +1 -1
  45. package/dist-types/commands/UpdateGatewayCommand.d.ts +143 -0
  46. package/dist-types/commands/UpdateServiceCommand.d.ts +24 -1
  47. package/dist-types/commands/UpdateServicePrimaryTaskSetCommand.d.ts +1 -1
  48. package/dist-types/commands/index.d.ts +11 -0
  49. package/dist-types/models/enums.d.ts +209 -0
  50. package/dist-types/models/errors.d.ts +25 -12
  51. package/dist-types/models/models_0.d.ts +1252 -1814
  52. package/dist-types/models/models_1.d.ts +1976 -2
  53. package/dist-types/pagination/ListGatewayClusterAssociationsPaginator.d.ts +7 -0
  54. package/dist-types/pagination/ListGatewayRoutesPaginator.d.ts +7 -0
  55. package/dist-types/pagination/ListGatewaysPaginator.d.ts +7 -0
  56. package/dist-types/pagination/index.d.ts +3 -0
  57. package/dist-types/schemas/schemas_0.d.ts +67 -0
  58. package/dist-types/ts3.4/ECS.d.ts +211 -0
  59. package/dist-types/ts3.4/ECSClient.d.ts +66 -0
  60. package/dist-types/ts3.4/commands/AssociateGatewayWithClusterCommand.d.ts +42 -0
  61. package/dist-types/ts3.4/commands/CreateGatewayCommand.d.ts +38 -0
  62. package/dist-types/ts3.4/commands/CreateServiceCommand.d.ts +1 -1
  63. package/dist-types/ts3.4/commands/DeleteExpressGatewayServiceCommand.d.ts +1 -1
  64. package/dist-types/ts3.4/commands/DeleteGatewayCommand.d.ts +38 -0
  65. package/dist-types/ts3.4/commands/DeleteServiceCommand.d.ts +1 -1
  66. package/dist-types/ts3.4/commands/DescribeExpressGatewayServiceCommand.d.ts +1 -1
  67. package/dist-types/ts3.4/commands/DescribeGatewayCommand.d.ts +38 -0
  68. package/dist-types/ts3.4/commands/DescribeGatewayResourcesCommand.d.ts +42 -0
  69. package/dist-types/ts3.4/commands/DescribeGatewayRouteCommand.d.ts +39 -0
  70. package/dist-types/ts3.4/commands/DescribeServiceRevisionsCommand.d.ts +4 -2
  71. package/dist-types/ts3.4/commands/DescribeServicesCommand.d.ts +1 -1
  72. package/dist-types/ts3.4/commands/DisassociateGatewayFromClusterCommand.d.ts +42 -0
  73. package/dist-types/ts3.4/commands/ListGatewayClusterAssociationsCommand.d.ts +42 -0
  74. package/dist-types/ts3.4/commands/ListGatewayRoutesCommand.d.ts +39 -0
  75. package/dist-types/ts3.4/commands/ListGatewaysCommand.d.ts +38 -0
  76. package/dist-types/ts3.4/commands/ListServiceDeploymentsCommand.d.ts +1 -1
  77. package/dist-types/ts3.4/commands/ListServicesCommand.d.ts +1 -1
  78. package/dist-types/ts3.4/commands/StopServiceDeploymentCommand.d.ts +1 -1
  79. package/dist-types/ts3.4/commands/UpdateExpressGatewayServiceCommand.d.ts +1 -1
  80. package/dist-types/ts3.4/commands/UpdateGatewayCommand.d.ts +38 -0
  81. package/dist-types/ts3.4/commands/UpdateServiceCommand.d.ts +1 -1
  82. package/dist-types/ts3.4/commands/UpdateServicePrimaryTaskSetCommand.d.ts +1 -1
  83. package/dist-types/ts3.4/commands/index.d.ts +11 -0
  84. package/dist-types/ts3.4/models/enums.d.ts +60 -0
  85. package/dist-types/ts3.4/models/errors.d.ts +12 -6
  86. package/dist-types/ts3.4/models/models_0.d.ts +367 -424
  87. package/dist-types/ts3.4/models/models_1.d.ts +481 -12
  88. package/dist-types/ts3.4/pagination/ListGatewayClusterAssociationsPaginator.d.ts +11 -0
  89. package/dist-types/ts3.4/pagination/ListGatewayRoutesPaginator.d.ts +11 -0
  90. package/dist-types/ts3.4/pagination/ListGatewaysPaginator.d.ts +11 -0
  91. package/dist-types/ts3.4/pagination/index.d.ts +3 -0
  92. package/dist-types/ts3.4/schemas/schemas_0.d.ts +67 -0
  93. package/package.json +1 -1
@@ -1,5 +1,1969 @@
1
- import type { Compatibility, Connectivity, HealthStatus, IpcMode, LaunchType, ManagedAgentName, ManagedResourceStatus, NetworkMode, PidMode, PropagateTags, SortOrder, TaskDefinitionStatus, TaskField, TaskFilesystemType, TaskSetField, TaskStopCode } from "./enums";
2
- import type { Attachment, Attribute, CapacityProviderStrategyItem, ContainerDefinition, ContainerImage, DeploymentEphemeralStorage, EBSTagSpecification, EnvironmentFile, EphemeralStorage, Failure, InferenceAccelerator, KeyValuePair, LoadBalancer, ManagedAutoScaling, ManagedIngressPath, ManagedSecurityGroup, MonitoringConfiguration, NetworkBinding, NetworkConfiguration, PlacementConstraint, PlacementStrategy, ProxyConfiguration, ResourceRequirement, RuntimePlatform, Scale, ServiceConnectConfiguration, ServiceRegistry, ServiceVolumeConfiguration, Tag, TaskDefinition, TaskDefinitionPlacementConstraint, TaskSet, Volume, VpcLatticeConfiguration } from "./models_0";
1
+ import type { AccessType, AvailabilityZoneRebalancing, Compatibility, Connectivity, DeploymentRolloutState, EBSResourceType, ExpressCpuArchitecture, ExpressGatewayServiceInclude, GatewayRouteStatus, HealthStatus, IpcMode, LaunchType, ManagedAgentName, ManagedResourceStatus, NetworkMode, PidMode, PropagateTags, ResourceManagementType, ScaleUnit, SchedulingStrategy, ServiceDeploymentStatus, ServiceField, SortOrder, StabilityStatus, StopServiceDeploymentStopType, TaskDefinitionStatus, TaskField, TaskFilesystemType, TaskSetField, TaskStopCode } from "./enums";
2
+ import type { Attachment, Attribute, CapacityProviderStrategyItem, ContainerDefinition, CreatedAt, DeploymentConfiguration, DeploymentController, ECSExpressGatewayService, EnvironmentFile, EphemeralStorage, ExpressGatewayContainer, ExpressGatewayScalingTarget, ExpressGatewayServiceConfiguration, ExpressGatewayServiceNetworkConfiguration, ExpressGatewayServiceStatus, Failure, GatewayConnector, InferenceAccelerator, KeyValuePair, LoadBalancer, LogConfiguration, MonitoringConfiguration, NetworkBinding, NetworkConfiguration, PlacementConstraint, PlacementStrategy, ProxyConfiguration, ResourceRequirement, RuntimePlatform, ServiceConnectAccessLogConfiguration, ServiceConnectClientAlias, ServiceConnectContainerConfiguration, ServiceConnectTlsConfiguration, Tag, TaskDefinition, TaskDefinitionPlacementConstraint, TimeoutConfiguration, Volume } from "./models_0";
3
+ /**
4
+ * <p>The Service Connect service object configuration. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html">Service Connect</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
5
+ * @public
6
+ */
7
+ export interface ServiceConnectService {
8
+ /**
9
+ * <p>The <code>portName</code> must match the name of one of the <code>portMappings</code> from all the containers in the task definition of this Amazon ECS service.</p>
10
+ * @public
11
+ */
12
+ portName: string | undefined;
13
+ /**
14
+ * <p>The <code>discoveryName</code> is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.</p> <p>If the <code>discoveryName</code> isn't specified, the port mapping name from the task definition is used in <code>portName.namespace</code>.</p>
15
+ * @public
16
+ */
17
+ discoveryName?: string | undefined;
18
+ /**
19
+ * <p>The list of client aliases for this Service Connect service. You use these to assign names that can be used by client applications. The maximum number of client aliases that you can have in this list is 1.</p> <p>Each alias ("endpoint") is a fully-qualified name and port number that other Amazon ECS tasks ("clients") can use to connect to this service.</p> <p>Each name and port mapping must be unique within the namespace.</p> <p>For each <code>ServiceConnectService</code>, you must provide at least one <code>clientAlias</code> with one <code>port</code>.</p>
20
+ * @public
21
+ */
22
+ clientAliases?: ServiceConnectClientAlias[] | undefined;
23
+ /**
24
+ * <p>The port number for the Service Connect proxy to listen on.</p> <p>Use the value of this field to bypass the proxy for traffic on the port number specified in the named <code>portMapping</code> in the task definition of this application, and then use it in your VPC security groups to allow traffic into the proxy for this Amazon ECS service.</p> <p>In <code>awsvpc</code> mode and Fargate, the default value is the container port number. The container port number is in the <code>portMapping</code> in the task definition. In bridge mode, the default value is the ephemeral port of the Service Connect proxy.</p>
25
+ * @public
26
+ */
27
+ ingressPortOverride?: number | undefined;
28
+ /**
29
+ * <p>A reference to an object that represents the configured timeouts for Service Connect.</p>
30
+ * @public
31
+ */
32
+ timeout?: TimeoutConfiguration | undefined;
33
+ /**
34
+ * <p>A reference to an object that represents a Transport Layer Security (TLS) configuration.</p>
35
+ * @public
36
+ */
37
+ tls?: ServiceConnectTlsConfiguration | undefined;
38
+ }
39
+ /**
40
+ * <p>The Service Connect configuration of your Amazon ECS service. The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.</p> <p>Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html">Service Connect</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
41
+ * @public
42
+ */
43
+ export interface ServiceConnectConfiguration {
44
+ /**
45
+ * <p>Specifies whether to use Service Connect with this service.</p>
46
+ * @public
47
+ */
48
+ enabled: boolean | undefined;
49
+ /**
50
+ * <p>The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace for use with Service Connect. The namespace must be in the same Amazon Web Services Region as the Amazon ECS service and cluster. The type of namespace doesn't affect Service Connect. For more information about Cloud Map, see <a href="https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html">Working with Services</a> in the <i>Cloud Map Developer Guide</i>.</p>
51
+ * @public
52
+ */
53
+ namespace?: string | undefined;
54
+ /**
55
+ * <p>The list of Service Connect service objects. These are names and aliases (also known as endpoints) that are used by other Amazon ECS services to connect to this service. </p> <p>This field is not required for a "client" Amazon ECS service that's a member of a namespace only to connect to other services within the namespace. An example of this would be a frontend application that accepts incoming requests from either a load balancer that's attached to the service or by other means.</p> <p>An object selects a port from the task definition, assigns a name for the Cloud Map service, and a list of aliases (endpoints) and ports for client applications to refer to this service.</p>
56
+ * @public
57
+ */
58
+ services?: ServiceConnectService[] | undefined;
59
+ /**
60
+ * <p>The log configuration for the container. This parameter maps to <code>LogConfig</code> in the docker container create command and the <code>--log-driver</code> option to docker run.</p> <p>By default, containers use the same logging driver that the Docker daemon uses. However, the container might use a different logging driver than the Docker daemon by specifying a log driver configuration in the container definition.</p> <p>Understand the following when specifying a log configuration for your containers.</p> <ul> <li> <p>Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon. Additional log drivers may be available in future releases of the Amazon ECS container agent.</p> <p>For tasks on Fargate, the supported log drivers are <code>awslogs</code>, <code>splunk</code>, and <code>awsfirelens</code>.</p> <p>For tasks hosted on Amazon EC2 instances, the supported log drivers are <code>awslogs</code>, <code>fluentd</code>, <code>gelf</code>, <code>json-file</code>, <code>journald</code>,<code>syslog</code>, <code>splunk</code>, and <code>awsfirelens</code>.</p> </li> <li> <p>This parameter requires version 1.18 of the Docker Remote API or greater on your container instance.</p> </li> <li> <p>For tasks that are hosted on Amazon EC2 instances, the Amazon ECS container agent must register the available logging drivers with the <code>ECS_AVAILABLE_LOGGING_DRIVERS</code> environment variable before containers placed on that instance can use these log configuration options. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html">Amazon ECS container agent configuration</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> </li> <li> <p>For tasks that are on Fargate, because you don't have access to the underlying infrastructure your tasks are hosted on, any additional software needed must be installed outside of the task. For example, the Fluentd output aggregators or a remote host running Logstash to send Gelf logs to.</p> </li> </ul>
61
+ * @public
62
+ */
63
+ logConfiguration?: LogConfiguration | undefined;
64
+ /**
65
+ * <p>The configuration for Service Connect access logging. Access logs capture detailed information about requests made to your service, including request patterns, response codes, and timing data. They can be useful for debugging connectivity issues, monitoring service performance, and auditing service-to-service communication for security and compliance purposes.</p> <note> <p>To enable access logs, you must also specify a <code>logConfiguration</code> in the <code>serviceConnectConfiguration</code>.</p> </note>
66
+ * @public
67
+ */
68
+ accessLogConfiguration?: ServiceConnectAccessLogConfiguration | undefined;
69
+ /**
70
+ * <p>The settings for the Service Connect proxy container that Amazon ECS adds to each task in this service. Each object in the list sets exactly one setting, and each setting can appear only once in the list.</p> <p>Your changes to these settings apply only to tasks that Amazon ECS launches after you update the service. Your running tasks keep their existing settings until Amazon ECS replaces them. If you update the <code>serviceConnectConfiguration</code> of your service and don't include <code>containerConfigurations</code>, the proxy container settings return to their defaults.</p>
71
+ * @public
72
+ */
73
+ containerConfigurations?: ServiceConnectContainerConfiguration[] | undefined;
74
+ }
75
+ /**
76
+ * <p>The details for the service registry.</p> <p>Each service may be associated with one service registry. Multiple service registries for each service are not supported.</p> <p>When you add, update, or remove the service registries configuration, Amazon ECS starts a new deployment. New tasks are registered and deregistered to the updated service registry configuration.</p>
77
+ * @public
78
+ */
79
+ export interface ServiceRegistry {
80
+ /**
81
+ * <p>The Amazon Resource Name (ARN) of the service registry. The currently supported service registry is Cloud Map. For more information, see <a href="https://docs.aws.amazon.com/cloud-map/latest/api/API_CreateService.html">CreateService</a>.</p>
82
+ * @public
83
+ */
84
+ registryArn?: string | undefined;
85
+ /**
86
+ * <p>The port value used if your service discovery service specified an SRV record. This field might be used if both the <code>awsvpc</code> network mode and SRV records are used.</p>
87
+ * @public
88
+ */
89
+ port?: number | undefined;
90
+ /**
91
+ * <p>The container name value to be used for your service discovery service. It's already specified in the task definition. If the task definition that your service task specifies uses the <code>bridge</code> or <code>host</code> network mode, you must specify a <code>containerName</code> and <code>containerPort</code> combination from the task definition. If the task definition that your service task specifies uses the <code>awsvpc</code> network mode and a type SRV DNS record is used, you must specify either a <code>containerName</code> and <code>containerPort</code> combination or a <code>port</code> value. However, you can't specify both.</p>
92
+ * @public
93
+ */
94
+ containerName?: string | undefined;
95
+ /**
96
+ * <p>The port value to be used for your service discovery service. It's already specified in the task definition. If the task definition your service task specifies uses the <code>bridge</code> or <code>host</code> network mode, you must specify a <code>containerName</code> and <code>containerPort</code> combination from the task definition. If the task definition your service task specifies uses the <code>awsvpc</code> network mode and a type SRV DNS record is used, you must specify either a <code>containerName</code> and <code>containerPort</code> combination or a <code>port</code> value. However, you can't specify both.</p>
97
+ * @public
98
+ */
99
+ containerPort?: number | undefined;
100
+ }
101
+ /**
102
+ * <p>The tag specifications of an Amazon EBS volume.</p>
103
+ * @public
104
+ */
105
+ export interface EBSTagSpecification {
106
+ /**
107
+ * <p>The type of volume resource.</p>
108
+ * @public
109
+ */
110
+ resourceType: EBSResourceType | undefined;
111
+ /**
112
+ * <p>The tags applied to this Amazon EBS volume. <code>AmazonECSCreated</code> and <code>AmazonECSManaged</code> are reserved tags that can't be used.</p>
113
+ * @public
114
+ */
115
+ tags?: Tag[] | undefined;
116
+ /**
117
+ * <p>Determines whether to propagate the tags from the task definition to the Amazon EBS volume. Tags can only propagate to a <code>SERVICE</code> specified in <code>ServiceVolumeConfiguration</code>. If no value is specified, the tags aren't propagated.</p>
118
+ * @public
119
+ */
120
+ propagateTags?: PropagateTags | undefined;
121
+ }
122
+ /**
123
+ * <p>The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. For information about the supported launch types and operating systems, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volumes-configuration">Supported operating systems and launch types</a> in the<i> Amazon Elastic Container Service Developer Guide</i>.</p> <p>Many of these parameters map 1:1 with the Amazon EBS <code>CreateVolume</code> API request parameters.</p>
124
+ * @public
125
+ */
126
+ export interface ServiceManagedEBSVolumeConfiguration {
127
+ /**
128
+ * <p>Indicates whether the volume should be encrypted. If you turn on Region-level Amazon EBS encryption by default but set this value as <code>false</code>, the setting is overridden and the volume is encrypted with the KMS key specified for Amazon EBS encryption by default. This parameter maps 1:1 with the <code>Encrypted</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>.</p>
129
+ * @public
130
+ */
131
+ encrypted?: boolean | undefined;
132
+ /**
133
+ * <p>The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When a key is specified using this parameter, it overrides Amazon EBS default encryption or any KMS key that you specified for cluster-level managed storage encryption. This parameter maps 1:1 with the <code>KmsKeyId</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>. For more information about encrypting Amazon EBS volumes attached to tasks, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-kms-encryption.html">Encrypt data stored in Amazon EBS volumes attached to Amazon ECS tasks</a>.</p> <important> <p>Amazon Web Services authenticates the Amazon Web Services Key Management Service key asynchronously. Therefore, if you specify an ID, alias, or ARN that is invalid, the action can appear to complete, but eventually fails.</p> </important>
134
+ * @public
135
+ */
136
+ kmsKeyId?: string | undefined;
137
+ /**
138
+ * <p>The volume type. This parameter maps 1:1 with the <code>VolumeType</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html">Amazon EBS volume types</a> in the <i>Amazon EC2 User Guide</i>.</p> <p>The following are the supported volume types.</p> <ul> <li> <p>General Purpose SSD: <code>gp2</code>|<code>gp3</code> </p> </li> <li> <p>Provisioned IOPS SSD: <code>io1</code>|<code>io2</code> </p> </li> <li> <p>Throughput Optimized HDD: <code>st1</code> </p> </li> <li> <p>Cold HDD: <code>sc1</code> </p> </li> <li> <p>Magnetic: <code>standard</code> </p> <note> <p>The magnetic volume type is not supported on Fargate.</p> </note> </li> </ul>
139
+ * @public
140
+ */
141
+ volumeType?: string | undefined;
142
+ /**
143
+ * <p>The size of the volume in GiB. You must specify either a volume size or a snapshot ID. If you specify a snapshot ID, the snapshot size is used for the volume size by default. You can optionally specify a volume size greater than or equal to the snapshot size. This parameter maps 1:1 with the <code>Size</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>.</p> <p>The following are the supported volume size values for each volume type.</p> <ul> <li> <p> <code>gp2</code> and <code>gp3</code>: 1-16,384</p> </li> <li> <p> <code>io1</code> and <code>io2</code>: 4-16,384</p> </li> <li> <p> <code>st1</code> and <code>sc1</code>: 125-16,384</p> </li> <li> <p> <code>standard</code>: 1-1,024</p> </li> </ul>
144
+ * @public
145
+ */
146
+ sizeInGiB?: number | undefined;
147
+ /**
148
+ * <p>The snapshot that Amazon ECS uses to create volumes for attachment to tasks maintained by the service. You must specify either <code>snapshotId</code> or <code>sizeInGiB</code> in your volume configuration. This parameter maps 1:1 with the <code>SnapshotId</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>.</p>
149
+ * @public
150
+ */
151
+ snapshotId?: string | undefined;
152
+ /**
153
+ * <p>The rate, in MiB/s, at which data is fetched from a snapshot of an existing EBS volume to create new volumes for attachment to the tasks maintained by the service. This property can be specified only if you specify a <code>snapshotId</code>. For more information, see <a href="https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html">Initialize Amazon EBS volumes</a> in the <i>Amazon EBS User Guide</i>.</p>
154
+ * @public
155
+ */
156
+ volumeInitializationRate?: number | undefined;
157
+ /**
158
+ * <p>The number of I/O operations per second (IOPS). For <code>gp3</code>, <code>io1</code>, and <code>io2</code> volumes, this represents the number of IOPS that are provisioned for the volume. For <code>gp2</code> volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting.</p> <p>The following are the supported values for each volume type.</p> <ul> <li> <p> <code>gp3</code>: 3,000 - 16,000 IOPS</p> </li> <li> <p> <code>io1</code>: 100 - 64,000 IOPS</p> </li> <li> <p> <code>io2</code>: 100 - 256,000 IOPS</p> </li> </ul> <p>This parameter is required for <code>io1</code> and <code>io2</code> volume types. The default for <code>gp3</code> volumes is <code>3,000 IOPS</code>. This parameter is not supported for <code>st1</code>, <code>sc1</code>, or <code>standard</code> volume types.</p> <p>This parameter maps 1:1 with the <code>Iops</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>.</p>
159
+ * @public
160
+ */
161
+ iops?: number | undefined;
162
+ /**
163
+ * <p>The throughput to provision for a volume, in MiB/s, with a maximum of 1,000 MiB/s. This parameter maps 1:1 with the <code>Throughput</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>.</p> <important> <p>This parameter is only supported for the <code>gp3</code> volume type.</p> </important>
164
+ * @public
165
+ */
166
+ throughput?: number | undefined;
167
+ /**
168
+ * <p>The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This parameter maps 1:1 with the <code>TagSpecifications.N</code> parameter of the <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html">CreateVolume API</a> in the <i>Amazon EC2 API Reference</i>.</p>
169
+ * @public
170
+ */
171
+ tagSpecifications?: EBSTagSpecification[] | undefined;
172
+ /**
173
+ * <p>The ARN of the IAM role to associate with this volume. This is the Amazon ECS infrastructure IAM role that is used to manage your Amazon Web Services infrastructure. We recommend using the Amazon ECS-managed <code>AmazonECSInfrastructureRolePolicyForVolumes</code> IAM policy with this role. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/infrastructure_IAM_role.html">Amazon ECS infrastructure IAM role</a> in the <i>Amazon ECS Developer Guide</i>.</p>
174
+ * @public
175
+ */
176
+ roleArn: string | undefined;
177
+ /**
178
+ * <p>The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the tasks will fail to start.</p> <p>The available Linux filesystem types are <code>ext3</code>, <code>ext4</code>, and <code>xfs</code>. If no value is specified, the <code>xfs</code> filesystem type is used by default.</p> <p>The available Windows filesystem types are <code>NTFS</code>.</p>
179
+ * @public
180
+ */
181
+ filesystemType?: TaskFilesystemType | undefined;
182
+ }
183
+ /**
184
+ * <p>The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.</p>
185
+ * @public
186
+ */
187
+ export interface ServiceVolumeConfiguration {
188
+ /**
189
+ * <p>The name of the volume. This value must match the volume name from the <code>Volume</code> object in the task definition.</p>
190
+ * @public
191
+ */
192
+ name: string | undefined;
193
+ /**
194
+ * <p>The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are created.</p>
195
+ * @public
196
+ */
197
+ managedEBSVolume?: ServiceManagedEBSVolumeConfiguration | undefined;
198
+ }
199
+ /**
200
+ * <p>The advanced settings for VPC Lattice used in blue/green deployments. Specify the alternate target group and listener rules required for traffic shifting during blue/green deployments. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html">Required resources for Amazon ECS blue/green deployments</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
201
+ * @public
202
+ */
203
+ export interface VpcLatticeAdvancedConfiguration {
204
+ /**
205
+ * <p>The Amazon Resource Name (ARN) of the alternate target group associated with the VPC Lattice Configuration for Amazon ECS blue/green deployments.</p>
206
+ * @public
207
+ */
208
+ alternateTargetGroupArn?: string | undefined;
209
+ /**
210
+ * <p>The Amazon Resource Name (ARN) that identifies the production listener rule or listener for routing production traffic.</p>
211
+ * @public
212
+ */
213
+ productionListenerRule?: string | undefined;
214
+ /**
215
+ * <p>The Amazon Resource Name (ARN) that identifies the test listener rule or listener for routing test traffic.</p>
216
+ * @public
217
+ */
218
+ testListenerRule?: string | undefined;
219
+ }
220
+ /**
221
+ * <p>The VPC Lattice configuration for your service that holds the information for the target group(s) Amazon ECS tasks will be registered to.</p>
222
+ * @public
223
+ */
224
+ export interface VpcLatticeConfiguration {
225
+ /**
226
+ * <p>The ARN of the IAM role to associate with this VPC Lattice configuration. This is the Amazon ECS infrastructure IAM role that is used to manage your VPC Lattice infrastructure.</p>
227
+ * @public
228
+ */
229
+ roleArn: string | undefined;
230
+ /**
231
+ * <p>The full Amazon Resource Name (ARN) of the target group or groups associated with the VPC Lattice configuration that the Amazon ECS tasks will be registered to.</p>
232
+ * @public
233
+ */
234
+ targetGroupArn: string | undefined;
235
+ /**
236
+ * <p>The name of the port mapping to register in the VPC Lattice target group. This is the name of the <code>portMapping</code> you defined in your task definition.</p>
237
+ * @public
238
+ */
239
+ portName: string | undefined;
240
+ /**
241
+ * <p>The advanced settings for VPC Lattice used in blue/green deployments. Specify the alternate target group and listener rules required for traffic shifting during blue/green deployments. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-deployment-implementation.html">Required resources for Amazon ECS blue/green deployments</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
242
+ * @public
243
+ */
244
+ advancedConfiguration?: VpcLatticeAdvancedConfiguration | undefined;
245
+ }
246
+ /**
247
+ *
248
+ * @public
249
+ */
250
+ export interface CreateServiceRequest {
251
+ /**
252
+ * <p>The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed.</p>
253
+ * @public
254
+ */
255
+ cluster?: string | undefined;
256
+ /**
257
+ * <p>The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster, but you can have similarly named services in multiple clusters within a Region or across multiple Regions.</p>
258
+ * @public
259
+ */
260
+ serviceName: string | undefined;
261
+ /**
262
+ * <p>The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full ARN of the task definition to run in your service. If a <code>revision</code> isn't specified, the latest <code>ACTIVE</code> revision is used.</p> <p>A task definition must be specified if the service uses either the <code>ECS</code> or <code>CODE_DEPLOY</code> deployment controllers.</p> <p>For more information about deployment types, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-types.html">Amazon ECS deployment types</a>.</p>
263
+ * @public
264
+ */
265
+ taskDefinition?: string | undefined;
266
+ /**
267
+ * <p>Indicates whether to use Availability Zone rebalancing for the service.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html">Balancing an Amazon ECS service across Availability Zones</a> in the <i> <i>Amazon Elastic Container Service Developer Guide</i> </i>.</p> <p>The default behavior of <code>AvailabilityZoneRebalancing</code> differs between create and update requests:</p> <ul> <li> <p>For create service requests, when no value is specified for <code>AvailabilityZoneRebalancing</code>, Amazon ECS defaults the value to <code>ENABLED</code>.</p> </li> <li> <p>For update service requests, when no value is specified for <code>AvailabilityZoneRebalancing</code>, Amazon ECS defaults to the existing service’s <code>AvailabilityZoneRebalancing</code> value. If the service never had an <code>AvailabilityZoneRebalancing</code> value set, Amazon ECS treats this as <code>DISABLED</code>.</p> </li> </ul>
268
+ * @public
269
+ */
270
+ availabilityZoneRebalancing?: AvailabilityZoneRebalancing | undefined;
271
+ /**
272
+ * <p>A load balancer object representing the load balancers to use with your service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html">Service load balancing</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>If the service uses the <code>ECS</code> deployment controller and using either an Application Load Balancer or Network Load Balancer, you must specify one or more target group ARNs to attach to the service. The service-linked role is required for services that use multiple target groups. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html">Using service-linked roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>If the service uses the <code>CODE_DEPLOY</code> deployment controller, the service is required to use either an Application Load Balancer or Network Load Balancer. When creating an CodeDeploy deployment group, you specify two target groups (referred to as a <code>targetGroupPair</code>). During a deployment, CodeDeploy determines which task set in your service has the status <code>PRIMARY</code>, and it associates one target group with it. Then, it also associates the other target group with the replacement task set. The load balancer can also have up to two listeners: a required listener for production traffic and an optional listener that you can use to perform validation tests with Lambda functions before routing production traffic to it.</p> <p>If you use the <code>CODE_DEPLOY</code> deployment controller, these values can be changed when updating the service.</p> <p>For Application Load Balancers and Network Load Balancers, this object must contain the load balancer target group ARN, the container name, and the container port to access from the load balancer. The container name must be as it appears in a container definition. The load balancer name parameter must be omitted. When a task from this service is placed on a container instance, the container instance and port combination is registered as a target in the target group that's specified here.</p> <p>For Classic Load Balancers, this object must contain the load balancer name, the container name , and the container port to access from the load balancer. The container name must be as it appears in a container definition. The target group ARN parameter must be omitted. When a task from this service is placed on a container instance, the container instance is registered with the load balancer that's specified here.</p> <p>Services with tasks that use the <code>awsvpc</code> network mode (for example, those with the Fargate launch type) only support Application Load Balancers and Network Load Balancers. Classic Load Balancers aren't supported. Also, when you create any target groups for these services, you must choose <code>ip</code> as the target type, not <code>instance</code>. This is because tasks that use the <code>awsvpc</code> network mode are associated with an elastic network interface, not an Amazon EC2 instance.</p>
273
+ * @public
274
+ */
275
+ loadBalancers?: LoadBalancer[] | undefined;
276
+ /**
277
+ * <p>The details of the service discovery registry to associate with this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>.</p> <note> <p>Each service may be associated with one service registry. Multiple service registries for each service isn't supported.</p> </note>
278
+ * @public
279
+ */
280
+ serviceRegistries?: ServiceRegistry[] | undefined;
281
+ /**
282
+ * <p>The number of instantiations of the specified task definition to place and keep running in your service.</p> <p>This is required if <code>schedulingStrategy</code> is <code>REPLICA</code> or isn't specified. If <code>schedulingStrategy</code> is <code>DAEMON</code> then this isn't required.</p>
283
+ * @public
284
+ */
285
+ desiredCount?: number | undefined;
286
+ /**
287
+ * <p>An identifier that you provide to ensure the idempotency of the request. It must be unique and is case sensitive. Up to 36 ASCII characters in the range of 33-126 (inclusive) are allowed.</p>
288
+ * @public
289
+ */
290
+ clientToken?: string | undefined;
291
+ /**
292
+ * <p>The infrastructure that you run your service on. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <note> <p>If you want to use Amazon ECS Managed Instances, you must use the <code>capacityProviderStrategy</code> request parameter and omit the <code>launchType</code> request parameter.</p> </note> <p>The <code>FARGATE</code> launch type runs your tasks on Fargate On-Demand infrastructure.</p> <note> <p>Fargate Spot infrastructure is available for use but a capacity provider strategy must be used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-capacity-providers.html">Fargate capacity providers</a> in the <i>Amazon ECS Developer Guide</i>.</p> </note> <p>The <code>EC2</code> launch type runs your tasks on Amazon EC2 instances registered to your cluster.</p> <p>The <code>EXTERNAL</code> launch type runs your tasks on your on-premises server or virtual machine (VM) capacity registered to your cluster.</p> <p>A service can use either a launch type or a capacity provider strategy. If a <code>launchType</code> is specified, the <code>capacityProviderStrategy</code> parameter must be omitted.</p>
293
+ * @public
294
+ */
295
+ launchType?: LaunchType | undefined;
296
+ /**
297
+ * <p>The capacity provider strategy to use for the service.</p> <note> <p>If you want to use Amazon ECS Managed Instances, you must use the <code>capacityProviderStrategy</code> request parameter and omit the <code>launchType</code> request parameter.</p> </note> <p>If a <code>capacityProviderStrategy</code> is specified, the <code>launchType</code> parameter must be omitted. If no <code>capacityProviderStrategy</code> or <code>launchType</code> is specified, the <code>defaultCapacityProviderStrategy</code> for the cluster is used.</p> <p>A capacity provider strategy can contain a maximum of 20 capacity providers.</p>
298
+ * @public
299
+ */
300
+ capacityProviderStrategy?: CapacityProviderStrategyItem[] | undefined;
301
+ /**
302
+ * <p>The platform version that your tasks in the service are running on. A platform version is specified only for tasks using the Fargate launch type. If one isn't specified, the <code>LATEST</code> platform version is used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
303
+ * @public
304
+ */
305
+ platformVersion?: string | undefined;
306
+ /**
307
+ * <p>The name or full Amazon Resource Name (ARN) of the IAM role that allows Amazon ECS to make calls to your load balancer on your behalf. This parameter is only permitted if you are using a load balancer with your service and your task definition doesn't use the <code>awsvpc</code> network mode. If you specify the <code>role</code> parameter, you must also specify a load balancer object with the <code>loadBalancers</code> parameter.</p> <important> <p>If your account has already created the Amazon ECS service-linked role, that role is used for your service unless you specify a role here. The service-linked role is required if your task definition uses the <code>awsvpc</code> network mode or if the service is configured to use service discovery, an external deployment controller, multiple target groups, or Elastic Inference accelerators in which case you don't specify a role here. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using-service-linked-roles.html">Using service-linked roles for Amazon ECS</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> </important> <p>If your specified role has a path other than <code>/</code>, then you must either specify the full role ARN (this is recommended) or prefix the role name with the path. For example, if a role with the name <code>bar</code> has a path of <code>/foo/</code> then you would specify <code>/foo/bar</code> as the role name. For more information, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names">Friendly names and paths</a> in the <i>IAM User Guide</i>.</p>
308
+ * @public
309
+ */
310
+ role?: string | undefined;
311
+ /**
312
+ * <p>Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.</p>
313
+ * @public
314
+ */
315
+ deploymentConfiguration?: DeploymentConfiguration | undefined;
316
+ /**
317
+ * <p>An array of placement constraint objects to use for tasks in your service. You can specify a maximum of 10 constraints for each task. This limit includes constraints in the task definition and those specified at runtime.</p>
318
+ * @public
319
+ */
320
+ placementConstraints?: PlacementConstraint[] | undefined;
321
+ /**
322
+ * <p>The placement strategy objects to use for tasks in your service. You can specify a maximum of 5 strategy rules for each service.</p>
323
+ * @public
324
+ */
325
+ placementStrategy?: PlacementStrategy[] | undefined;
326
+ /**
327
+ * <p>The network configuration for the service. This parameter is required for task definitions that use the <code>awsvpc</code> network mode to receive their own elastic network interface, and it isn't supported for other network modes. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html">Task networking</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
328
+ * @public
329
+ */
330
+ networkConfiguration?: NetworkConfiguration | undefined;
331
+ /**
332
+ * <p>The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you do not specify a health check grace period value, the default value of 0 is used. If you do not use any of the health checks, then <code>healthCheckGracePeriodSeconds</code> is unused.</p> <p>If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.</p>
333
+ * @public
334
+ */
335
+ healthCheckGracePeriodSeconds?: number | undefined;
336
+ /**
337
+ * <p>The scheduling strategy to use for the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Services</a>.</p> <p>There are two service scheduler strategies available:</p> <ul> <li> <p> <code>REPLICA</code>-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions. This scheduler strategy is required if the service uses the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code> deployment controller types.</p> </li> <li> <p> <code>DAEMON</code>-The daemon scheduling strategy deploys exactly one task on each active container instance that meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks and will stop tasks that don't meet the placement constraints. When you're using this strategy, you don't need to specify a desired number of tasks, a task placement strategy, or use Service Auto Scaling policies.</p> <note> <p>Tasks using the Fargate launch type or the <code>CODE_DEPLOY</code> or <code>EXTERNAL</code> deployment controller types don't support the <code>DAEMON</code> scheduling strategy.</p> </note> </li> </ul>
338
+ * @public
339
+ */
340
+ schedulingStrategy?: SchedulingStrategy | undefined;
341
+ /**
342
+ * <p>The deployment controller to use for the service. If no deployment controller is specified, the default value of <code>ECS</code> is used.</p>
343
+ * @public
344
+ */
345
+ deploymentController?: DeploymentController | undefined;
346
+ /**
347
+ * <p>The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value, both of which you define. When a service is deleted, the tags are deleted as well.</p> <p>The following basic restrictions apply to tags:</p> <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li> <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.</p> </li> </ul>
348
+ * @public
349
+ */
350
+ tags?: Tag[] | undefined;
351
+ /**
352
+ * <p>Specifies whether to turn on Amazon ECS managed tags for the tasks within the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging your Amazon ECS resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>When you use Amazon ECS managed tags, you must set the <code>propagateTags</code> request parameter.</p>
353
+ * @public
354
+ */
355
+ enableECSManagedTags?: boolean | undefined;
356
+ /**
357
+ * <p>Specifies whether to propagate the tags from the task definition to the task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the task during task creation. To add tags to a task after task creation, use the <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html">TagResource</a> API action.</p> <p>You must set this to a value other than <code>NONE</code> when you use Cost Explorer. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/usage-reports.html">Amazon ECS usage reports</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>The default is <code>NONE</code>.</p>
358
+ * @public
359
+ */
360
+ propagateTags?: PropagateTags | undefined;
361
+ /**
362
+ * <p>Determines whether the execute command functionality is turned on for the service. If <code>true</code>, this enables execute command functionality on all containers in the service tasks.</p>
363
+ * @public
364
+ */
365
+ enableExecuteCommand?: boolean | undefined;
366
+ /**
367
+ * <p>The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.</p> <p>Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html">Service Connect</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
368
+ * @public
369
+ */
370
+ serviceConnectConfiguration?: ServiceConnectConfiguration | undefined;
371
+ /**
372
+ * <p>The configuration for a volume specified in the task definition as a volume that is configured at launch time. Currently, the only supported volume type is an Amazon EBS volume.</p>
373
+ * @public
374
+ */
375
+ volumeConfigurations?: ServiceVolumeConfiguration[] | undefined;
376
+ /**
377
+ * <p>The VPC Lattice configuration for the service being created.</p>
378
+ * @public
379
+ */
380
+ vpcLatticeConfigurations?: VpcLatticeConfiguration[] | undefined;
381
+ /**
382
+ * <p>The gateway connectors that attach the service to a gateway ingress path. You can specify at most one gateway connector.</p>
383
+ * @public
384
+ */
385
+ gatewayConnectors?: GatewayConnector[] | undefined;
386
+ /**
387
+ * <p>The optional monitoring configuration for the service, which defines the resolution for the service-level <code>CPUUtilization</code> and <code>MemoryUtilization</code> Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of <code>60</code> seconds.</p>
388
+ * @public
389
+ */
390
+ monitoring?: MonitoringConfiguration | undefined;
391
+ }
392
+ /**
393
+ * <p>The summary of the current service revision configuration</p>
394
+ * @public
395
+ */
396
+ export interface ServiceCurrentRevisionSummary {
397
+ /**
398
+ * <p>The ARN of the current service revision.</p>
399
+ * @public
400
+ */
401
+ arn?: string | undefined;
402
+ /**
403
+ * <p>The number of requested tasks in the current service revision</p>
404
+ * @public
405
+ */
406
+ requestedTaskCount?: number | undefined;
407
+ /**
408
+ * <p>The number of running tasks of the current service revision</p>
409
+ * @public
410
+ */
411
+ runningTaskCount?: number | undefined;
412
+ /**
413
+ * <p>The number of pending tasks in the current service revision</p>
414
+ * @public
415
+ */
416
+ pendingTaskCount?: number | undefined;
417
+ }
418
+ /**
419
+ * <p>The amount of ephemeral storage to allocate for the deployment.</p>
420
+ * @public
421
+ */
422
+ export interface DeploymentEphemeralStorage {
423
+ /**
424
+ * <p>Specify an Key Management Service key ID to encrypt the ephemeral storage for deployment.</p>
425
+ * @public
426
+ */
427
+ kmsKeyId?: string | undefined;
428
+ }
429
+ /**
430
+ * <p>The Service Connect resource. Each configuration maps a discovery name to a Cloud Map service name. The data is stored in Cloud Map as part of the Service Connect configuration for each discovery name of this Amazon ECS service.</p> <p>A task can resolve the <code>dnsName</code> for each of the <code>clientAliases</code> of a service. However a task can't resolve the discovery names. If you want to connect to a service, refer to the <code>ServiceConnectConfiguration</code> of that service for the list of <code>clientAliases</code> that you can use.</p>
431
+ * @public
432
+ */
433
+ export interface ServiceConnectServiceResource {
434
+ /**
435
+ * <p>The discovery name of this Service Connect resource.</p> <p>The <code>discoveryName</code> is the name of the new Cloud Map service that Amazon ECS creates for this Amazon ECS service. This must be unique within the Cloud Map namespace. The name can contain up to 64 characters. The name can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen.</p> <p>If the <code>discoveryName</code> isn't specified, the port mapping name from the task definition is used in <code>portName.namespace</code>.</p>
436
+ * @public
437
+ */
438
+ discoveryName?: string | undefined;
439
+ /**
440
+ * <p>The Amazon Resource Name (ARN) for the service in Cloud Map that matches the discovery name for this Service Connect resource. You can use this ARN in other integrations with Cloud Map. However, Service Connect can't ensure connectivity outside of Amazon ECS.</p>
441
+ * @public
442
+ */
443
+ discoveryArn?: string | undefined;
444
+ }
445
+ /**
446
+ * <p>The details of an Amazon ECS service deployment. This is used only when a service uses the <code>ECS</code> deployment controller type.</p>
447
+ * @public
448
+ */
449
+ export interface Deployment {
450
+ /**
451
+ * <p>The ID of the deployment.</p>
452
+ * @public
453
+ */
454
+ id?: string | undefined;
455
+ /**
456
+ * <p>The status of the deployment. The following describes each state.</p> <dl> <dt>PRIMARY</dt> <dd> <p>The most recent deployment of a service.</p> </dd> <dt>ACTIVE</dt> <dd> <p>A service deployment that still has running tasks, but are in the process of being replaced with a new <code>PRIMARY</code> deployment.</p> </dd> <dt>INACTIVE</dt> <dd> <p>A deployment that has been completely replaced.</p> </dd> </dl>
457
+ * @public
458
+ */
459
+ status?: string | undefined;
460
+ /**
461
+ * <p>The most recent task definition that was specified for the tasks in the service to use.</p>
462
+ * @public
463
+ */
464
+ taskDefinition?: string | undefined;
465
+ /**
466
+ * <p>The most recent desired count of tasks that was specified for the service to deploy or maintain.</p>
467
+ * @public
468
+ */
469
+ desiredCount?: number | undefined;
470
+ /**
471
+ * <p>The number of tasks in the deployment that are in the <code>PENDING</code> status.</p>
472
+ * @public
473
+ */
474
+ pendingCount?: number | undefined;
475
+ /**
476
+ * <p>The number of tasks in the deployment that are in the <code>RUNNING</code> status.</p>
477
+ * @public
478
+ */
479
+ runningCount?: number | undefined;
480
+ /**
481
+ * <p>The number of consecutively failed tasks in the deployment. A task is considered a failure if the service scheduler can't launch the task, the task doesn't transition to a <code>RUNNING</code> state, or if it fails any of its defined health checks and is stopped.</p> <note> <p>Once a service deployment has one or more successfully running tasks, the failed task count resets to zero and stops being evaluated.</p> </note>
482
+ * @public
483
+ */
484
+ failedTasks?: number | undefined;
485
+ /**
486
+ * <p>The Unix timestamp for the time when the service deployment was created.</p>
487
+ * @public
488
+ */
489
+ createdAt?: Date | undefined;
490
+ /**
491
+ * <p>The Unix timestamp for the time when the service deployment was last updated.</p>
492
+ * @public
493
+ */
494
+ updatedAt?: Date | undefined;
495
+ /**
496
+ * <p>The capacity provider strategy that the deployment is using.</p>
497
+ * @public
498
+ */
499
+ capacityProviderStrategy?: CapacityProviderStrategyItem[] | undefined;
500
+ /**
501
+ * <p>The launch type the tasks in the service are using. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS Launch Types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
502
+ * @public
503
+ */
504
+ launchType?: LaunchType | undefined;
505
+ /**
506
+ * <p>The platform version that your tasks in the service run on. A platform version is only specified for tasks using the Fargate launch type. If one isn't specified, the <code>LATEST</code> platform version is used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
507
+ * @public
508
+ */
509
+ platformVersion?: string | undefined;
510
+ /**
511
+ * <p>The operating system that your tasks in the service, or tasks are running on. A platform family is specified only for tasks using the Fargate launch type. </p> <p> All tasks that run as part of this service must use the same <code>platformFamily</code> value as the service, for example, <code> LINUX.</code>.</p>
512
+ * @public
513
+ */
514
+ platformFamily?: string | undefined;
515
+ /**
516
+ * <p>The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.</p>
517
+ * @public
518
+ */
519
+ networkConfiguration?: NetworkConfiguration | undefined;
520
+ /**
521
+ * <note> <p>The <code>rolloutState</code> of a service is only returned for services that use the rolling update (<code>ECS</code>) deployment type that aren't behind a Classic Load Balancer.</p> </note> <p>The rollout state of the deployment. When a service deployment is started, it begins in an <code>IN_PROGRESS</code> state. When the service reaches a steady state, the deployment transitions to a <code>COMPLETED</code> state. If the service fails to reach a steady state and circuit breaker is turned on, the deployment transitions to a <code>FAILED</code> state. A deployment in <code>FAILED</code> state doesn't launch any new tasks. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeploymentCircuitBreaker.html">DeploymentCircuitBreaker</a>.</p>
522
+ * @public
523
+ */
524
+ rolloutState?: DeploymentRolloutState | undefined;
525
+ /**
526
+ * <p>A description of the rollout state of a deployment.</p>
527
+ * @public
528
+ */
529
+ rolloutStateReason?: string | undefined;
530
+ /**
531
+ * <p>The details of the Service Connect configuration that's used by this deployment. Compare the configuration between multiple deployments when troubleshooting issues with new deployments.</p> <p>The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.</p> <p>Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html">Service Connect</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
532
+ * @public
533
+ */
534
+ serviceConnectConfiguration?: ServiceConnectConfiguration | undefined;
535
+ /**
536
+ * <p>The list of Service Connect resources that are associated with this deployment. Each list entry maps a discovery name to a Cloud Map service name.</p>
537
+ * @public
538
+ */
539
+ serviceConnectResources?: ServiceConnectServiceResource[] | undefined;
540
+ /**
541
+ * <p>The details of the volume that was <code>configuredAtLaunch</code>. You can configure different settings like the size, throughput, volumeType, and ecryption in <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html">ServiceManagedEBSVolumeConfiguration</a>. The <code>name</code> of the volume must match the <code>name</code> from the task definition.</p>
542
+ * @public
543
+ */
544
+ volumeConfigurations?: ServiceVolumeConfiguration[] | undefined;
545
+ /**
546
+ * <p>The Fargate ephemeral storage settings for the deployment.</p>
547
+ * @public
548
+ */
549
+ fargateEphemeralStorage?: DeploymentEphemeralStorage | undefined;
550
+ /**
551
+ * <p>The VPC Lattice configuration for the service deployment.</p>
552
+ * @public
553
+ */
554
+ vpcLatticeConfigurations?: VpcLatticeConfiguration[] | undefined;
555
+ }
556
+ /**
557
+ * <p>The details for an event that's associated with a service.</p>
558
+ * @public
559
+ */
560
+ export interface ServiceEvent {
561
+ /**
562
+ * <p>The ID string for the event.</p>
563
+ * @public
564
+ */
565
+ id?: string | undefined;
566
+ /**
567
+ * <p>The Unix timestamp for the time when the event was triggered.</p>
568
+ * @public
569
+ */
570
+ createdAt?: Date | undefined;
571
+ /**
572
+ * <p>The event message.</p>
573
+ * @public
574
+ */
575
+ message?: string | undefined;
576
+ }
577
+ /**
578
+ * <p>A floating-point percentage of the desired number of tasks to place and keep running in the task set.</p>
579
+ * @public
580
+ */
581
+ export interface Scale {
582
+ /**
583
+ * <p>The value, specified as a percent total of a service's <code>desiredCount</code>, to scale the task set. Accepted values are numbers between 0 and 100.</p>
584
+ * @public
585
+ */
586
+ value?: number | undefined;
587
+ /**
588
+ * <p>The unit of measure for the scale value.</p>
589
+ * @public
590
+ */
591
+ unit?: ScaleUnit | undefined;
592
+ }
593
+ /**
594
+ * <p>Information about a set of Amazon ECS tasks in either an CodeDeploy or an <code>EXTERNAL</code> deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.</p>
595
+ * @public
596
+ */
597
+ export interface TaskSet {
598
+ /**
599
+ * <p>The ID of the task set.</p>
600
+ * @public
601
+ */
602
+ id?: string | undefined;
603
+ /**
604
+ * <p>The Amazon Resource Name (ARN) of the task set.</p>
605
+ * @public
606
+ */
607
+ taskSetArn?: string | undefined;
608
+ /**
609
+ * <p>The Amazon Resource Name (ARN) of the service the task set exists in.</p>
610
+ * @public
611
+ */
612
+ serviceArn?: string | undefined;
613
+ /**
614
+ * <p>The Amazon Resource Name (ARN) of the cluster that the service that hosts the task set exists in.</p>
615
+ * @public
616
+ */
617
+ clusterArn?: string | undefined;
618
+ /**
619
+ * <p>The tag specified when a task set is started. If an CodeDeploy deployment created the task set, the <code>startedBy</code> parameter is <code>CODE_DEPLOY</code>. If an external deployment created the task set, the <code>startedBy</code> field isn't used.</p>
620
+ * @public
621
+ */
622
+ startedBy?: string | undefined;
623
+ /**
624
+ * <p>The external ID associated with the task set.</p> <p>If an CodeDeploy deployment created a task set, the <code>externalId</code> parameter contains the CodeDeploy deployment ID.</p> <p>If a task set is created for an external deployment and is associated with a service discovery registry, the <code>externalId</code> parameter contains the <code>ECS_TASK_SET_EXTERNAL_ID</code> Cloud Map attribute.</p>
625
+ * @public
626
+ */
627
+ externalId?: string | undefined;
628
+ /**
629
+ * <p>The status of the task set. The following describes each state.</p> <dl> <dt>PRIMARY</dt> <dd> <p>The task set is serving production traffic.</p> </dd> <dt>ACTIVE</dt> <dd> <p>The task set isn't serving production traffic.</p> </dd> <dt>DRAINING</dt> <dd> <p>The tasks in the task set are being stopped, and their corresponding targets are being deregistered from their target group.</p> </dd> </dl>
630
+ * @public
631
+ */
632
+ status?: string | undefined;
633
+ /**
634
+ * <p>The task definition that the task set is using.</p>
635
+ * @public
636
+ */
637
+ taskDefinition?: string | undefined;
638
+ /**
639
+ * <p>The computed desired count for the task set. This is calculated by multiplying the service's <code>desiredCount</code> by the task set's <code>scale</code> percentage. The result is always rounded up. For example, if the computed desired count is 1.2, it rounds up to 2 tasks.</p>
640
+ * @public
641
+ */
642
+ computedDesiredCount?: number | undefined;
643
+ /**
644
+ * <p>The number of tasks in the task set that are in the <code>PENDING</code> status during a deployment. A task in the <code>PENDING</code> state is preparing to enter the <code>RUNNING</code> state. A task set enters the <code>PENDING</code> status when it launches for the first time or when it's restarted after being in the <code>STOPPED</code> state.</p>
645
+ * @public
646
+ */
647
+ pendingCount?: number | undefined;
648
+ /**
649
+ * <p>The number of tasks in the task set that are in the <code>RUNNING</code> status during a deployment. A task in the <code>RUNNING</code> state is running and ready for use.</p>
650
+ * @public
651
+ */
652
+ runningCount?: number | undefined;
653
+ /**
654
+ * <p>The Unix timestamp for the time when the task set was created.</p>
655
+ * @public
656
+ */
657
+ createdAt?: Date | undefined;
658
+ /**
659
+ * <p>The Unix timestamp for the time when the task set was last updated.</p>
660
+ * @public
661
+ */
662
+ updatedAt?: Date | undefined;
663
+ /**
664
+ * <p>The launch type the tasks in the task set are using. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html">Amazon ECS launch types</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
665
+ * @public
666
+ */
667
+ launchType?: LaunchType | undefined;
668
+ /**
669
+ * <p>The capacity provider strategy that are associated with the task set.</p>
670
+ * @public
671
+ */
672
+ capacityProviderStrategy?: CapacityProviderStrategyItem[] | undefined;
673
+ /**
674
+ * <p>The Fargate platform version where the tasks in the task set are running. A platform version is only specified for tasks run on Fargate. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">Fargate platform versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
675
+ * @public
676
+ */
677
+ platformVersion?: string | undefined;
678
+ /**
679
+ * <p>The operating system that your tasks in the set are running on. A platform family is specified only for tasks that use the Fargate launch type. </p> <p> All tasks in the set must have the same value.</p>
680
+ * @public
681
+ */
682
+ platformFamily?: string | undefined;
683
+ /**
684
+ * <p>The network configuration for the task set.</p>
685
+ * @public
686
+ */
687
+ networkConfiguration?: NetworkConfiguration | undefined;
688
+ /**
689
+ * <p>Details on a load balancer that are used with a task set.</p>
690
+ * @public
691
+ */
692
+ loadBalancers?: LoadBalancer[] | undefined;
693
+ /**
694
+ * <p>The details for the service discovery registries to assign to this task set. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service discovery</a>.</p>
695
+ * @public
696
+ */
697
+ serviceRegistries?: ServiceRegistry[] | undefined;
698
+ /**
699
+ * <p>A floating-point percentage of your desired number of tasks to place and keep running in the task set.</p>
700
+ * @public
701
+ */
702
+ scale?: Scale | undefined;
703
+ /**
704
+ * <p>The stability status. This indicates whether the task set has reached a steady state. If the following conditions are met, the task set are in <code>STEADY_STATE</code>:</p> <ul> <li> <p>The task <code>runningCount</code> is equal to the <code>computedDesiredCount</code>.</p> </li> <li> <p>The <code>pendingCount</code> is <code>0</code>.</p> </li> <li> <p>There are no tasks that are running on container instances in the <code>DRAINING</code> status.</p> </li> <li> <p>All tasks are reporting a healthy status from the load balancers, service discovery, and container health checks.</p> </li> </ul> <p>If any of those conditions aren't met, the stability status returns <code>STABILIZING</code>.</p>
705
+ * @public
706
+ */
707
+ stabilityStatus?: StabilityStatus | undefined;
708
+ /**
709
+ * <p>The Unix timestamp for the time when the task set stability status was retrieved.</p>
710
+ * @public
711
+ */
712
+ stabilityStatusAt?: Date | undefined;
713
+ /**
714
+ * <p>The metadata that you apply to the task set to help you categorize and organize them. Each tag consists of a key and an optional value. You define both.</p> <p>The following basic restrictions apply to tags:</p> <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li> <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.</p> </li> </ul>
715
+ * @public
716
+ */
717
+ tags?: Tag[] | undefined;
718
+ /**
719
+ * <p>The Fargate ephemeral storage settings for the task set.</p>
720
+ * @public
721
+ */
722
+ fargateEphemeralStorage?: DeploymentEphemeralStorage | undefined;
723
+ }
724
+ /**
725
+ * <p>Details on a service within a cluster.</p>
726
+ * @public
727
+ */
728
+ export interface Service {
729
+ /**
730
+ * <p>The ARN that identifies the service. For more information about the ARN format, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids">Amazon Resource Name (ARN)</a> in the <i>Amazon ECS Developer Guide</i>.</p>
731
+ * @public
732
+ */
733
+ serviceArn?: string | undefined;
734
+ /**
735
+ * <p>The name of your service. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. Service names must be unique within a cluster. However, you can have similarly named services in multiple clusters within a Region or across multiple Regions.</p>
736
+ * @public
737
+ */
738
+ serviceName?: string | undefined;
739
+ /**
740
+ * <p>The Amazon Resource Name (ARN) of the cluster that hosts the service.</p>
741
+ * @public
742
+ */
743
+ clusterArn?: string | undefined;
744
+ /**
745
+ * <p>A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and the container port to access from the load balancer. The container name is as it appears in a container definition.</p>
746
+ * @public
747
+ */
748
+ loadBalancers?: LoadBalancer[] | undefined;
749
+ /**
750
+ * <p>The details for the service discovery registries to assign to this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a>.</p>
751
+ * @public
752
+ */
753
+ serviceRegistries?: ServiceRegistry[] | undefined;
754
+ /**
755
+ * <p>The status of the service. The valid values are <code>ACTIVE</code>, <code>DRAINING</code>, or <code>INACTIVE</code>.</p>
756
+ * @public
757
+ */
758
+ status?: string | undefined;
759
+ /**
760
+ * <p>The desired number of instantiations of the task definition to keep running on the service. This value is specified when the service is created with <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html">CreateService</a> , and it can be modified with <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html">UpdateService</a>.</p>
761
+ * @public
762
+ */
763
+ desiredCount?: number | undefined;
764
+ /**
765
+ * <p>The number of tasks in the cluster that are in the <code>RUNNING</code> state.</p>
766
+ * @public
767
+ */
768
+ runningCount?: number | undefined;
769
+ /**
770
+ * <p>The number of tasks in the cluster that are in the <code>PENDING</code> state.</p>
771
+ * @public
772
+ */
773
+ pendingCount?: number | undefined;
774
+ /**
775
+ * <p>The launch type the service is using. When using the DescribeServices API, this field is omitted if the service was created using a capacity provider strategy.</p>
776
+ * @public
777
+ */
778
+ launchType?: LaunchType | undefined;
779
+ /**
780
+ * <p>The capacity provider strategy the service uses. When using the DescribeServices API, this field is omitted if the service was created using a launch type.</p>
781
+ * @public
782
+ */
783
+ capacityProviderStrategy?: CapacityProviderStrategyItem[] | undefined;
784
+ /**
785
+ * <p>The platform version to run your service on. A platform version is only specified for tasks that are hosted on Fargate. If one isn't specified, the <code>LATEST</code> platform version is used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
786
+ * @public
787
+ */
788
+ platformVersion?: string | undefined;
789
+ /**
790
+ * <p>The operating system that your tasks in the service run on. A platform family is specified only for tasks using the Fargate launch type. </p> <p> All tasks that run as part of this service must use the same <code>platformFamily</code> value as the service (for example, <code>LINUX</code>).</p>
791
+ * @public
792
+ */
793
+ platformFamily?: string | undefined;
794
+ /**
795
+ * <p>The task definition to use for tasks in the service. This value is specified when the service is created with <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html">CreateService</a>, and it can be modified with <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html">UpdateService</a>.</p>
796
+ * @public
797
+ */
798
+ taskDefinition?: string | undefined;
799
+ /**
800
+ * <p>Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.</p>
801
+ * @public
802
+ */
803
+ deploymentConfiguration?: DeploymentConfiguration | undefined;
804
+ /**
805
+ * <p>Information about a set of Amazon ECS tasks in either an CodeDeploy or an <code>EXTERNAL</code> deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic.</p>
806
+ * @public
807
+ */
808
+ taskSets?: TaskSet[] | undefined;
809
+ /**
810
+ * <p>The current state of deployments for the service.</p>
811
+ * @public
812
+ */
813
+ deployments?: Deployment[] | undefined;
814
+ /**
815
+ * <p>The ARN of the IAM role that's associated with the service. It allows the Amazon ECS container agent to register container instances with an Elastic Load Balancing load balancer.</p>
816
+ * @public
817
+ */
818
+ roleArn?: string | undefined;
819
+ /**
820
+ * <p>The event stream for your service. A maximum of 100 of the latest events are displayed.</p>
821
+ * @public
822
+ */
823
+ events?: ServiceEvent[] | undefined;
824
+ /**
825
+ * <p>The Unix timestamp for the time when the service was created.</p>
826
+ * @public
827
+ */
828
+ createdAt?: Date | undefined;
829
+ /**
830
+ * <p>The ARN of the current service deployment.</p>
831
+ * @public
832
+ */
833
+ currentServiceDeployment?: string | undefined;
834
+ /**
835
+ * <p>The list of the service revisions.</p>
836
+ * @public
837
+ */
838
+ currentServiceRevisions?: ServiceCurrentRevisionSummary[] | undefined;
839
+ /**
840
+ * <p>The placement constraints for the tasks in the service.</p>
841
+ * @public
842
+ */
843
+ placementConstraints?: PlacementConstraint[] | undefined;
844
+ /**
845
+ * <p>The placement strategy that determines how tasks for the service are placed.</p>
846
+ * @public
847
+ */
848
+ placementStrategy?: PlacementStrategy[] | undefined;
849
+ /**
850
+ * <p>The VPC subnet and security group configuration for tasks that receive their own elastic network interface by using the <code>awsvpc</code> networking mode.</p>
851
+ * @public
852
+ */
853
+ networkConfiguration?: NetworkConfiguration | undefined;
854
+ /**
855
+ * <p>The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started.</p> <p>If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.</p>
856
+ * @public
857
+ */
858
+ healthCheckGracePeriodSeconds?: number | undefined;
859
+ /**
860
+ * <p>The scheduling strategy to use for the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html">Services</a>.</p> <p>There are two service scheduler strategies available.</p> <ul> <li> <p> <code>REPLICA</code>-The replica scheduling strategy places and maintains the desired number of tasks across your cluster. By default, the service scheduler spreads tasks across Availability Zones. You can use task placement strategies and constraints to customize task placement decisions.</p> </li> <li> <p> <code>DAEMON</code>-The daemon scheduling strategy deploys exactly one task on each active container instance. This task meets all of the task placement constraints that you specify in your cluster. The service scheduler also evaluates the task placement constraints for running tasks. It stop tasks that don't meet the placement constraints.</p> <note> <p>Fargate tasks don't support the <code>DAEMON</code> scheduling strategy.</p> </note> </li> </ul>
861
+ * @public
862
+ */
863
+ schedulingStrategy?: SchedulingStrategy | undefined;
864
+ /**
865
+ * <p>The deployment controller type the service is using. </p>
866
+ * @public
867
+ */
868
+ deploymentController?: DeploymentController | undefined;
869
+ /**
870
+ * <p>The metadata that you apply to the service to help you categorize and organize them. Each tag consists of a key and an optional value. You define bot the key and value.</p> <p>The following basic restrictions apply to tags:</p> <ul> <li> <p>Maximum number of tags per resource - 50</p> </li> <li> <p>For each resource, each tag key must be unique, and each tag key can have only one value.</p> </li> <li> <p>Maximum key length - 128 Unicode characters in UTF-8</p> </li> <li> <p>Maximum value length - 256 Unicode characters in UTF-8</p> </li> <li> <p>If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.</p> </li> <li> <p>Tag keys and values are case-sensitive.</p> </li> <li> <p>Do not use <code>aws:</code>, <code>AWS:</code>, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit.</p> </li> </ul>
871
+ * @public
872
+ */
873
+ tags?: Tag[] | undefined;
874
+ /**
875
+ * <p>The principal that created the service.</p>
876
+ * @public
877
+ */
878
+ createdBy?: string | undefined;
879
+ /**
880
+ * <p>Determines whether to use Amazon ECS managed tags for the tasks in the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p>
881
+ * @public
882
+ */
883
+ enableECSManagedTags?: boolean | undefined;
884
+ /**
885
+ * <p>Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.</p>
886
+ * @public
887
+ */
888
+ propagateTags?: PropagateTags | undefined;
889
+ /**
890
+ * <p>Determines whether the execute command functionality is turned on for the service. If <code>true</code>, the execute command functionality is turned on for all containers in tasks as part of the service.</p>
891
+ * @public
892
+ */
893
+ enableExecuteCommand?: boolean | undefined;
894
+ /**
895
+ * <p>Indicates whether to use Availability Zone rebalancing for the service.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html">Balancing an Amazon ECS service across Availability Zones</a> in the <i> <i>Amazon Elastic Container Service Developer Guide</i> </i>.</p> <p>The default behavior of <code>AvailabilityZoneRebalancing</code> differs between create and update requests:</p> <ul> <li> <p>For create service requests, when no value is specified for <code>AvailabilityZoneRebalancing</code>, Amazon ECS defaults the value to <code>ENABLED</code>.</p> </li> <li> <p>For update service requests, when no value is specified for <code>AvailabilityZoneRebalancing</code>, Amazon ECS defaults to the existing service’s <code>AvailabilityZoneRebalancing</code> value. If the service never had an <code>AvailabilityZoneRebalancing</code> value set, Amazon ECS treats this as <code>DISABLED</code>.</p> </li> </ul>
896
+ * @public
897
+ */
898
+ availabilityZoneRebalancing?: AvailabilityZoneRebalancing | undefined;
899
+ /**
900
+ * <p>Identifies whether an ECS Service is an Express Service managed by ECS, or managed by the customer. The valid values are <code>ECS</code> and <code>CUSTOMER</code> </p>
901
+ * @public
902
+ */
903
+ resourceManagementType?: ResourceManagementType | undefined;
904
+ }
905
+ /**
906
+ *
907
+ * @public
908
+ */
909
+ export interface CreateServiceResponse {
910
+ /**
911
+ * <p>The full description of your service following the create call.</p> <p>A service will return either a <code>capacityProviderStrategy</code> or <code>launchType</code> parameter, but not both, depending where one was specified when it was created.</p> <p>If a service is using the <code>ECS</code> deployment controller, the <code>deploymentController</code> and <code>taskSets</code> parameters will not be returned.</p> <p>if the service uses the <code>CODE_DEPLOY</code> deployment controller, the <code>deploymentController</code>, <code>taskSets</code> and <code>deployments</code> parameters will be returned, however the <code>deployments</code> parameter will be an empty list.</p> <p>The response includes a <code>lifecycleHookDetails</code> field, which is an empty array when the service is created or updated. The values are populated when a lifecycle hook executes and are available as part of the service deployment details (<a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html">DescribeServiceDeployments</a>).</p>
912
+ * @public
913
+ */
914
+ service?: Service | undefined;
915
+ }
916
+ /**
917
+ * @public
918
+ */
919
+ export interface DeleteExpressGatewayServiceRequest {
920
+ /**
921
+ * <p>The Amazon Resource Name (ARN) of the Express service to delete. The ARN uniquely identifies the service within your Amazon Web Services account and region.</p>
922
+ * @public
923
+ */
924
+ serviceArn: string | undefined;
925
+ }
926
+ /**
927
+ * @public
928
+ */
929
+ export interface DeleteExpressGatewayServiceResponse {
930
+ /**
931
+ * <p>The full description of the deleted express service.</p>
932
+ * @public
933
+ */
934
+ service?: ECSExpressGatewayService | undefined;
935
+ }
936
+ /**
937
+ *
938
+ * @public
939
+ */
940
+ export interface DeleteServiceRequest {
941
+ /**
942
+ * <p>The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service to delete. If you do not specify a cluster, the default cluster is assumed.</p>
943
+ * @public
944
+ */
945
+ cluster?: string | undefined;
946
+ /**
947
+ * <p>The name of the service to delete.</p>
948
+ * @public
949
+ */
950
+ service: string | undefined;
951
+ /**
952
+ * <p>If <code>true</code>, allows you to delete a service even if it wasn't scaled down to zero tasks. It's only necessary to use this if the service uses the <code>REPLICA</code> scheduling strategy.</p>
953
+ * @public
954
+ */
955
+ force?: boolean | undefined;
956
+ }
957
+ /**
958
+ *
959
+ * @public
960
+ */
961
+ export interface DeleteServiceResponse {
962
+ /**
963
+ * <p>The full description of the deleted service.</p>
964
+ * @public
965
+ */
966
+ service?: Service | undefined;
967
+ }
968
+ /**
969
+ * @public
970
+ */
971
+ export interface DescribeExpressGatewayServiceRequest {
972
+ /**
973
+ * <p>The Amazon Resource Name (ARN) of the Express service to describe. The ARN uniquely identifies the service within your Amazon Web Services account and region.</p>
974
+ * @public
975
+ */
976
+ serviceArn: string | undefined;
977
+ /**
978
+ * <p>Specifies additional information to include in the response. Valid values are <code>TAGS</code> to include resource tags associated with the Express service.</p>
979
+ * @public
980
+ */
981
+ include?: ExpressGatewayServiceInclude[] | undefined;
982
+ }
983
+ /**
984
+ * @public
985
+ */
986
+ export interface DescribeExpressGatewayServiceResponse {
987
+ /**
988
+ * <p>The full description of the described express service.</p>
989
+ * @public
990
+ */
991
+ service?: ECSExpressGatewayService | undefined;
992
+ }
993
+ /**
994
+ *
995
+ * @public
996
+ */
997
+ export interface DescribeServicesRequest {
998
+ /**
999
+ * <p>The short name or full Amazon Resource Name (ARN)the cluster that hosts the service to describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the service or services you are describing were launched in any cluster other than the default cluster.</p>
1000
+ * @public
1001
+ */
1002
+ cluster?: string | undefined;
1003
+ /**
1004
+ * <p>A list of services to describe. You may specify up to 10 services to describe in a single operation.</p>
1005
+ * @public
1006
+ */
1007
+ services: string[] | undefined;
1008
+ /**
1009
+ * <p>Determines whether you want to see the resource tags for the service. If <code>TAGS</code> is specified, the tags are included in the response. If this field is omitted, tags aren't included in the response.</p>
1010
+ * @public
1011
+ */
1012
+ include?: ServiceField[] | undefined;
1013
+ }
1014
+ /**
1015
+ *
1016
+ * @public
1017
+ */
1018
+ export interface DescribeServicesResponse {
1019
+ /**
1020
+ * <p>The list of services described.</p>
1021
+ * @public
1022
+ */
1023
+ services?: Service[] | undefined;
1024
+ /**
1025
+ * <p>Any failures associated with the call.</p>
1026
+ * @public
1027
+ */
1028
+ failures?: Failure[] | undefined;
1029
+ }
1030
+ /**
1031
+ * @public
1032
+ */
1033
+ export interface ListServiceDeploymentsRequest {
1034
+ /**
1035
+ * <p>The ARN or name of the service</p>
1036
+ * @public
1037
+ */
1038
+ service: string | undefined;
1039
+ /**
1040
+ * <p>The cluster that hosts the service. This can either be the cluster name or ARN. Starting April 15, 2023, Amazon Web Services will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. If you don't specify a cluster, <code>default</code> is used.</p>
1041
+ * @public
1042
+ */
1043
+ cluster?: string | undefined;
1044
+ /**
1045
+ * <p>An optional filter you can use to narrow the results. If you do not specify a status, then all status values are included in the result.</p>
1046
+ * @public
1047
+ */
1048
+ status?: ServiceDeploymentStatus[] | undefined;
1049
+ /**
1050
+ * <p>An optional filter you can use to narrow the results by the service creation date. If you do not specify a value, the result includes all services created before the current time. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.</p>
1051
+ * @public
1052
+ */
1053
+ createdAt?: CreatedAt | undefined;
1054
+ /**
1055
+ * <p>The <code>nextToken</code> value returned from a <code>ListServiceDeployments</code> request indicating that more results are available to fulfill the request and further calls are needed. If you provided <code>maxResults</code>, it's possible the number of results is fewer than <code>maxResults</code>.</p>
1056
+ * @public
1057
+ */
1058
+ nextToken?: string | undefined;
1059
+ /**
1060
+ * <p>The maximum number of service deployment results that <code>ListServiceDeployments</code> returned in paginated output. When this parameter is used, <code>ListServiceDeployments</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListServiceDeployments</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter isn't used, then <code>ListServiceDeployments</code> returns up to 20 results and a <code>nextToken</code> value if applicable.</p>
1061
+ * @public
1062
+ */
1063
+ maxResults?: number | undefined;
1064
+ }
1065
+ /**
1066
+ * <p>The service deployment properties that are retured when you call <code>ListServiceDeployments</code>.</p> <p>This provides a high-level overview of the service deployment. </p>
1067
+ * @public
1068
+ */
1069
+ export interface ServiceDeploymentBrief {
1070
+ /**
1071
+ * <p>The ARN of the service deployment.</p>
1072
+ * @public
1073
+ */
1074
+ serviceDeploymentArn?: string | undefined;
1075
+ /**
1076
+ * <p>The ARN of the service for this service deployment.</p>
1077
+ * @public
1078
+ */
1079
+ serviceArn?: string | undefined;
1080
+ /**
1081
+ * <p>The ARN of the cluster that hosts the service.</p>
1082
+ * @public
1083
+ */
1084
+ clusterArn?: string | undefined;
1085
+ /**
1086
+ * <p>The time that the service deployment statred. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.</p>
1087
+ * @public
1088
+ */
1089
+ startedAt?: Date | undefined;
1090
+ /**
1091
+ * <p>The time that the service deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.</p>
1092
+ * @public
1093
+ */
1094
+ createdAt?: Date | undefined;
1095
+ /**
1096
+ * <p>The time that the service deployment completed. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.</p>
1097
+ * @public
1098
+ */
1099
+ finishedAt?: Date | undefined;
1100
+ /**
1101
+ * <p>The ARN of the service revision being deplyed.</p>
1102
+ * @public
1103
+ */
1104
+ targetServiceRevisionArn?: string | undefined;
1105
+ /**
1106
+ * <p>The status of the service deployment</p>
1107
+ * @public
1108
+ */
1109
+ status?: ServiceDeploymentStatus | undefined;
1110
+ /**
1111
+ * <p>Information about why the service deployment is in the current status. For example, the circuit breaker detected a deployment failure.</p>
1112
+ * @public
1113
+ */
1114
+ statusReason?: string | undefined;
1115
+ }
1116
+ /**
1117
+ * @public
1118
+ */
1119
+ export interface ListServiceDeploymentsResponse {
1120
+ /**
1121
+ * <p>An overview of the service deployment, including the following properties:</p> <ul> <li> <p>The ARN of the service deployment.</p> </li> <li> <p>The ARN of the service being deployed.</p> </li> <li> <p>The ARN of the cluster that hosts the service in the service deployment.</p> </li> <li> <p>The time that the service deployment started.</p> </li> <li> <p>The time that the service deployment completed.</p> </li> <li> <p>The service deployment status.</p> </li> <li> <p>Information about why the service deployment is in the current state.</p> </li> <li> <p>The ARN of the service revision that is being deployed.</p> </li> </ul>
1122
+ * @public
1123
+ */
1124
+ serviceDeployments?: ServiceDeploymentBrief[] | undefined;
1125
+ /**
1126
+ * <p>The <code>nextToken</code> value to include in a future <code>ListServiceDeployments</code> request. When the results of a <code>ListServiceDeployments</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.</p>
1127
+ * @public
1128
+ */
1129
+ nextToken?: string | undefined;
1130
+ }
1131
+ /**
1132
+ *
1133
+ * @public
1134
+ */
1135
+ export interface ListServicesRequest {
1136
+ /**
1137
+ * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the <code>ListServices</code> results. If you do not specify a cluster, the default cluster is assumed.</p>
1138
+ * @public
1139
+ */
1140
+ cluster?: string | undefined;
1141
+ /**
1142
+ * <p>The <code>nextToken</code> value returned from a <code>ListServices</code> request indicating that more results are available to fulfill the request and further calls will be needed. If <code>maxResults</code> was provided, it is possible the number of results to be fewer than <code>maxResults</code>.</p> <note> <p>This token should be treated as an opaque identifier that is only used to retrieve the next items in a list and not for other programmatic purposes.</p> </note>
1143
+ * @public
1144
+ */
1145
+ nextToken?: string | undefined;
1146
+ /**
1147
+ * <p>The maximum number of service results that <code>ListServices</code> returned in paginated output. When this parameter is used, <code>ListServices</code> only returns <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. The remaining results of the initial request can be seen by sending another <code>ListServices</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If this parameter isn't used, then <code>ListServices</code> returns up to 10 results and a <code>nextToken</code> value if applicable.</p>
1148
+ * @public
1149
+ */
1150
+ maxResults?: number | undefined;
1151
+ /**
1152
+ * <p>The launch type to use when filtering the <code>ListServices</code> results.</p>
1153
+ * @public
1154
+ */
1155
+ launchType?: LaunchType | undefined;
1156
+ /**
1157
+ * <p>The scheduling strategy to use when filtering the <code>ListServices</code> results.</p>
1158
+ * @public
1159
+ */
1160
+ schedulingStrategy?: SchedulingStrategy | undefined;
1161
+ /**
1162
+ * <p>The resourceManagementType type to use when filtering the <code>ListServices</code> results.</p>
1163
+ * @public
1164
+ */
1165
+ resourceManagementType?: ResourceManagementType | undefined;
1166
+ }
1167
+ /**
1168
+ *
1169
+ * @public
1170
+ */
1171
+ export interface ListServicesResponse {
1172
+ /**
1173
+ * <p>The list of full ARN entries for each service that's associated with the specified cluster.</p>
1174
+ * @public
1175
+ */
1176
+ serviceArns?: string[] | undefined;
1177
+ /**
1178
+ * <p>The <code>nextToken</code> value to include in a future <code>ListServices</code> request. When the results of a <code>ListServices</code> request exceed <code>maxResults</code>, this value can be used to retrieve the next page of results. This value is <code>null</code> when there are no more results to return.</p>
1179
+ * @public
1180
+ */
1181
+ nextToken?: string | undefined;
1182
+ }
1183
+ /**
1184
+ * @public
1185
+ */
1186
+ export interface StopServiceDeploymentRequest {
1187
+ /**
1188
+ * <p>The ARN of the service deployment that you want to stop.</p>
1189
+ * @public
1190
+ */
1191
+ serviceDeploymentArn: string | undefined;
1192
+ /**
1193
+ * <p>How you want Amazon ECS to stop the service. </p> <p>The valid values are <code>ROLLBACK</code>.</p>
1194
+ * @public
1195
+ */
1196
+ stopType?: StopServiceDeploymentStopType | undefined;
1197
+ }
1198
+ /**
1199
+ * @public
1200
+ */
1201
+ export interface StopServiceDeploymentResponse {
1202
+ /**
1203
+ * <p>The ARN of the stopped service deployment.</p>
1204
+ * @public
1205
+ */
1206
+ serviceDeploymentArn?: string | undefined;
1207
+ }
1208
+ /**
1209
+ * @public
1210
+ */
1211
+ export interface UpdateExpressGatewayServiceRequest {
1212
+ /**
1213
+ * <p>The Amazon Resource Name (ARN) of the Express service to update.</p>
1214
+ * @public
1215
+ */
1216
+ serviceArn: string | undefined;
1217
+ /**
1218
+ * <p>The Amazon Resource Name (ARN) of the task execution role for the Express service.</p>
1219
+ * @public
1220
+ */
1221
+ executionRoleArn?: string | undefined;
1222
+ /**
1223
+ * <p>The path on the container for Application Load Balancer health checks.</p>
1224
+ * @public
1225
+ */
1226
+ healthCheckPath?: string | undefined;
1227
+ /**
1228
+ * <p>The primary container configuration for the Express service.</p>
1229
+ * @public
1230
+ */
1231
+ primaryContainer?: ExpressGatewayContainer | undefined;
1232
+ /**
1233
+ * <p>The Amazon Resource Name (ARN) of the IAM role for containers in this task.</p>
1234
+ * @public
1235
+ */
1236
+ taskRoleArn?: string | undefined;
1237
+ /**
1238
+ * <p>The network configuration for the Express service tasks. By default, the network configuration for an Express service uses the default VPC.</p>
1239
+ * @public
1240
+ */
1241
+ networkConfiguration?: ExpressGatewayServiceNetworkConfiguration | undefined;
1242
+ /**
1243
+ * <p>The number of CPU units used by the task.</p>
1244
+ * @public
1245
+ */
1246
+ cpu?: string | undefined;
1247
+ /**
1248
+ * <p>The amount of memory (in MiB) used by the task.</p>
1249
+ * @public
1250
+ */
1251
+ memory?: string | undefined;
1252
+ /**
1253
+ * <p>The CPU architecture that the task runs on. If you don't specify a value, the service keeps its current architecture.</p> <p>Valid values:</p> <ul> <li> <p> <code>X86_64</code> - The x86 64-bit architecture.</p> </li> <li> <p> <code>ARM64</code> - The 64-bit ARM architecture.</p> </li> </ul> <p>Changing the architecture starts a new deployment that replaces the running tasks. Ensure that the container image you specify supports the architecture you choose. The operating system family for an Express service is always <code>LINUX</code>.</p> <p>You can't specify <code>cpuArchitecture</code> together with <code>taskDefinitionArn</code>.</p>
1254
+ * @public
1255
+ */
1256
+ cpuArchitecture?: ExpressCpuArchitecture | undefined;
1257
+ /**
1258
+ * <p>The auto-scaling configuration for the Express service.</p>
1259
+ * @public
1260
+ */
1261
+ scalingTarget?: ExpressGatewayScalingTarget | undefined;
1262
+ /**
1263
+ * <p>The Amazon Resource Name (ARN) of a task definition to use to update the Express Gateway service. This allows you to manage your own task definition, giving you more control over the service configuration such as adding sidecar containers.</p> <p>The task definition must have a container named <code>Main</code> with a single TCP port mapping that includes a container port and port name. The task definition must also have <code>FARGATE</code> compatibility.</p> <p>If you provide a task definition ARN, you cannot also specify <code>primaryContainer</code>, <code>executionRoleArn</code>, <code>taskRoleArn</code>, <code>cpu</code>, <code>memory</code>, or <code>cpuArchitecture</code>.</p>
1264
+ * @public
1265
+ */
1266
+ taskDefinitionArn?: string | undefined;
1267
+ }
1268
+ /**
1269
+ * <p>An object that describes an Express service to be updated.</p>
1270
+ * @public
1271
+ */
1272
+ export interface UpdatedExpressGatewayService {
1273
+ /**
1274
+ * <p>The ARN of the Express service that is being updated.</p>
1275
+ * @public
1276
+ */
1277
+ serviceArn?: string | undefined;
1278
+ /**
1279
+ * <p>The cluster associated with the Express service that is being updated.</p>
1280
+ * @public
1281
+ */
1282
+ cluster?: string | undefined;
1283
+ /**
1284
+ * <p>The name of the Express service that is being updated.</p>
1285
+ * @public
1286
+ */
1287
+ serviceName?: string | undefined;
1288
+ /**
1289
+ * <p>The status of the Express service that is being updated.</p>
1290
+ * @public
1291
+ */
1292
+ status?: ExpressGatewayServiceStatus | undefined;
1293
+ /**
1294
+ * <p>The configuration to which the current Express service is being updated to.</p>
1295
+ * @public
1296
+ */
1297
+ targetConfiguration?: ExpressGatewayServiceConfiguration | undefined;
1298
+ /**
1299
+ * <p>The Unix timestamp for when the Express service that is being updated was created.</p>
1300
+ * @public
1301
+ */
1302
+ createdAt?: Date | undefined;
1303
+ /**
1304
+ * <p>The Unix timestamp for when the Express service that is being updated was most recently updated.</p>
1305
+ * @public
1306
+ */
1307
+ updatedAt?: Date | undefined;
1308
+ }
1309
+ /**
1310
+ * @public
1311
+ */
1312
+ export interface UpdateExpressGatewayServiceResponse {
1313
+ /**
1314
+ * <p>The full description of your express gateway service following the update call.</p>
1315
+ * @public
1316
+ */
1317
+ service?: UpdatedExpressGatewayService | undefined;
1318
+ }
1319
+ /**
1320
+ *
1321
+ * @public
1322
+ */
1323
+ export interface UpdateServiceRequest {
1324
+ /**
1325
+ * <p>The short name or full Amazon Resource Name (ARN) of the cluster that your service runs on. If you do not specify a cluster, the default cluster is assumed.</p> <p>You can't change the cluster name.</p>
1326
+ * @public
1327
+ */
1328
+ cluster?: string | undefined;
1329
+ /**
1330
+ * <p>The name of the service to update.</p>
1331
+ * @public
1332
+ */
1333
+ service: string | undefined;
1334
+ /**
1335
+ * <p>The number of instantiations of the task to place and keep running in your service.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1336
+ * @public
1337
+ */
1338
+ desiredCount?: number | undefined;
1339
+ /**
1340
+ * <p>The <code>family</code> and <code>revision</code> (<code>family:revision</code>) or full ARN of the task definition to run in your service. If a <code>revision</code> is not specified, the latest <code>ACTIVE</code> revision is used. If you modify the task definition with <code>UpdateService</code>, Amazon ECS spawns a task with the new version of the task definition and then stops an old task after the new version is running.</p> <p>This parameter triggers a new service deployment.</p>
1341
+ * @public
1342
+ */
1343
+ taskDefinition?: string | undefined;
1344
+ /**
1345
+ * <p>The details of a capacity provider strategy. You can set a capacity provider when you create a cluster, run a task, or update a service.</p> <note> <p>If you want to use Amazon ECS Managed Instances, you must use the <code>capacityProviderStrategy</code> request parameter.</p> </note> <p>When you use Fargate, the capacity providers are <code>FARGATE</code> or <code>FARGATE_SPOT</code>.</p> <p>When you use Amazon EC2, the capacity providers are Auto Scaling groups.</p> <p>You can change capacity providers for rolling deployments and blue/green deployments.</p> <p>The following list provides the valid transitions:</p> <ul> <li> <p>Update the Fargate launch type to an Auto Scaling group capacity provider.</p> </li> <li> <p>Update the Amazon EC2 launch type to a Fargate capacity provider.</p> </li> <li> <p>Update the Fargate capacity provider to an Auto Scaling group capacity provider.</p> </li> <li> <p>Update the Amazon EC2 capacity provider to a Fargate capacity provider. </p> </li> <li> <p>Update the Auto Scaling group or Fargate capacity provider back to the launch type.</p> <p>Pass an empty list in the <code>capacityProviderStrategy</code> parameter.</p> </li> </ul> <p>For information about Amazon Web Services CDK considerations, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-service-parameters.html">Amazon Web Services CDK considerations</a>.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1346
+ * @public
1347
+ */
1348
+ capacityProviderStrategy?: CapacityProviderStrategyItem[] | undefined;
1349
+ /**
1350
+ * <p>Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1351
+ * @public
1352
+ */
1353
+ deploymentConfiguration?: DeploymentConfiguration | undefined;
1354
+ /**
1355
+ * <p>Indicates whether to use Availability Zone rebalancing for the service.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-rebalancing.html">Balancing an Amazon ECS service across Availability Zones</a> in the <i> <i>Amazon Elastic Container Service Developer Guide</i> </i>.</p> <p>The default behavior of <code>AvailabilityZoneRebalancing</code> differs between create and update requests:</p> <ul> <li> <p>For create service requests, when no value is specified for <code>AvailabilityZoneRebalancing</code>, Amazon ECS defaults the value to <code>ENABLED</code>.</p> </li> <li> <p>For update service requests, when no value is specified for <code>AvailabilityZoneRebalancing</code>, Amazon ECS defaults to the existing service’s <code>AvailabilityZoneRebalancing</code> value. If the service never had an <code>AvailabilityZoneRebalancing</code> value set, Amazon ECS treats this as <code>DISABLED</code>.</p> </li> </ul> <p>This parameter doesn't trigger a new service deployment.</p>
1356
+ * @public
1357
+ */
1358
+ availabilityZoneRebalancing?: AvailabilityZoneRebalancing | undefined;
1359
+ /**
1360
+ * <p>An object representing the network configuration for the service.</p> <p>This parameter triggers a new service deployment.</p>
1361
+ * @public
1362
+ */
1363
+ networkConfiguration?: NetworkConfiguration | undefined;
1364
+ /**
1365
+ * <p>An array of task placement constraint objects to update the service to use. If no value is specified, the existing placement constraints for the service will remain unchanged. If this value is specified, it will override any existing placement constraints defined for the service. To remove all existing placement constraints, specify an empty array.</p> <p>You can specify a maximum of 10 constraints for each task. This limit includes constraints in the task definition and those specified at runtime.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1366
+ * @public
1367
+ */
1368
+ placementConstraints?: PlacementConstraint[] | undefined;
1369
+ /**
1370
+ * <p>The task placement strategy objects to update the service to use. If no value is specified, the existing placement strategy for the service will remain unchanged. If this value is specified, it will override the existing placement strategy defined for the service. To remove an existing placement strategy, specify an empty object.</p> <p>You can specify a maximum of five strategy rules for each service.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1371
+ * @public
1372
+ */
1373
+ placementStrategy?: PlacementStrategy[] | undefined;
1374
+ /**
1375
+ * <p>The platform version that your tasks in the service run on. A platform version is only specified for tasks using the Fargate launch type. If a platform version is not specified, the <code>LATEST</code> platform version is used. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html">Fargate Platform Versions</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>This parameter triggers a new service deployment.</p>
1376
+ * @public
1377
+ */
1378
+ platformVersion?: string | undefined;
1379
+ /**
1380
+ * <p>Determines whether to force a new deployment of the service. By default, deployments aren't forced. You can use this option to start a new deployment with no service definition changes. For example, you can update a service's tasks to use a newer Docker image with the same image/tag combination (<code>my_image:latest</code>) or to roll Fargate tasks onto a newer platform version.</p>
1381
+ * @public
1382
+ */
1383
+ forceNewDeployment?: boolean | undefined;
1384
+ /**
1385
+ * <p>The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy Elastic Load Balancing, VPC Lattice, and container health checks after a task has first started. If you don't specify a health check grace period value, the default value of <code>0</code> is used. If you don't use any of the health checks, then <code>healthCheckGracePeriodSeconds</code> is unused.</p> <p>If your service's tasks take a while to start and respond to health checks, you can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). During that time, the Amazon ECS service scheduler ignores health check status. This grace period can prevent the service scheduler from marking tasks as unhealthy and stopping them before they have time to come up.</p> <p>If your service has more running tasks than desired, unhealthy tasks in the grace period might be stopped to reach the desired count.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1386
+ * @public
1387
+ */
1388
+ healthCheckGracePeriodSeconds?: number | undefined;
1389
+ /**
1390
+ * <p>The deployment controller to use for the service. </p>
1391
+ * @public
1392
+ */
1393
+ deploymentController?: DeploymentController | undefined;
1394
+ /**
1395
+ * <p>If <code>true</code>, this enables execute command functionality on all task containers.</p> <p>If you do not want to override the value that was set when the service was created, you can set this to <code>null</code> when performing this action.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1396
+ * @public
1397
+ */
1398
+ enableExecuteCommand?: boolean | undefined;
1399
+ /**
1400
+ * <p>Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-using-tags.html">Tagging Your Amazon ECS Resources</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>Only tasks launched after the update will reflect the update. To update the tags on all tasks, set <code>forceNewDeployment</code> to <code>true</code>, so that Amazon ECS starts new tasks with the updated tags.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1401
+ * @public
1402
+ */
1403
+ enableECSManagedTags?: boolean | undefined;
1404
+ /**
1405
+ * <note> <p>You must have a service-linked role when you update this property</p> </note> <p>A list of Elastic Load Balancing load balancer objects. It contains the load balancer name, the container name, and the container port to access from the load balancer. The container name is as it appears in a container definition.</p> <p>When you add, update, or remove a load balancer configuration, Amazon ECS starts new tasks with the updated Elastic Load Balancing configuration, and then stops the old tasks when the new tasks are running.</p> <p>For services that use rolling updates, you can add, update, or remove Elastic Load Balancing target groups. You can update from a single target group to multiple target groups and from multiple target groups to a single target group.</p> <p>For services that use blue/green deployments, you can update Elastic Load Balancing target groups by using <code> <a href="https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_CreateDeployment.html">CreateDeployment</a> </code> through CodeDeploy. Note that multiple target groups are not supported for blue/green deployments. For more information see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html">Register multiple target groups with a service</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </p> <p>For services that use the external deployment controller, you can add, update, or remove load balancers by using <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html">CreateTaskSet</a>. Note that multiple target groups are not supported for external deployments. For more information see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/register-multiple-targetgroups.html">Register multiple target groups with a service</a> in the <i>Amazon Elastic Container Service Developer Guide</i>. </p> <p>You can remove existing <code>loadBalancers</code> by passing an empty list.</p> <p>This parameter triggers a new service deployment.</p>
1406
+ * @public
1407
+ */
1408
+ loadBalancers?: LoadBalancer[] | undefined;
1409
+ /**
1410
+ * <p>Determines whether to propagate the tags from the task definition or the service to the task. If no value is specified, the tags aren't propagated.</p> <p>Only tasks launched after the update will reflect the update. To update the tags on all tasks, set <code>forceNewDeployment</code> to <code>true</code>, so that Amazon ECS starts new tasks with the updated tags.</p> <p>This parameter doesn't trigger a new service deployment.</p>
1411
+ * @public
1412
+ */
1413
+ propagateTags?: PropagateTags | undefined;
1414
+ /**
1415
+ * <note> <p>You must have a service-linked role when you update this property.</p> <p>For more information about the role see the <code>CreateService</code> request parameter <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html#ECS-CreateService-request-role"> <code>role</code> </a>. </p> </note> <p>The details for the service discovery registries to assign to this service. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html">Service Discovery</a>.</p> <p>When you add, update, or remove the service registries configuration, Amazon ECS starts new tasks with the updated service registries configuration, and then stops the old tasks when the new tasks are running.</p> <p>You can remove existing <code>serviceRegistries</code> by passing an empty list.</p> <p>This parameter triggers a new service deployment.</p>
1416
+ * @public
1417
+ */
1418
+ serviceRegistries?: ServiceRegistry[] | undefined;
1419
+ /**
1420
+ * <p>The configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace.</p> <p>Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS services create are supported with Service Connect. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html">Service Connect</a> in the <i>Amazon Elastic Container Service Developer Guide</i>.</p> <p>This parameter triggers a new service deployment.</p>
1421
+ * @public
1422
+ */
1423
+ serviceConnectConfiguration?: ServiceConnectConfiguration | undefined;
1424
+ /**
1425
+ * <p>The details of the volume that was <code>configuredAtLaunch</code>. You can configure the size, volumeType, IOPS, throughput, snapshot and encryption in <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ServiceManagedEBSVolumeConfiguration.html">ServiceManagedEBSVolumeConfiguration</a>. The <code>name</code> of the volume must match the <code>name</code> from the task definition. If set to null, no new deployment is triggered. Otherwise, if this configuration differs from the existing one, it triggers a new deployment.</p> <p>This parameter triggers a new service deployment.</p>
1426
+ * @public
1427
+ */
1428
+ volumeConfigurations?: ServiceVolumeConfiguration[] | undefined;
1429
+ /**
1430
+ * <p>An object representing the VPC Lattice configuration for the service being updated.</p> <p>This parameter triggers a new service deployment.</p>
1431
+ * @public
1432
+ */
1433
+ vpcLatticeConfigurations?: VpcLatticeConfiguration[] | undefined;
1434
+ /**
1435
+ * <p>The updated set of gateway connectors that connect the service to a gateway ingress path. A service supports no more than one gateway connector.</p>
1436
+ * @public
1437
+ */
1438
+ gatewayConnectors?: GatewayConnector[] | undefined;
1439
+ /**
1440
+ * <p>The optional monitoring configuration for the service, which defines the resolution for the service-level <code>CPUUtilization</code> and <code>MemoryUtilization</code> Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of <code>60</code> seconds.</p>
1441
+ * @public
1442
+ */
1443
+ monitoring?: MonitoringConfiguration | undefined;
1444
+ }
1445
+ /**
1446
+ *
1447
+ * @public
1448
+ */
1449
+ export interface UpdateServiceResponse {
1450
+ /**
1451
+ * <p>The full description of your service following the update call.</p> <p>The response includes a <code>lifecycleHookDetails</code> field, which is an empty array when the service is created or updated. The values are populated when a lifecycle hook executes and are available as part of the service deployment details (<a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServiceDeployments.html">DescribeServiceDeployments</a>).</p>
1452
+ * @public
1453
+ */
1454
+ service?: Service | undefined;
1455
+ }
1456
+ /**
1457
+ * @public
1458
+ */
1459
+ export interface UpdateServicePrimaryTaskSetRequest {
1460
+ /**
1461
+ * <p>The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task set exists in.</p>
1462
+ * @public
1463
+ */
1464
+ cluster: string | undefined;
1465
+ /**
1466
+ * <p>The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.</p>
1467
+ * @public
1468
+ */
1469
+ service: string | undefined;
1470
+ /**
1471
+ * <p>The short name or full Amazon Resource Name (ARN) of the task set to set as the primary task set in the deployment.</p>
1472
+ * @public
1473
+ */
1474
+ primaryTaskSet: string | undefined;
1475
+ }
1476
+ /**
1477
+ * @public
1478
+ */
1479
+ export interface UpdateServicePrimaryTaskSetResponse {
1480
+ /**
1481
+ * <p>The details about the task set.</p>
1482
+ * @public
1483
+ */
1484
+ taskSet?: TaskSet | undefined;
1485
+ }
1486
+ /**
1487
+ * @public
1488
+ */
1489
+ export interface DescribeServiceRevisionsRequest {
1490
+ /**
1491
+ * <p>The ARN of the service revision. </p> <p>You can specify a maximum of 20 ARNs.</p> <p>You can call <a href="https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServiceDeployments.html">ListServiceDeployments</a> to get the ARNs.</p>
1492
+ * @public
1493
+ */
1494
+ serviceRevisionArns: string[] | undefined;
1495
+ }
1496
+ /**
1497
+ * <p>The details about the container image a service revision uses. </p> <p>To ensure that all tasks in a service use the same container image, Amazon ECS resolves container image names and any image tags specified in the task definition to container image digests. </p> <p>After the container image digest has been established, Amazon ECS uses the digest to start any other desired tasks, and for any future service and service revision updates. This leads to all tasks in a service always running identical container images, resulting in version consistency for your software. For more information, see <a href="https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-ecs.html#deployment-container-image-stability">Container image resolution</a> in the Amazon ECS Developer Guide.</p>
1498
+ * @public
1499
+ */
1500
+ export interface ContainerImage {
1501
+ /**
1502
+ * <p>The name of the container.</p>
1503
+ * @public
1504
+ */
1505
+ containerName?: string | undefined;
1506
+ /**
1507
+ * <p>The container image digest.</p>
1508
+ * @public
1509
+ */
1510
+ imageDigest?: string | undefined;
1511
+ /**
1512
+ * <p>The container image. </p>
1513
+ * @public
1514
+ */
1515
+ image?: string | undefined;
1516
+ }
1517
+ /**
1518
+ * <p>The Application Auto Scaling policy created by Amazon ECS when you create an Express service.</p>
1519
+ * @public
1520
+ */
1521
+ export interface ManagedApplicationAutoScalingPolicy {
1522
+ /**
1523
+ * <p>The Amazon Resource Name (ARN) of the Application Auto Scaling policy associated with the Express service.</p>
1524
+ * @public
1525
+ */
1526
+ arn?: string | undefined;
1527
+ /**
1528
+ * <p>The status of Application Auto Scaling policy creation.</p>
1529
+ * @public
1530
+ */
1531
+ status: ManagedResourceStatus | undefined;
1532
+ /**
1533
+ * <p>Information about why the Application Auto Scaling policy is in the current status.</p>
1534
+ * @public
1535
+ */
1536
+ statusReason?: string | undefined;
1537
+ /**
1538
+ * <p>The Unix timestamp for when the Application Auto Scaling policy was last updated.</p>
1539
+ * @public
1540
+ */
1541
+ updatedAt: Date | undefined;
1542
+ /**
1543
+ * <p>The type of Application Auto Scaling policy associated with the Express service. Valid values are <code>TargetTrackingScaling</code>, <code>StepScaling</code>, and <code>PredictiveScaling</code>.</p>
1544
+ * @public
1545
+ */
1546
+ policyType: string | undefined;
1547
+ /**
1548
+ * <p>The target value for the auto scaling metric.</p>
1549
+ * @public
1550
+ */
1551
+ targetValue: number | undefined;
1552
+ /**
1553
+ * <p>The metric used for auto scaling decisions. The available metrics are <code>ECSServiceAverageCPUUtilization</code>, <code>ECSServiceAverageMemoryUtilization</code>, and <code>ALBRequestCOuntPerTarget</code>.</p>
1554
+ * @public
1555
+ */
1556
+ metric: string | undefined;
1557
+ }
1558
+ /**
1559
+ * <p>Represents a scalable target.</p>
1560
+ * @public
1561
+ */
1562
+ export interface ManagedScalableTarget {
1563
+ /**
1564
+ * <p>The ARN of the scalable target.</p>
1565
+ * @public
1566
+ */
1567
+ arn?: string | undefined;
1568
+ /**
1569
+ * <p>The status of the scalable target.</p>
1570
+ * @public
1571
+ */
1572
+ status: ManagedResourceStatus | undefined;
1573
+ /**
1574
+ * <p>Information about why the scalable target is in the current status.</p>
1575
+ * @public
1576
+ */
1577
+ statusReason?: string | undefined;
1578
+ /**
1579
+ * <p>The Unix timestamp for when the target was most recently updated.</p>
1580
+ * @public
1581
+ */
1582
+ updatedAt: Date | undefined;
1583
+ /**
1584
+ * <p>The minimum value to scale to in response to a scale-in activity.</p>
1585
+ * @public
1586
+ */
1587
+ minCapacity: number | undefined;
1588
+ /**
1589
+ * <p>The maximum value to scale to in response to a scale-out activity.</p>
1590
+ * @public
1591
+ */
1592
+ maxCapacity: number | undefined;
1593
+ }
1594
+ /**
1595
+ * <p>The auto scaling configuration created by Amazon ECS for an Express service.</p>
1596
+ * @public
1597
+ */
1598
+ export interface ManagedAutoScaling {
1599
+ /**
1600
+ * <p>Represents a scalable target.</p>
1601
+ * @public
1602
+ */
1603
+ scalableTarget?: ManagedScalableTarget | undefined;
1604
+ /**
1605
+ * <p>The policy used for auto scaling.</p>
1606
+ * @public
1607
+ */
1608
+ applicationAutoScalingPolicies?: ManagedApplicationAutoScalingPolicy[] | undefined;
1609
+ }
1610
+ /**
1611
+ * <p>The Application Load Balancer resources that a gateway created and manages for a connection.</p>
1612
+ * @public
1613
+ */
1614
+ export interface GatewayConnectionAlbResources {
1615
+ /**
1616
+ * <p>The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager certificate that is attached to the load balancer listener.</p>
1617
+ * @public
1618
+ */
1619
+ acmCertificateArn?: string | undefined;
1620
+ /**
1621
+ * <p>The Amazon Resource Name (ARN) of the load balancer.</p>
1622
+ * @public
1623
+ */
1624
+ loadBalancerArn?: string | undefined;
1625
+ /**
1626
+ * <p>The Amazon Resource Names (ARNs) of the security groups that the gateway attaches to the load balancer.</p>
1627
+ * @public
1628
+ */
1629
+ loadBalancerSecurityGroupArns?: string[] | undefined;
1630
+ /**
1631
+ * <p>The Amazon Resource Name (ARN) of the listener on the load balancer.</p>
1632
+ * @public
1633
+ */
1634
+ listenerArn?: string | undefined;
1635
+ /**
1636
+ * <p>The Amazon Resource Name (ARN) of the listener rule that routes production traffic to the service.</p>
1637
+ * @public
1638
+ */
1639
+ listenerRuleArn?: string | undefined;
1640
+ /**
1641
+ * <p>The Amazon Resource Name (ARN) of the listener rule that routes test traffic to the service during progressive deployments.</p>
1642
+ * @public
1643
+ */
1644
+ testListenerRuleArn?: string | undefined;
1645
+ /**
1646
+ * <p>The Amazon Resource Name (ARN) of the target group that receives production traffic.</p>
1647
+ * @public
1648
+ */
1649
+ targetGroupArn?: string | undefined;
1650
+ /**
1651
+ * <p>The Amazon Resource Name (ARN) of the alternate target group that the gateway uses during progressive deployments.</p>
1652
+ * @public
1653
+ */
1654
+ alternateTargetGroupArn?: string | undefined;
1655
+ }
1656
+ /**
1657
+ * <p>The gateway-managed infrastructure resources for a connection, as a union keyed by gateway type.</p>
1658
+ * @public
1659
+ */
1660
+ export type GatewayConnectionResources = GatewayConnectionResources.HostSharedAlbMember | GatewayConnectionResources.$UnknownMember;
1661
+ /**
1662
+ * @public
1663
+ */
1664
+ export declare namespace GatewayConnectionResources {
1665
+ /**
1666
+ * <p>The Application Load Balancer resources for a host-based, shared ALB gateway.</p>
1667
+ * @public
1668
+ */
1669
+ interface HostSharedAlbMember {
1670
+ hostSharedAlb: GatewayConnectionAlbResources[];
1671
+ $unknown?: never;
1672
+ }
1673
+ /**
1674
+ * @public
1675
+ */
1676
+ interface $UnknownMember {
1677
+ hostSharedAlb?: never;
1678
+ $unknown: [string, any];
1679
+ }
1680
+ /**
1681
+ * @deprecated unused in schema-serde mode.
1682
+ *
1683
+ */
1684
+ interface Visitor<T> {
1685
+ hostSharedAlb: (value: GatewayConnectionAlbResources[]) => T;
1686
+ _: (name: string, value: any) => T;
1687
+ }
1688
+ }
1689
+ /**
1690
+ * <p>A gateway-managed connection for a service revision. A connection represents the association between the service's gateway connector and a specific gateway, along with the infrastructure that the gateway created for it.</p>
1691
+ * @public
1692
+ */
1693
+ export interface GatewayConnection {
1694
+ /**
1695
+ * <p>The Amazon Resource Name (ARN) of the gateway.</p>
1696
+ * @public
1697
+ */
1698
+ gatewayArn?: string | undefined;
1699
+ /**
1700
+ * <p>The Amazon Resource Name (ARN) of the gateway route for the connection.</p>
1701
+ * @public
1702
+ */
1703
+ gatewayRouteArn?: string | undefined;
1704
+ /**
1705
+ * <p>The name of the service port that receives gateway-managed ingress traffic.</p>
1706
+ * @public
1707
+ */
1708
+ portName?: string | undefined;
1709
+ /**
1710
+ * <p>The URL that the gateway uses to route ingress traffic to the service.</p>
1711
+ * @public
1712
+ */
1713
+ serviceUrl?: string | undefined;
1714
+ /**
1715
+ * <p>The access type of the gateway ingress path.</p> <p>Valid values:</p> <ul> <li> <p> <code>PUBLIC</code> - The ingress path is publicly accessible.</p> </li> <li> <p> <code>PRIVATE</code> - The ingress path is only accessible privately.</p> </li> </ul>
1716
+ * @public
1717
+ */
1718
+ accessType?: AccessType | undefined;
1719
+ /**
1720
+ * <p>The status of the gateway route for the connection.</p>
1721
+ * @public
1722
+ */
1723
+ status?: GatewayRouteStatus | undefined;
1724
+ /**
1725
+ * <p>The gateway-managed infrastructure resources for the connection.</p>
1726
+ * @public
1727
+ */
1728
+ resources?: GatewayConnectionResources | undefined;
1729
+ }
1730
+ /**
1731
+ * <p>The ACM certificate associated with the HTTPS domain created for the Express service.</p>
1732
+ * @public
1733
+ */
1734
+ export interface ManagedCertificate {
1735
+ /**
1736
+ * <p>The Amazon Resource Name (ARN) of the ACM certificate.</p>
1737
+ * @public
1738
+ */
1739
+ arn?: string | undefined;
1740
+ /**
1741
+ * <p>The status of the ACM; certificate.</p>
1742
+ * @public
1743
+ */
1744
+ status: ManagedResourceStatus | undefined;
1745
+ /**
1746
+ * <p>Information about why the ACM certificate is in the current status.</p>
1747
+ * @public
1748
+ */
1749
+ statusReason?: string | undefined;
1750
+ /**
1751
+ * <p>The Unix timestamp for when the ACM certificate was last updated</p>
1752
+ * @public
1753
+ */
1754
+ updatedAt: Date | undefined;
1755
+ /**
1756
+ * <p>The fully qualified domain name (FQDN) that is secured with this ACM certificate.</p>
1757
+ * @public
1758
+ */
1759
+ domainName: string | undefined;
1760
+ }
1761
+ /**
1762
+ * <p>The listeners associated with the Express service's Application Load Balancer.</p>
1763
+ * @public
1764
+ */
1765
+ export interface ManagedListener {
1766
+ /**
1767
+ * <p>The Amazon Resource Name (ARN) of the load balancer listener.</p>
1768
+ * @public
1769
+ */
1770
+ arn?: string | undefined;
1771
+ /**
1772
+ * <p>The status of the load balancer listener.</p>
1773
+ * @public
1774
+ */
1775
+ status: ManagedResourceStatus | undefined;
1776
+ /**
1777
+ * <p>Informaion about why the load balancer listener is in the current status.</p>
1778
+ * @public
1779
+ */
1780
+ statusReason?: string | undefined;
1781
+ /**
1782
+ * <p>The Unix timestamp for when this listener was most recently updated.</p>
1783
+ * @public
1784
+ */
1785
+ updatedAt: Date | undefined;
1786
+ }
1787
+ /**
1788
+ * <p>The Application Load Balancer associated with the Express service.</p>
1789
+ * @public
1790
+ */
1791
+ export interface ManagedLoadBalancer {
1792
+ /**
1793
+ * <p>The Amazon Resource Name (ARN) of the load balancer.</p>
1794
+ * @public
1795
+ */
1796
+ arn?: string | undefined;
1797
+ /**
1798
+ * <p>The status of the load balancer.</p>
1799
+ * @public
1800
+ */
1801
+ status: ManagedResourceStatus | undefined;
1802
+ /**
1803
+ * <p>Information about why the load balancer is in the current status.</p>
1804
+ * @public
1805
+ */
1806
+ statusReason?: string | undefined;
1807
+ /**
1808
+ * <p>The Unix timestamp for when this load balancer was most recently updated.</p>
1809
+ * @public
1810
+ */
1811
+ updatedAt: Date | undefined;
1812
+ /**
1813
+ * <p>The scheme of the load balancer. By default, the scheme of the load balancer is <code>internet-facing</code>.</p>
1814
+ * @public
1815
+ */
1816
+ scheme: string | undefined;
1817
+ /**
1818
+ * <p>The IDs of the subnets associated with the load balancer.</p>
1819
+ * @public
1820
+ */
1821
+ subnetIds?: string[] | undefined;
1822
+ /**
1823
+ * <p>The IDs of the security groups associated with the load balancer.</p>
1824
+ * @public
1825
+ */
1826
+ securityGroupIds?: string[] | undefined;
1827
+ }
1828
+ /**
1829
+ * <p>A security group associated with the Express service.</p>
1830
+ * @public
1831
+ */
1832
+ export interface ManagedSecurityGroup {
1833
+ /**
1834
+ * <p>The ARN of the security group.</p>
1835
+ * @public
1836
+ */
1837
+ arn?: string | undefined;
1838
+ /**
1839
+ * <p>The status of the security group.</p>
1840
+ * @public
1841
+ */
1842
+ status: ManagedResourceStatus | undefined;
1843
+ /**
1844
+ * <p>Information about why the security group is in the current status.</p>
1845
+ * @public
1846
+ */
1847
+ statusReason?: string | undefined;
1848
+ /**
1849
+ * <p>The Unix timestamp for when the security group was last updated.</p>
1850
+ * @public
1851
+ */
1852
+ updatedAt: Date | undefined;
1853
+ }
1854
+ /**
1855
+ * <p>The listener rule associated with the Express service's Application Load Balancer.</p>
1856
+ * @public
1857
+ */
1858
+ export interface ManagedListenerRule {
1859
+ /**
1860
+ * <p>The Amazon Resource Name (ARN) of the load balancer listener rule.</p>
1861
+ * @public
1862
+ */
1863
+ arn?: string | undefined;
1864
+ /**
1865
+ * <p>The status of the load balancer listener rule.</p>
1866
+ * @public
1867
+ */
1868
+ status: ManagedResourceStatus | undefined;
1869
+ /**
1870
+ * <p>Information about why the load balancer listener rule is in the current status.</p>
1871
+ * @public
1872
+ */
1873
+ statusReason?: string | undefined;
1874
+ /**
1875
+ * <p>The Unix timestamp for when this listener rule was most recently updated.</p>
1876
+ * @public
1877
+ */
1878
+ updatedAt: Date | undefined;
1879
+ }
1880
+ /**
1881
+ * <p>The target group associated with the Express service's Application Load Balancer. For more information about load balancer target groups, see <a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html">CreateTargetGroup</a> in the <i>Elastic Load Balancing API Reference</i> </p>
1882
+ * @public
1883
+ */
1884
+ export interface ManagedTargetGroup {
1885
+ /**
1886
+ * <p>The Amazon Resource Name (ARN) of the target group.</p>
1887
+ * @public
1888
+ */
1889
+ arn?: string | undefined;
1890
+ /**
1891
+ * <p>The status of the target group.</p>
1892
+ * @public
1893
+ */
1894
+ status: ManagedResourceStatus | undefined;
1895
+ /**
1896
+ * <p>Information about why the target group is in the current status.</p>
1897
+ * @public
1898
+ */
1899
+ statusReason?: string | undefined;
1900
+ /**
1901
+ * <p>The Unix timestamp for when the target group was last updated.</p>
1902
+ * @public
1903
+ */
1904
+ updatedAt: Date | undefined;
1905
+ /**
1906
+ * <p>The destination for health checks on the targets.</p>
1907
+ * @public
1908
+ */
1909
+ healthCheckPath: string | undefined;
1910
+ /**
1911
+ * <p>The port the load balancer uses when performing health checks on targets.</p>
1912
+ * @public
1913
+ */
1914
+ healthCheckPort: number | undefined;
1915
+ /**
1916
+ * <p>The port on which the targets receive traffic.</p>
1917
+ * @public
1918
+ */
1919
+ port: number | undefined;
1920
+ }
1921
+ /**
1922
+ * <p>The entry point into the Express service.</p>
1923
+ * @public
1924
+ */
1925
+ export interface ManagedIngressPath {
1926
+ /**
1927
+ * <p>The type of access to the endpoint for the Express service.</p>
1928
+ * @public
1929
+ */
1930
+ accessType: AccessType | undefined;
1931
+ /**
1932
+ * <p>The endpoint for access to the Express service.</p>
1933
+ * @public
1934
+ */
1935
+ endpoint: string | undefined;
1936
+ /**
1937
+ * <p>The Application Load Balancer associated with the Express service.</p>
1938
+ * @public
1939
+ */
1940
+ loadBalancer?: ManagedLoadBalancer | undefined;
1941
+ /**
1942
+ * <p>The security groups associated with the Application Load Balancer.</p>
1943
+ * @public
1944
+ */
1945
+ loadBalancerSecurityGroups?: ManagedSecurityGroup[] | undefined;
1946
+ /**
1947
+ * <p>The ACM certificate for the Express service's domain.</p>
1948
+ * @public
1949
+ */
1950
+ certificate?: ManagedCertificate | undefined;
1951
+ /**
1952
+ * <p>The listeners associated with the Application Load Balancer.</p>
1953
+ * @public
1954
+ */
1955
+ listener?: ManagedListener | undefined;
1956
+ /**
1957
+ * <p>The listener rules for the Application Load Balancer.</p>
1958
+ * @public
1959
+ */
1960
+ rule?: ManagedListenerRule | undefined;
1961
+ /**
1962
+ * <p>The target groups associated with the Application Load Balancer.</p>
1963
+ * @public
1964
+ */
1965
+ targetGroups?: ManagedTargetGroup[] | undefined;
1966
+ }
3
1967
  /**
4
1968
  * <p>The Cloudwatch Log Group created by Amazon ECS for an Express service.</p>
5
1969
  * @public
@@ -87,6 +2051,11 @@ export interface ECSManagedResources {
87
2051
  * @public
88
2052
  */
89
2053
  logGroups?: ManagedLogGroup[] | undefined;
2054
+ /**
2055
+ * <p>The gateway-managed connections for the service revision, including the gateway routes and infrastructure that a gateway created for the service's connector.</p>
2056
+ * @public
2057
+ */
2058
+ gatewayConnections?: GatewayConnection[] | undefined;
90
2059
  }
91
2060
  /**
92
2061
  * <p>The runtime platform that Amazon ECS applies to a service revision. This value overrides the runtime platform specified in the task definition. You can't set this value.</p>
@@ -268,6 +2237,11 @@ export interface ServiceRevision {
268
2237
  * @public
269
2238
  */
270
2239
  overrides?: ServiceRevisionOverrides | undefined;
2240
+ /**
2241
+ * <p>The gateway connectors that are associated with the service revision.</p>
2242
+ * @public
2243
+ */
2244
+ gatewayConnectors?: GatewayConnector[] | undefined;
271
2245
  /**
272
2246
  * <p>The optional monitoring configuration for the service, which defines the resolution for the service-level <code>CPUUtilization</code> and <code>MemoryUtilization</code> Amazon CloudWatch metrics. When not specified, Amazon ECS uses the default resolution of <code>60</code> seconds.</p>
273
2247
  * @public