diff --git a/clients/client-ecs/README.md b/clients/client-ecs/README.md index 2baa363eb4bbf..7976c0b8c0b91 100644 --- a/clients/client-ecs/README.md +++ b/clients/client-ecs/README.md @@ -343,6 +343,22 @@ DescribeContainerInstances [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ecs/command/DescribeContainerInstancesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/DescribeContainerInstancesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/DescribeContainerInstancesCommandOutput/) + +
+ +DescribeServiceDeployments + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ecs/command/DescribeServiceDeploymentsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/DescribeServiceDeploymentsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/DescribeServiceDeploymentsCommandOutput/) + +
+
+ +DescribeServiceRevisions + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ecs/command/DescribeServiceRevisionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/DescribeServiceRevisionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/DescribeServiceRevisionsCommandOutput/) +
@@ -431,6 +447,14 @@ ListContainerInstances [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ecs/command/ListContainerInstancesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/ListContainerInstancesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/ListContainerInstancesCommandOutput/) +
+
+ +ListServiceDeployments + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/ecs/command/ListServiceDeploymentsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/ListServiceDeploymentsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-ecs/Interface/ListServiceDeploymentsCommandOutput/) +
diff --git a/clients/client-ecs/src/ECS.ts b/clients/client-ecs/src/ECS.ts index 8b1d724d79598..7cfc5480f9461 100644 --- a/clients/client-ecs/src/ECS.ts +++ b/clients/client-ecs/src/ECS.ts @@ -82,6 +82,16 @@ import { DescribeContainerInstancesCommandInput, DescribeContainerInstancesCommandOutput, } from "./commands/DescribeContainerInstancesCommand"; +import { + DescribeServiceDeploymentsCommand, + DescribeServiceDeploymentsCommandInput, + DescribeServiceDeploymentsCommandOutput, +} from "./commands/DescribeServiceDeploymentsCommand"; +import { + DescribeServiceRevisionsCommand, + DescribeServiceRevisionsCommandInput, + DescribeServiceRevisionsCommandOutput, +} from "./commands/DescribeServiceRevisionsCommand"; import { DescribeServicesCommand, DescribeServicesCommandInput, @@ -137,6 +147,11 @@ import { ListContainerInstancesCommandInput, ListContainerInstancesCommandOutput, } from "./commands/ListContainerInstancesCommand"; +import { + ListServiceDeploymentsCommand, + ListServiceDeploymentsCommandInput, + ListServiceDeploymentsCommandOutput, +} from "./commands/ListServiceDeploymentsCommand"; import { ListServicesByNamespaceCommand, ListServicesByNamespaceCommandInput, @@ -281,6 +296,8 @@ const commands = { DescribeCapacityProvidersCommand, DescribeClustersCommand, DescribeContainerInstancesCommand, + DescribeServiceDeploymentsCommand, + DescribeServiceRevisionsCommand, DescribeServicesCommand, DescribeTaskDefinitionCommand, DescribeTasksCommand, @@ -292,6 +309,7 @@ const commands = { ListAttributesCommand, ListClustersCommand, ListContainerInstancesCommand, + ListServiceDeploymentsCommand, ListServicesCommand, ListServicesByNamespaceCommand, ListTagsForResourceCommand, @@ -563,6 +581,40 @@ export interface ECS { cb: (err: any, data?: DescribeContainerInstancesCommandOutput) => void ): void; + /** + * @see {@link DescribeServiceDeploymentsCommand} + */ + describeServiceDeployments( + args: DescribeServiceDeploymentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeServiceDeployments( + args: DescribeServiceDeploymentsCommandInput, + cb: (err: any, data?: DescribeServiceDeploymentsCommandOutput) => void + ): void; + describeServiceDeployments( + args: DescribeServiceDeploymentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeServiceDeploymentsCommandOutput) => void + ): void; + + /** + * @see {@link DescribeServiceRevisionsCommand} + */ + describeServiceRevisions( + args: DescribeServiceRevisionsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeServiceRevisions( + args: DescribeServiceRevisionsCommandInput, + cb: (err: any, data?: DescribeServiceRevisionsCommandOutput) => void + ): void; + describeServiceRevisions( + args: DescribeServiceRevisionsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeServiceRevisionsCommandOutput) => void + ): void; + /** * @see {@link DescribeServicesCommand} */ @@ -736,6 +788,23 @@ export interface ECS { cb: (err: any, data?: ListContainerInstancesCommandOutput) => void ): void; + /** + * @see {@link ListServiceDeploymentsCommand} + */ + listServiceDeployments( + args: ListServiceDeploymentsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listServiceDeployments( + args: ListServiceDeploymentsCommandInput, + cb: (err: any, data?: ListServiceDeploymentsCommandOutput) => void + ): void; + listServiceDeployments( + args: ListServiceDeploymentsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListServiceDeploymentsCommandOutput) => void + ): void; + /** * @see {@link ListServicesCommand} */ diff --git a/clients/client-ecs/src/ECSClient.ts b/clients/client-ecs/src/ECSClient.ts index 5516724f011ec..909ce62972bc0 100644 --- a/clients/client-ecs/src/ECSClient.ts +++ b/clients/client-ecs/src/ECSClient.ts @@ -93,6 +93,14 @@ import { DescribeContainerInstancesCommandInput, DescribeContainerInstancesCommandOutput, } from "./commands/DescribeContainerInstancesCommand"; +import { + DescribeServiceDeploymentsCommandInput, + DescribeServiceDeploymentsCommandOutput, +} from "./commands/DescribeServiceDeploymentsCommand"; +import { + DescribeServiceRevisionsCommandInput, + DescribeServiceRevisionsCommandOutput, +} from "./commands/DescribeServiceRevisionsCommand"; import { DescribeServicesCommandInput, DescribeServicesCommandOutput } from "./commands/DescribeServicesCommand"; import { DescribeTaskDefinitionCommandInput, @@ -116,6 +124,10 @@ import { ListContainerInstancesCommandInput, ListContainerInstancesCommandOutput, } from "./commands/ListContainerInstancesCommand"; +import { + ListServiceDeploymentsCommandInput, + ListServiceDeploymentsCommandOutput, +} from "./commands/ListServiceDeploymentsCommand"; import { ListServicesByNamespaceCommandInput, ListServicesByNamespaceCommandOutput, @@ -227,6 +239,8 @@ export type ServiceInputTypes = | DescribeCapacityProvidersCommandInput | DescribeClustersCommandInput | DescribeContainerInstancesCommandInput + | DescribeServiceDeploymentsCommandInput + | DescribeServiceRevisionsCommandInput | DescribeServicesCommandInput | DescribeTaskDefinitionCommandInput | DescribeTaskSetsCommandInput @@ -238,6 +252,7 @@ export type ServiceInputTypes = | ListAttributesCommandInput | ListClustersCommandInput | ListContainerInstancesCommandInput + | ListServiceDeploymentsCommandInput | ListServicesByNamespaceCommandInput | ListServicesCommandInput | ListTagsForResourceCommandInput @@ -288,6 +303,8 @@ export type ServiceOutputTypes = | DescribeCapacityProvidersCommandOutput | DescribeClustersCommandOutput | DescribeContainerInstancesCommandOutput + | DescribeServiceDeploymentsCommandOutput + | DescribeServiceRevisionsCommandOutput | DescribeServicesCommandOutput | DescribeTaskDefinitionCommandOutput | DescribeTaskSetsCommandOutput @@ -299,6 +316,7 @@ export type ServiceOutputTypes = | ListAttributesCommandOutput | ListClustersCommandOutput | ListContainerInstancesCommandOutput + | ListServiceDeploymentsCommandOutput | ListServicesByNamespaceCommandOutput | ListServicesCommandOutput | ListTagsForResourceCommandOutput diff --git a/clients/client-ecs/src/commands/CreateCapacityProviderCommand.ts b/clients/client-ecs/src/commands/CreateCapacityProviderCommand.ts index 32899f9f73d64..f9b457165e422 100644 --- a/clients/client-ecs/src/commands/CreateCapacityProviderCommand.ts +++ b/clients/client-ecs/src/commands/CreateCapacityProviderCommand.ts @@ -109,7 +109,7 @@ export interface CreateCapacityProviderCommandOutput extends CreateCapacityProvi *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/CreateClusterCommand.ts b/clients/client-ecs/src/commands/CreateClusterCommand.ts index 342dde6f7b64a..d58431f40925e 100644 --- a/clients/client-ecs/src/commands/CreateClusterCommand.ts +++ b/clients/client-ecs/src/commands/CreateClusterCommand.ts @@ -32,7 +32,7 @@ export interface CreateClusterCommandOutput extends CreateClusterResponse, __Met * cluster when you launch your first container instance. However, you can create your own * cluster with a unique name.

    * - *

    When you call the CreateCluster API operation, Amazon ECS attempts to + *

    When you call the CreateCluster API operation, Amazon ECS attempts to * create the Amazon ECS service-linked role for your account. This is so that it can manage * required resources in other Amazon Web Services services on your behalf. However, if the user that * makes the call doesn't have permissions to create the service-linked role, it isn't @@ -183,7 +183,7 @@ export interface CreateClusterCommandOutput extends CreateClusterResponse, __Met *

  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/CreateServiceCommand.ts b/clients/client-ecs/src/commands/CreateServiceCommand.ts index e07e24c5a2039..13089fe504066 100644 --- a/clients/client-ecs/src/commands/CreateServiceCommand.ts +++ b/clients/client-ecs/src/commands/CreateServiceCommand.ts @@ -31,7 +31,7 @@ export interface CreateServiceCommandOutput extends CreateServiceResponse, __Met *

    Runs and maintains your desired number of tasks from a specified task definition. If * the number of tasks running in a service drops below the desiredCount, * Amazon ECS runs another copy of the task in the specified cluster. To update an existing - * service, use UpdateService.

    + * service, see the UpdateService action.

    * *

    On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

    *
    @@ -164,8 +164,8 @@ export interface CreateServiceCommandOutput extends CreateServiceResponse, __Met * alarmNames: [ // StringList // required * "STRING_VALUE", * ], - * enable: true || false, // required * rollback: true || false, // required + * enable: true || false, // required * }, * }, * placementConstraints: [ // PlacementConstraints @@ -323,8 +323,8 @@ export interface CreateServiceCommandOutput extends CreateServiceResponse, __Met * // alarmNames: [ // StringList // required * // "STRING_VALUE", * // ], - * // enable: true || false, // required * // rollback: true || false, // required + * // enable: true || false, // required * // }, * // }, * // taskSets: [ // TaskSets @@ -570,7 +570,7 @@ export interface CreateServiceCommandOutput extends CreateServiceResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/CreateTaskSetCommand.ts b/clients/client-ecs/src/commands/CreateTaskSetCommand.ts index 51684647bb40d..d568a327cc2df 100644 --- a/clients/client-ecs/src/commands/CreateTaskSetCommand.ts +++ b/clients/client-ecs/src/commands/CreateTaskSetCommand.ts @@ -188,7 +188,7 @@ export interface CreateTaskSetCommandOutput extends CreateTaskSetResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeleteAccountSettingCommand.ts b/clients/client-ecs/src/commands/DeleteAccountSettingCommand.ts index ae98d2dbceb60..be964686d3750 100644 --- a/clients/client-ecs/src/commands/DeleteAccountSettingCommand.ts +++ b/clients/client-ecs/src/commands/DeleteAccountSettingCommand.ts @@ -68,7 +68,7 @@ export interface DeleteAccountSettingCommandOutput extends DeleteAccountSettingR *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeleteCapacityProviderCommand.ts b/clients/client-ecs/src/commands/DeleteCapacityProviderCommand.ts index 092f354e5af90..875bcfcc84f87 100644 --- a/clients/client-ecs/src/commands/DeleteCapacityProviderCommand.ts +++ b/clients/client-ecs/src/commands/DeleteCapacityProviderCommand.ts @@ -98,7 +98,7 @@ export interface DeleteCapacityProviderCommandOutput extends DeleteCapacityProvi *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeleteClusterCommand.ts b/clients/client-ecs/src/commands/DeleteClusterCommand.ts index 8f92b499b6ff7..bc16ae9370f76 100644 --- a/clients/client-ecs/src/commands/DeleteClusterCommand.ts +++ b/clients/client-ecs/src/commands/DeleteClusterCommand.ts @@ -136,7 +136,7 @@ export interface DeleteClusterCommandOutput extends DeleteClusterResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeleteServiceCommand.ts b/clients/client-ecs/src/commands/DeleteServiceCommand.ts index ffba285b60341..ecc4e8d440ee7 100644 --- a/clients/client-ecs/src/commands/DeleteServiceCommand.ts +++ b/clients/client-ecs/src/commands/DeleteServiceCommand.ts @@ -109,8 +109,8 @@ export interface DeleteServiceCommandOutput extends DeleteServiceResponse, __Met * // alarmNames: [ // StringList // required * // "STRING_VALUE", * // ], - * // enable: true || false, // required * // rollback: true || false, // required + * // enable: true || false, // required * // }, * // }, * // taskSets: [ // TaskSets @@ -353,7 +353,7 @@ export interface DeleteServiceCommandOutput extends DeleteServiceResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeleteTaskDefinitionsCommand.ts b/clients/client-ecs/src/commands/DeleteTaskDefinitionsCommand.ts index 7d7be1f8ee444..3a85d44165113 100644 --- a/clients/client-ecs/src/commands/DeleteTaskDefinitionsCommand.ts +++ b/clients/client-ecs/src/commands/DeleteTaskDefinitionsCommand.ts @@ -363,7 +363,7 @@ export interface DeleteTaskDefinitionsCommandOutput extends DeleteTaskDefinition *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeleteTaskSetCommand.ts b/clients/client-ecs/src/commands/DeleteTaskSetCommand.ts index 5a526c4716d26..bb25f23f669b2 100644 --- a/clients/client-ecs/src/commands/DeleteTaskSetCommand.ts +++ b/clients/client-ecs/src/commands/DeleteTaskSetCommand.ts @@ -134,7 +134,7 @@ export interface DeleteTaskSetCommandOutput extends DeleteTaskSetResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeregisterContainerInstanceCommand.ts b/clients/client-ecs/src/commands/DeregisterContainerInstanceCommand.ts index f6ff4c1347259..900168493c434 100644 --- a/clients/client-ecs/src/commands/DeregisterContainerInstanceCommand.ts +++ b/clients/client-ecs/src/commands/DeregisterContainerInstanceCommand.ts @@ -157,7 +157,7 @@ export interface DeregisterContainerInstanceCommandOutput *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DeregisterTaskDefinitionCommand.ts b/clients/client-ecs/src/commands/DeregisterTaskDefinitionCommand.ts index b116852994d9d..d1a2cffd4c9dd 100644 --- a/clients/client-ecs/src/commands/DeregisterTaskDefinitionCommand.ts +++ b/clients/client-ecs/src/commands/DeregisterTaskDefinitionCommand.ts @@ -347,7 +347,7 @@ export interface DeregisterTaskDefinitionCommandOutput extends DeregisterTaskDef *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeCapacityProvidersCommand.ts b/clients/client-ecs/src/commands/DescribeCapacityProvidersCommand.ts index 068bf369ee56b..c2cdba02c44c6 100644 --- a/clients/client-ecs/src/commands/DescribeCapacityProvidersCommand.ts +++ b/clients/client-ecs/src/commands/DescribeCapacityProvidersCommand.ts @@ -102,7 +102,7 @@ export interface DescribeCapacityProvidersCommandOutput extends DescribeCapacity *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeClustersCommand.ts b/clients/client-ecs/src/commands/DescribeClustersCommand.ts index 94609f4c46863..65a3cae0836a9 100644 --- a/clients/client-ecs/src/commands/DescribeClustersCommand.ts +++ b/clients/client-ecs/src/commands/DescribeClustersCommand.ts @@ -145,7 +145,7 @@ export interface DescribeClustersCommandOutput extends DescribeClustersResponse, *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeContainerInstancesCommand.ts b/clients/client-ecs/src/commands/DescribeContainerInstancesCommand.ts index 6754a0bef4f9a..48efb587ce6e4 100644 --- a/clients/client-ecs/src/commands/DescribeContainerInstancesCommand.ts +++ b/clients/client-ecs/src/commands/DescribeContainerInstancesCommand.ts @@ -156,7 +156,7 @@ export interface DescribeContainerInstancesCommandOutput extends DescribeContain *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeServiceDeploymentsCommand.ts b/clients/client-ecs/src/commands/DescribeServiceDeploymentsCommand.ts new file mode 100644 index 0000000000000..f1a55be5a23e1 --- /dev/null +++ b/clients/client-ecs/src/commands/DescribeServiceDeploymentsCommand.ts @@ -0,0 +1,198 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DescribeServiceDeploymentsRequest, DescribeServiceDeploymentsResponse } from "../models/models_0"; +import { de_DescribeServiceDeploymentsCommand, se_DescribeServiceDeploymentsCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DescribeServiceDeploymentsCommand}. + */ +export interface DescribeServiceDeploymentsCommandInput extends DescribeServiceDeploymentsRequest {} +/** + * @public + * + * The output of {@link DescribeServiceDeploymentsCommand}. + */ +export interface DescribeServiceDeploymentsCommandOutput extends DescribeServiceDeploymentsResponse, __MetadataBearer {} + +/** + *

    Describes one or more of your service deployments.

    + *

    A service deployment happens when you release a software update for the service. For more information, see Amazon ECS service deployments.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ECSClient, DescribeServiceDeploymentsCommand } from "@aws-sdk/client-ecs"; // ES Modules import + * // const { ECSClient, DescribeServiceDeploymentsCommand } = require("@aws-sdk/client-ecs"); // CommonJS import + * const client = new ECSClient(config); + * const input = { // DescribeServiceDeploymentsRequest + * serviceDeploymentArns: [ // StringList // required + * "STRING_VALUE", + * ], + * }; + * const command = new DescribeServiceDeploymentsCommand(input); + * const response = await client.send(command); + * // { // DescribeServiceDeploymentsResponse + * // serviceDeployments: [ // ServiceDeployments + * // { // ServiceDeployment + * // serviceDeploymentArn: "STRING_VALUE", + * // serviceArn: "STRING_VALUE", + * // clusterArn: "STRING_VALUE", + * // createdAt: new Date("TIMESTAMP"), + * // startedAt: new Date("TIMESTAMP"), + * // finishedAt: new Date("TIMESTAMP"), + * // stoppedAt: new Date("TIMESTAMP"), + * // updatedAt: new Date("TIMESTAMP"), + * // sourceServiceRevisions: [ // ServiceRevisionsSummaryList + * // { // ServiceRevisionSummary + * // arn: "STRING_VALUE", + * // requestedTaskCount: Number("int"), + * // runningTaskCount: Number("int"), + * // pendingTaskCount: Number("int"), + * // }, + * // ], + * // targetServiceRevision: { + * // arn: "STRING_VALUE", + * // requestedTaskCount: Number("int"), + * // runningTaskCount: Number("int"), + * // pendingTaskCount: Number("int"), + * // }, + * // status: "PENDING" || "SUCCESSFUL" || "STOPPED" || "STOP_REQUESTED" || "IN_PROGRESS" || "ROLLBACK_IN_PROGRESS" || "ROLLBACK_SUCCESSFUL" || "ROLLBACK_FAILED", + * // statusReason: "STRING_VALUE", + * // deploymentConfiguration: { // DeploymentConfiguration + * // deploymentCircuitBreaker: { // DeploymentCircuitBreaker + * // enable: true || false, // required + * // rollback: true || false, // required + * // }, + * // maximumPercent: Number("int"), + * // minimumHealthyPercent: Number("int"), + * // alarms: { // DeploymentAlarms + * // alarmNames: [ // StringList // required + * // "STRING_VALUE", + * // ], + * // rollback: true || false, // required + * // enable: true || false, // required + * // }, + * // }, + * // rollback: { // Rollback + * // reason: "STRING_VALUE", + * // startedAt: new Date("TIMESTAMP"), + * // serviceRevisionArn: "STRING_VALUE", + * // }, + * // deploymentCircuitBreaker: { // ServiceDeploymentCircuitBreaker + * // status: "TRIGGERED" || "MONITORING" || "MONITORING_COMPLETE" || "DISABLED", + * // failureCount: Number("int"), + * // threshold: Number("int"), + * // }, + * // alarms: { // ServiceDeploymentAlarms + * // status: "TRIGGERED" || "MONITORING" || "MONITORING_COMPLETE" || "DISABLED", + * // alarmNames: [ + * // "STRING_VALUE", + * // ], + * // triggeredAlarmNames: [ + * // "STRING_VALUE", + * // ], + * // }, + * // }, + * // ], + * // failures: [ // Failures + * // { // Failure + * // arn: "STRING_VALUE", + * // reason: "STRING_VALUE", + * // detail: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeServiceDeploymentsCommandInput - {@link DescribeServiceDeploymentsCommandInput} + * @returns {@link DescribeServiceDeploymentsCommandOutput} + * @see {@link DescribeServiceDeploymentsCommandInput} for command's `input` shape. + * @see {@link DescribeServiceDeploymentsCommandOutput} for command's `response` shape. + * @see {@link ECSClientResolvedConfig | config} for ECSClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have authorization to perform the requested action.

    + * + * @throws {@link ClientException} (client fault) + *

    These errors are usually caused by a client action. This client action might be using + * an action or resource on behalf of a user that doesn't have permissions to use the + * action or resource. Or, it might be specifying an identifier that isn't valid.

    + *

    The following list includes additional causes for the error:

    + *
      + *
    • + *

      The RunTask could not be processed because you use managed + * scaling and there is a capacity error because the quota of tasks in the + * PROVISIONING per cluster has been reached. For information + * about the service quotas, see Amazon ECS + * service quotas.

      + *
    • + *
    + * + * @throws {@link ClusterNotFoundException} (client fault) + *

    The specified cluster wasn't found. You can view your available clusters with ListClusters. Amazon ECS clusters are Region specific.

    + * + * @throws {@link InvalidParameterException} (client fault) + *

    The specified parameter isn't valid. Review the available parameters for the API + * request.

    + * + * @throws {@link ServerException} (server fault) + *

    These errors are usually caused by a server issue.

    + * + * @throws {@link ServiceNotFoundException} (client fault) + *

    The specified service wasn't found. You can view your available services with ListServices. Amazon ECS services are cluster specific and Region + * specific.

    + * + * @throws {@link UnsupportedFeatureException} (client fault) + *

    The specified task isn't supported in this Region.

    + * + * @throws {@link ECSServiceException} + *

    Base exception class for all service exceptions from ECS service.

    + * + * @public + */ +export class DescribeServiceDeploymentsCommand extends $Command + .classBuilder< + DescribeServiceDeploymentsCommandInput, + DescribeServiceDeploymentsCommandOutput, + ECSClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: ECSClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonEC2ContainerServiceV20141113", "DescribeServiceDeployments", {}) + .n("ECSClient", "DescribeServiceDeploymentsCommand") + .f(void 0, void 0) + .ser(se_DescribeServiceDeploymentsCommand) + .de(de_DescribeServiceDeploymentsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DescribeServiceDeploymentsRequest; + output: DescribeServiceDeploymentsResponse; + }; + sdk: { + input: DescribeServiceDeploymentsCommandInput; + output: DescribeServiceDeploymentsCommandOutput; + }; + }; +} diff --git a/clients/client-ecs/src/commands/DescribeServiceRevisionsCommand.ts b/clients/client-ecs/src/commands/DescribeServiceRevisionsCommand.ts new file mode 100644 index 0000000000000..c07f6dd2525d4 --- /dev/null +++ b/clients/client-ecs/src/commands/DescribeServiceRevisionsCommand.ts @@ -0,0 +1,264 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { DescribeServiceRevisionsRequest, DescribeServiceRevisionsResponse } from "../models/models_0"; +import { de_DescribeServiceRevisionsCommand, se_DescribeServiceRevisionsCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DescribeServiceRevisionsCommand}. + */ +export interface DescribeServiceRevisionsCommandInput extends DescribeServiceRevisionsRequest {} +/** + * @public + * + * The output of {@link DescribeServiceRevisionsCommand}. + */ +export interface DescribeServiceRevisionsCommandOutput extends DescribeServiceRevisionsResponse, __MetadataBearer {} + +/** + *

    Describes one or more service revisions.

    + *

    A service revision is a version of the service that includes the values for the Amazon ECS + * resources (for example, task definition) and the environment resources (for example, + * load balancers, subnets, and security groups). For more information, see Amazon ECS service revisions.

    + *

    You can't describe a service revision that was created before October 25, 2024.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ECSClient, DescribeServiceRevisionsCommand } from "@aws-sdk/client-ecs"; // ES Modules import + * // const { ECSClient, DescribeServiceRevisionsCommand } = require("@aws-sdk/client-ecs"); // CommonJS import + * const client = new ECSClient(config); + * const input = { // DescribeServiceRevisionsRequest + * serviceRevisionArns: [ // StringList // required + * "STRING_VALUE", + * ], + * }; + * const command = new DescribeServiceRevisionsCommand(input); + * const response = await client.send(command); + * // { // DescribeServiceRevisionsResponse + * // serviceRevisions: [ // ServiceRevisions + * // { // ServiceRevision + * // serviceRevisionArn: "STRING_VALUE", + * // serviceArn: "STRING_VALUE", + * // clusterArn: "STRING_VALUE", + * // taskDefinition: "STRING_VALUE", + * // capacityProviderStrategy: [ // CapacityProviderStrategy + * // { // CapacityProviderStrategyItem + * // capacityProvider: "STRING_VALUE", // required + * // weight: Number("int"), + * // base: Number("int"), + * // }, + * // ], + * // launchType: "EC2" || "FARGATE" || "EXTERNAL", + * // platformVersion: "STRING_VALUE", + * // platformFamily: "STRING_VALUE", + * // loadBalancers: [ // LoadBalancers + * // { // LoadBalancer + * // targetGroupArn: "STRING_VALUE", + * // loadBalancerName: "STRING_VALUE", + * // containerName: "STRING_VALUE", + * // containerPort: Number("int"), + * // }, + * // ], + * // serviceRegistries: [ // ServiceRegistries + * // { // ServiceRegistry + * // registryArn: "STRING_VALUE", + * // port: Number("int"), + * // containerName: "STRING_VALUE", + * // containerPort: Number("int"), + * // }, + * // ], + * // networkConfiguration: { // NetworkConfiguration + * // awsvpcConfiguration: { // AwsVpcConfiguration + * // subnets: [ // StringList // required + * // "STRING_VALUE", + * // ], + * // securityGroups: [ + * // "STRING_VALUE", + * // ], + * // assignPublicIp: "ENABLED" || "DISABLED", + * // }, + * // }, + * // containerImages: [ // ContainerImages + * // { // ContainerImage + * // containerName: "STRING_VALUE", + * // imageDigest: "STRING_VALUE", + * // image: "STRING_VALUE", + * // }, + * // ], + * // guardDutyEnabled: true || false, + * // serviceConnectConfiguration: { // ServiceConnectConfiguration + * // enabled: true || false, // required + * // namespace: "STRING_VALUE", + * // services: [ // ServiceConnectServiceList + * // { // ServiceConnectService + * // portName: "STRING_VALUE", // required + * // discoveryName: "STRING_VALUE", + * // clientAliases: [ // ServiceConnectClientAliasList + * // { // ServiceConnectClientAlias + * // port: Number("int"), // required + * // dnsName: "STRING_VALUE", + * // }, + * // ], + * // ingressPortOverride: Number("int"), + * // timeout: { // TimeoutConfiguration + * // idleTimeoutSeconds: Number("int"), + * // perRequestTimeoutSeconds: Number("int"), + * // }, + * // tls: { // ServiceConnectTlsConfiguration + * // issuerCertificateAuthority: { // ServiceConnectTlsCertificateAuthority + * // awsPcaAuthorityArn: "STRING_VALUE", + * // }, + * // kmsKey: "STRING_VALUE", + * // roleArn: "STRING_VALUE", + * // }, + * // }, + * // ], + * // logConfiguration: { // LogConfiguration + * // logDriver: "json-file" || "syslog" || "journald" || "gelf" || "fluentd" || "awslogs" || "splunk" || "awsfirelens", // required + * // options: { // LogConfigurationOptionsMap + * // "": "STRING_VALUE", + * // }, + * // secretOptions: [ // SecretList + * // { // Secret + * // name: "STRING_VALUE", // required + * // valueFrom: "STRING_VALUE", // required + * // }, + * // ], + * // }, + * // }, + * // volumeConfigurations: [ // ServiceVolumeConfigurations + * // { // ServiceVolumeConfiguration + * // name: "STRING_VALUE", // required + * // managedEBSVolume: { // ServiceManagedEBSVolumeConfiguration + * // encrypted: true || false, + * // kmsKeyId: "STRING_VALUE", + * // volumeType: "STRING_VALUE", + * // sizeInGiB: Number("int"), + * // snapshotId: "STRING_VALUE", + * // iops: Number("int"), + * // throughput: Number("int"), + * // tagSpecifications: [ // EBSTagSpecifications + * // { // EBSTagSpecification + * // resourceType: "volume", // required + * // tags: [ // Tags + * // { // Tag + * // key: "STRING_VALUE", + * // value: "STRING_VALUE", + * // }, + * // ], + * // propagateTags: "TASK_DEFINITION" || "SERVICE" || "NONE", + * // }, + * // ], + * // roleArn: "STRING_VALUE", // required + * // filesystemType: "ext3" || "ext4" || "xfs" || "ntfs", + * // }, + * // }, + * // ], + * // fargateEphemeralStorage: { // DeploymentEphemeralStorage + * // kmsKeyId: "STRING_VALUE", + * // }, + * // createdAt: new Date("TIMESTAMP"), + * // }, + * // ], + * // failures: [ // Failures + * // { // Failure + * // arn: "STRING_VALUE", + * // reason: "STRING_VALUE", + * // detail: "STRING_VALUE", + * // }, + * // ], + * // }; + * + * ``` + * + * @param DescribeServiceRevisionsCommandInput - {@link DescribeServiceRevisionsCommandInput} + * @returns {@link DescribeServiceRevisionsCommandOutput} + * @see {@link DescribeServiceRevisionsCommandInput} for command's `input` shape. + * @see {@link DescribeServiceRevisionsCommandOutput} for command's `response` shape. + * @see {@link ECSClientResolvedConfig | config} for ECSClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have authorization to perform the requested action.

    + * + * @throws {@link ClientException} (client fault) + *

    These errors are usually caused by a client action. This client action might be using + * an action or resource on behalf of a user that doesn't have permissions to use the + * action or resource. Or, it might be specifying an identifier that isn't valid.

    + *

    The following list includes additional causes for the error:

    + *
      + *
    • + *

      The RunTask could not be processed because you use managed + * scaling and there is a capacity error because the quota of tasks in the + * PROVISIONING per cluster has been reached. For information + * about the service quotas, see Amazon ECS + * service quotas.

      + *
    • + *
    + * + * @throws {@link ClusterNotFoundException} (client fault) + *

    The specified cluster wasn't found. You can view your available clusters with ListClusters. Amazon ECS clusters are Region specific.

    + * + * @throws {@link InvalidParameterException} (client fault) + *

    The specified parameter isn't valid. Review the available parameters for the API + * request.

    + * + * @throws {@link ServerException} (server fault) + *

    These errors are usually caused by a server issue.

    + * + * @throws {@link ServiceNotFoundException} (client fault) + *

    The specified service wasn't found. You can view your available services with ListServices. Amazon ECS services are cluster specific and Region + * specific.

    + * + * @throws {@link UnsupportedFeatureException} (client fault) + *

    The specified task isn't supported in this Region.

    + * + * @throws {@link ECSServiceException} + *

    Base exception class for all service exceptions from ECS service.

    + * + * @public + */ +export class DescribeServiceRevisionsCommand extends $Command + .classBuilder< + DescribeServiceRevisionsCommandInput, + DescribeServiceRevisionsCommandOutput, + ECSClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: ECSClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonEC2ContainerServiceV20141113", "DescribeServiceRevisions", {}) + .n("ECSClient", "DescribeServiceRevisionsCommand") + .f(void 0, void 0) + .ser(se_DescribeServiceRevisionsCommand) + .de(de_DescribeServiceRevisionsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: DescribeServiceRevisionsRequest; + output: DescribeServiceRevisionsResponse; + }; + sdk: { + input: DescribeServiceRevisionsCommandInput; + output: DescribeServiceRevisionsCommandOutput; + }; + }; +} diff --git a/clients/client-ecs/src/commands/DescribeServicesCommand.ts b/clients/client-ecs/src/commands/DescribeServicesCommand.ts index 3c4dd4b22a655..cad71aa3d9bad 100644 --- a/clients/client-ecs/src/commands/DescribeServicesCommand.ts +++ b/clients/client-ecs/src/commands/DescribeServicesCommand.ts @@ -94,8 +94,8 @@ export interface DescribeServicesCommandOutput extends DescribeServicesResponse, * // alarmNames: [ // StringList // required * // "STRING_VALUE", * // ], - * // enable: true || false, // required * // rollback: true || false, // required + * // enable: true || false, // required * // }, * // }, * // taskSets: [ // TaskSets @@ -346,7 +346,7 @@ export interface DescribeServicesCommandOutput extends DescribeServicesResponse, *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeTaskDefinitionCommand.ts b/clients/client-ecs/src/commands/DescribeTaskDefinitionCommand.ts index a5873c32b30d5..3197cdbcac330 100644 --- a/clients/client-ecs/src/commands/DescribeTaskDefinitionCommand.ts +++ b/clients/client-ecs/src/commands/DescribeTaskDefinitionCommand.ts @@ -346,7 +346,7 @@ export interface DescribeTaskDefinitionCommandOutput extends DescribeTaskDefinit *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeTaskSetsCommand.ts b/clients/client-ecs/src/commands/DescribeTaskSetsCommand.ts index 08cb0cf1e1c7f..688bdf252f376 100644 --- a/clients/client-ecs/src/commands/DescribeTaskSetsCommand.ts +++ b/clients/client-ecs/src/commands/DescribeTaskSetsCommand.ts @@ -149,7 +149,7 @@ export interface DescribeTaskSetsCommandOutput extends DescribeTaskSetsResponse, *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DescribeTasksCommand.ts b/clients/client-ecs/src/commands/DescribeTasksCommand.ts index 61559811d2d07..de4edabf7ea21 100644 --- a/clients/client-ecs/src/commands/DescribeTasksCommand.ts +++ b/clients/client-ecs/src/commands/DescribeTasksCommand.ts @@ -239,7 +239,7 @@ export interface DescribeTasksCommandOutput extends DescribeTasksResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/DiscoverPollEndpointCommand.ts b/clients/client-ecs/src/commands/DiscoverPollEndpointCommand.ts index 08519b4fc364b..a7245ecbc4085 100644 --- a/clients/client-ecs/src/commands/DiscoverPollEndpointCommand.ts +++ b/clients/client-ecs/src/commands/DiscoverPollEndpointCommand.ts @@ -67,7 +67,7 @@ export interface DiscoverPollEndpointCommandOutput extends DiscoverPollEndpointR *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ExecuteCommandCommand.ts b/clients/client-ecs/src/commands/ExecuteCommandCommand.ts index 6b51117cdc624..5f967859a5280 100644 --- a/clients/client-ecs/src/commands/ExecuteCommandCommand.ts +++ b/clients/client-ecs/src/commands/ExecuteCommandCommand.ts @@ -88,7 +88,7 @@ export interface ExecuteCommandCommandOutput extends ExecuteCommandResponse, __M *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/GetTaskProtectionCommand.ts b/clients/client-ecs/src/commands/GetTaskProtectionCommand.ts index 7301d17dfa7fd..9dc23c9034972 100644 --- a/clients/client-ecs/src/commands/GetTaskProtectionCommand.ts +++ b/clients/client-ecs/src/commands/GetTaskProtectionCommand.ts @@ -80,7 +80,7 @@ export interface GetTaskProtectionCommandOutput extends GetTaskProtectionRespons *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListAccountSettingsCommand.ts b/clients/client-ecs/src/commands/ListAccountSettingsCommand.ts index e00fb1d4e941f..897c84296b963 100644 --- a/clients/client-ecs/src/commands/ListAccountSettingsCommand.ts +++ b/clients/client-ecs/src/commands/ListAccountSettingsCommand.ts @@ -74,7 +74,7 @@ export interface ListAccountSettingsCommandOutput extends ListAccountSettingsRes *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListClustersCommand.ts b/clients/client-ecs/src/commands/ListClustersCommand.ts index 3f29ab18b5187..e614572c7ba3e 100644 --- a/clients/client-ecs/src/commands/ListClustersCommand.ts +++ b/clients/client-ecs/src/commands/ListClustersCommand.ts @@ -65,7 +65,7 @@ export interface ListClustersCommandOutput extends ListClustersResponse, __Metad *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListContainerInstancesCommand.ts b/clients/client-ecs/src/commands/ListContainerInstancesCommand.ts index eec98c3474fe1..28a838e1d1d7e 100644 --- a/clients/client-ecs/src/commands/ListContainerInstancesCommand.ts +++ b/clients/client-ecs/src/commands/ListContainerInstancesCommand.ts @@ -70,7 +70,7 @@ export interface ListContainerInstancesCommandOutput extends ListContainerInstan *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListServiceDeploymentsCommand.ts b/clients/client-ecs/src/commands/ListServiceDeploymentsCommand.ts new file mode 100644 index 0000000000000..0dc92168f694d --- /dev/null +++ b/clients/client-ecs/src/commands/ListServiceDeploymentsCommand.ts @@ -0,0 +1,151 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; +import { commonParams } from "../endpoint/EndpointParameters"; +import { ListServiceDeploymentsRequest, ListServiceDeploymentsResponse } from "../models/models_0"; +import { de_ListServiceDeploymentsCommand, se_ListServiceDeploymentsCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListServiceDeploymentsCommand}. + */ +export interface ListServiceDeploymentsCommandInput extends ListServiceDeploymentsRequest {} +/** + * @public + * + * The output of {@link ListServiceDeploymentsCommand}. + */ +export interface ListServiceDeploymentsCommandOutput extends ListServiceDeploymentsResponse, __MetadataBearer {} + +/** + *

    This operation lists all the service deployments that meet the specified filter criteria.

    + *

    A service deployment happens when you release a softwre update for the service. You + * route traffic from the running service revisions to the new service revison and control + * the number of running tasks.

    + *

    This API returns the values that you use for the request parameters in DescribeServiceRevisions.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ECSClient, ListServiceDeploymentsCommand } from "@aws-sdk/client-ecs"; // ES Modules import + * // const { ECSClient, ListServiceDeploymentsCommand } = require("@aws-sdk/client-ecs"); // CommonJS import + * const client = new ECSClient(config); + * const input = { // ListServiceDeploymentsRequest + * service: "STRING_VALUE", // required + * cluster: "STRING_VALUE", + * status: [ // ServiceDeploymentStatusList + * "PENDING" || "SUCCESSFUL" || "STOPPED" || "STOP_REQUESTED" || "IN_PROGRESS" || "ROLLBACK_IN_PROGRESS" || "ROLLBACK_SUCCESSFUL" || "ROLLBACK_FAILED", + * ], + * createdAt: { // CreatedAt + * before: new Date("TIMESTAMP"), + * after: new Date("TIMESTAMP"), + * }, + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListServiceDeploymentsCommand(input); + * const response = await client.send(command); + * // { // ListServiceDeploymentsResponse + * // serviceDeployments: [ // ServiceDeploymentsBrief + * // { // ServiceDeploymentBrief + * // serviceDeploymentArn: "STRING_VALUE", + * // serviceArn: "STRING_VALUE", + * // clusterArn: "STRING_VALUE", + * // startedAt: new Date("TIMESTAMP"), + * // createdAt: new Date("TIMESTAMP"), + * // finishedAt: new Date("TIMESTAMP"), + * // targetServiceRevisionArn: "STRING_VALUE", + * // status: "PENDING" || "SUCCESSFUL" || "STOPPED" || "STOP_REQUESTED" || "IN_PROGRESS" || "ROLLBACK_IN_PROGRESS" || "ROLLBACK_SUCCESSFUL" || "ROLLBACK_FAILED", + * // statusReason: "STRING_VALUE", + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListServiceDeploymentsCommandInput - {@link ListServiceDeploymentsCommandInput} + * @returns {@link ListServiceDeploymentsCommandOutput} + * @see {@link ListServiceDeploymentsCommandInput} for command's `input` shape. + * @see {@link ListServiceDeploymentsCommandOutput} for command's `response` shape. + * @see {@link ECSClientResolvedConfig | config} for ECSClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have authorization to perform the requested action.

    + * + * @throws {@link ClientException} (client fault) + *

    These errors are usually caused by a client action. This client action might be using + * an action or resource on behalf of a user that doesn't have permissions to use the + * action or resource. Or, it might be specifying an identifier that isn't valid.

    + *

    The following list includes additional causes for the error:

    + *
      + *
    • + *

      The RunTask could not be processed because you use managed + * scaling and there is a capacity error because the quota of tasks in the + * PROVISIONING per cluster has been reached. For information + * about the service quotas, see Amazon ECS + * service quotas.

      + *
    • + *
    + * + * @throws {@link InvalidParameterException} (client fault) + *

    The specified parameter isn't valid. Review the available parameters for the API + * request.

    + * + * @throws {@link ServerException} (server fault) + *

    These errors are usually caused by a server issue.

    + * + * @throws {@link ServiceNotFoundException} (client fault) + *

    The specified service wasn't found. You can view your available services with ListServices. Amazon ECS services are cluster specific and Region + * specific.

    + * + * @throws {@link UnsupportedFeatureException} (client fault) + *

    The specified task isn't supported in this Region.

    + * + * @throws {@link ECSServiceException} + *

    Base exception class for all service exceptions from ECS service.

    + * + * @public + */ +export class ListServiceDeploymentsCommand extends $Command + .classBuilder< + ListServiceDeploymentsCommandInput, + ListServiceDeploymentsCommandOutput, + ECSClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep(commonParams) + .m(function (this: any, Command: any, cs: any, config: ECSClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AmazonEC2ContainerServiceV20141113", "ListServiceDeployments", {}) + .n("ECSClient", "ListServiceDeploymentsCommand") + .f(void 0, void 0) + .ser(se_ListServiceDeploymentsCommand) + .de(de_ListServiceDeploymentsCommand) + .build() { + /** @internal type navigation helper, not in runtime. */ + protected declare static __types: { + api: { + input: ListServiceDeploymentsRequest; + output: ListServiceDeploymentsResponse; + }; + sdk: { + input: ListServiceDeploymentsCommandInput; + output: ListServiceDeploymentsCommandOutput; + }; + }; +} diff --git a/clients/client-ecs/src/commands/ListServicesByNamespaceCommand.ts b/clients/client-ecs/src/commands/ListServicesByNamespaceCommand.ts index 1e8848d2db645..2dfad8248357d 100644 --- a/clients/client-ecs/src/commands/ListServicesByNamespaceCommand.ts +++ b/clients/client-ecs/src/commands/ListServicesByNamespaceCommand.ts @@ -70,7 +70,7 @@ export interface ListServicesByNamespaceCommandOutput extends ListServicesByName *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListServicesCommand.ts b/clients/client-ecs/src/commands/ListServicesCommand.ts index 6a3cf586ec313..6808962abe5a7 100644 --- a/clients/client-ecs/src/commands/ListServicesCommand.ts +++ b/clients/client-ecs/src/commands/ListServicesCommand.ts @@ -69,7 +69,7 @@ export interface ListServicesCommandOutput extends ListServicesResponse, __Metad *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListTagsForResourceCommand.ts b/clients/client-ecs/src/commands/ListTagsForResourceCommand.ts index 0b2ab7ec67a3a..80440f2c43849 100644 --- a/clients/client-ecs/src/commands/ListTagsForResourceCommand.ts +++ b/clients/client-ecs/src/commands/ListTagsForResourceCommand.ts @@ -66,7 +66,7 @@ export interface ListTagsForResourceCommandOutput extends ListTagsForResourceRes *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListTaskDefinitionFamiliesCommand.ts b/clients/client-ecs/src/commands/ListTaskDefinitionFamiliesCommand.ts index f3ff28721ba82..6f27a433a4cff 100644 --- a/clients/client-ecs/src/commands/ListTaskDefinitionFamiliesCommand.ts +++ b/clients/client-ecs/src/commands/ListTaskDefinitionFamiliesCommand.ts @@ -73,7 +73,7 @@ export interface ListTaskDefinitionFamiliesCommandOutput extends ListTaskDefinit *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListTaskDefinitionsCommand.ts b/clients/client-ecs/src/commands/ListTaskDefinitionsCommand.ts index 7278947164fff..231ec35e1d99a 100644 --- a/clients/client-ecs/src/commands/ListTaskDefinitionsCommand.ts +++ b/clients/client-ecs/src/commands/ListTaskDefinitionsCommand.ts @@ -70,7 +70,7 @@ export interface ListTaskDefinitionsCommandOutput extends ListTaskDefinitionsRes *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/ListTasksCommand.ts b/clients/client-ecs/src/commands/ListTasksCommand.ts index c28a82c94c2a0..c866f882c8ce1 100644 --- a/clients/client-ecs/src/commands/ListTasksCommand.ts +++ b/clients/client-ecs/src/commands/ListTasksCommand.ts @@ -75,7 +75,7 @@ export interface ListTasksCommandOutput extends ListTasksResponse, __MetadataBea *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/PutAccountSettingCommand.ts b/clients/client-ecs/src/commands/PutAccountSettingCommand.ts index 60fa2da0d2469..a8f1da089935e 100644 --- a/clients/client-ecs/src/commands/PutAccountSettingCommand.ts +++ b/clients/client-ecs/src/commands/PutAccountSettingCommand.ts @@ -72,7 +72,7 @@ export interface PutAccountSettingCommandOutput extends PutAccountSettingRespons *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/PutAccountSettingDefaultCommand.ts b/clients/client-ecs/src/commands/PutAccountSettingDefaultCommand.ts index e94d3738c4e71..30c65c6a61c56 100644 --- a/clients/client-ecs/src/commands/PutAccountSettingDefaultCommand.ts +++ b/clients/client-ecs/src/commands/PutAccountSettingDefaultCommand.ts @@ -68,7 +68,7 @@ export interface PutAccountSettingDefaultCommandOutput extends PutAccountSetting *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/PutClusterCapacityProvidersCommand.ts b/clients/client-ecs/src/commands/PutClusterCapacityProvidersCommand.ts index 7d0fefa781323..a9d7bf5d56e6d 100644 --- a/clients/client-ecs/src/commands/PutClusterCapacityProvidersCommand.ts +++ b/clients/client-ecs/src/commands/PutClusterCapacityProvidersCommand.ts @@ -156,7 +156,7 @@ export interface PutClusterCapacityProvidersCommandOutput *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/RegisterContainerInstanceCommand.ts b/clients/client-ecs/src/commands/RegisterContainerInstanceCommand.ts index 954fa1ea32463..bab323dba6c18 100644 --- a/clients/client-ecs/src/commands/RegisterContainerInstanceCommand.ts +++ b/clients/client-ecs/src/commands/RegisterContainerInstanceCommand.ts @@ -184,7 +184,7 @@ export interface RegisterContainerInstanceCommandOutput extends RegisterContaine *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/RegisterTaskDefinitionCommand.ts b/clients/client-ecs/src/commands/RegisterTaskDefinitionCommand.ts index 0505b6d90b043..154b32d115d26 100644 --- a/clients/client-ecs/src/commands/RegisterTaskDefinitionCommand.ts +++ b/clients/client-ecs/src/commands/RegisterTaskDefinitionCommand.ts @@ -606,7 +606,7 @@ export interface RegisterTaskDefinitionCommandOutput extends RegisterTaskDefinit *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/RunTaskCommand.ts b/clients/client-ecs/src/commands/RunTaskCommand.ts index 31b0cc9faaf65..70d235ad0fbb9 100644 --- a/clients/client-ecs/src/commands/RunTaskCommand.ts +++ b/clients/client-ecs/src/commands/RunTaskCommand.ts @@ -393,7 +393,7 @@ export interface RunTaskCommandOutput extends RunTaskResponse, __MetadataBearer *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/StartTaskCommand.ts b/clients/client-ecs/src/commands/StartTaskCommand.ts index ff12b70828e7b..f1672c6720377 100644 --- a/clients/client-ecs/src/commands/StartTaskCommand.ts +++ b/clients/client-ecs/src/commands/StartTaskCommand.ts @@ -340,7 +340,7 @@ export interface StartTaskCommandOutput extends StartTaskResponse, __MetadataBea *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/StopTaskCommand.ts b/clients/client-ecs/src/commands/StopTaskCommand.ts index b46711ead71ed..af3695ef64acc 100644 --- a/clients/client-ecs/src/commands/StopTaskCommand.ts +++ b/clients/client-ecs/src/commands/StopTaskCommand.ts @@ -237,7 +237,7 @@ export interface StopTaskCommandOutput extends StopTaskResponse, __MetadataBeare *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/SubmitAttachmentStateChangesCommand.ts b/clients/client-ecs/src/commands/SubmitAttachmentStateChangesCommand.ts index 4f20193ca9ee4..3002878208b8d 100644 --- a/clients/client-ecs/src/commands/SubmitAttachmentStateChangesCommand.ts +++ b/clients/client-ecs/src/commands/SubmitAttachmentStateChangesCommand.ts @@ -78,7 +78,7 @@ export interface SubmitAttachmentStateChangesCommandOutput *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/SubmitContainerStateChangeCommand.ts b/clients/client-ecs/src/commands/SubmitContainerStateChangeCommand.ts index 077fc7f3e8b07..80b800400f9ad 100644 --- a/clients/client-ecs/src/commands/SubmitContainerStateChangeCommand.ts +++ b/clients/client-ecs/src/commands/SubmitContainerStateChangeCommand.ts @@ -83,7 +83,7 @@ export interface SubmitContainerStateChangeCommandOutput extends SubmitContainer *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/SubmitTaskStateChangeCommand.ts b/clients/client-ecs/src/commands/SubmitTaskStateChangeCommand.ts index c7c04cb1a3c76..307bb350f7c93 100644 --- a/clients/client-ecs/src/commands/SubmitTaskStateChangeCommand.ts +++ b/clients/client-ecs/src/commands/SubmitTaskStateChangeCommand.ts @@ -107,7 +107,7 @@ export interface SubmitTaskStateChangeCommandOutput extends SubmitTaskStateChang *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/TagResourceCommand.ts b/clients/client-ecs/src/commands/TagResourceCommand.ts index 02921f8c566fa..9893a154eed9b 100644 --- a/clients/client-ecs/src/commands/TagResourceCommand.ts +++ b/clients/client-ecs/src/commands/TagResourceCommand.ts @@ -68,7 +68,7 @@ export interface TagResourceCommandOutput extends TagResourceResponse, __Metadat *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UntagResourceCommand.ts b/clients/client-ecs/src/commands/UntagResourceCommand.ts index 4830022bab810..83a624132d185 100644 --- a/clients/client-ecs/src/commands/UntagResourceCommand.ts +++ b/clients/client-ecs/src/commands/UntagResourceCommand.ts @@ -62,7 +62,7 @@ export interface UntagResourceCommandOutput extends UntagResourceResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateCapacityProviderCommand.ts b/clients/client-ecs/src/commands/UpdateCapacityProviderCommand.ts index e15af2d64c310..e42cb88dc451a 100644 --- a/clients/client-ecs/src/commands/UpdateCapacityProviderCommand.ts +++ b/clients/client-ecs/src/commands/UpdateCapacityProviderCommand.ts @@ -96,7 +96,7 @@ export interface UpdateCapacityProviderCommandOutput extends UpdateCapacityProvi *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateClusterCommand.ts b/clients/client-ecs/src/commands/UpdateClusterCommand.ts index 0ea37f48e9c47..2b4ccea3ad132 100644 --- a/clients/client-ecs/src/commands/UpdateClusterCommand.ts +++ b/clients/client-ecs/src/commands/UpdateClusterCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateClusterRequest, UpdateClusterResponse } from "../models/models_0"; +import { UpdateClusterRequest, UpdateClusterResponse } from "../models/models_1"; import { de_UpdateClusterCommand, se_UpdateClusterCommand } from "../protocols/Aws_json1_1"; /** @@ -157,7 +157,7 @@ export interface UpdateClusterCommandOutput extends UpdateClusterResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateClusterSettingsCommand.ts b/clients/client-ecs/src/commands/UpdateClusterSettingsCommand.ts index 8af6c34b64b0a..06ffe09cb43ca 100644 --- a/clients/client-ecs/src/commands/UpdateClusterSettingsCommand.ts +++ b/clients/client-ecs/src/commands/UpdateClusterSettingsCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateClusterSettingsRequest, UpdateClusterSettingsResponse } from "../models/models_0"; +import { UpdateClusterSettingsRequest, UpdateClusterSettingsResponse } from "../models/models_1"; import { de_UpdateClusterSettingsCommand, se_UpdateClusterSettingsCommand } from "../protocols/Aws_json1_1"; /** @@ -137,7 +137,7 @@ export interface UpdateClusterSettingsCommandOutput extends UpdateClusterSetting *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateContainerAgentCommand.ts b/clients/client-ecs/src/commands/UpdateContainerAgentCommand.ts index b887ae663c7a4..0eb1dd6067f0b 100644 --- a/clients/client-ecs/src/commands/UpdateContainerAgentCommand.ts +++ b/clients/client-ecs/src/commands/UpdateContainerAgentCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateContainerAgentRequest, UpdateContainerAgentResponse } from "../models/models_0"; +import { UpdateContainerAgentRequest, UpdateContainerAgentResponse } from "../models/models_1"; import { de_UpdateContainerAgentCommand, se_UpdateContainerAgentCommand } from "../protocols/Aws_json1_1"; /** @@ -159,7 +159,7 @@ export interface UpdateContainerAgentCommandOutput extends UpdateContainerAgentR *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateContainerInstancesStateCommand.ts b/clients/client-ecs/src/commands/UpdateContainerInstancesStateCommand.ts index 26f3f41380cb0..e42969a0576b2 100644 --- a/clients/client-ecs/src/commands/UpdateContainerInstancesStateCommand.ts +++ b/clients/client-ecs/src/commands/UpdateContainerInstancesStateCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateContainerInstancesStateRequest, UpdateContainerInstancesStateResponse } from "../models/models_0"; +import { UpdateContainerInstancesStateRequest, UpdateContainerInstancesStateResponse } from "../models/models_1"; import { de_UpdateContainerInstancesStateCommand, se_UpdateContainerInstancesStateCommand, @@ -206,7 +206,7 @@ export interface UpdateContainerInstancesStateCommandOutput *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateServiceCommand.ts b/clients/client-ecs/src/commands/UpdateServiceCommand.ts index a1372a158712a..657fd836403e8 100644 --- a/clients/client-ecs/src/commands/UpdateServiceCommand.ts +++ b/clients/client-ecs/src/commands/UpdateServiceCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateServiceRequest, UpdateServiceResponse } from "../models/models_0"; +import { UpdateServiceRequest, UpdateServiceResponse } from "../models/models_1"; import { de_UpdateServiceCommand, se_UpdateServiceCommand } from "../protocols/Aws_json1_1"; /** @@ -193,8 +193,8 @@ export interface UpdateServiceCommandOutput extends UpdateServiceResponse, __Met * alarmNames: [ // StringList // required * "STRING_VALUE", * ], - * enable: true || false, // required * rollback: true || false, // required + * enable: true || false, // required * }, * }, * networkConfiguration: { // NetworkConfiguration @@ -360,8 +360,8 @@ export interface UpdateServiceCommandOutput extends UpdateServiceResponse, __Met * // alarmNames: [ // StringList // required * // "STRING_VALUE", * // ], - * // enable: true || false, // required * // rollback: true || false, // required + * // enable: true || false, // required * // }, * // }, * // taskSets: [ // TaskSets @@ -607,7 +607,7 @@ export interface UpdateServiceCommandOutput extends UpdateServiceResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateServicePrimaryTaskSetCommand.ts b/clients/client-ecs/src/commands/UpdateServicePrimaryTaskSetCommand.ts index efa70ea942807..22aa7575679d0 100644 --- a/clients/client-ecs/src/commands/UpdateServicePrimaryTaskSetCommand.ts +++ b/clients/client-ecs/src/commands/UpdateServicePrimaryTaskSetCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateServicePrimaryTaskSetRequest, UpdateServicePrimaryTaskSetResponse } from "../models/models_0"; +import { UpdateServicePrimaryTaskSetRequest, UpdateServicePrimaryTaskSetResponse } from "../models/models_1"; import { de_UpdateServicePrimaryTaskSetCommand, se_UpdateServicePrimaryTaskSetCommand } from "../protocols/Aws_json1_1"; /** @@ -138,7 +138,7 @@ export interface UpdateServicePrimaryTaskSetCommandOutput *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateTaskProtectionCommand.ts b/clients/client-ecs/src/commands/UpdateTaskProtectionCommand.ts index 1a57e040e80e2..feb50540dfb58 100644 --- a/clients/client-ecs/src/commands/UpdateTaskProtectionCommand.ts +++ b/clients/client-ecs/src/commands/UpdateTaskProtectionCommand.ts @@ -6,7 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateTaskProtectionRequest, UpdateTaskProtectionResponse } from "../models/models_0"; +import { UpdateTaskProtectionRequest, UpdateTaskProtectionResponse } from "../models/models_1"; import { de_UpdateTaskProtectionCommand, se_UpdateTaskProtectionCommand } from "../protocols/Aws_json1_1"; /** @@ -108,7 +108,7 @@ export interface UpdateTaskProtectionCommandOutput extends UpdateTaskProtectionR *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/UpdateTaskSetCommand.ts b/clients/client-ecs/src/commands/UpdateTaskSetCommand.ts index f92c8c65942cf..2fdf664845a76 100644 --- a/clients/client-ecs/src/commands/UpdateTaskSetCommand.ts +++ b/clients/client-ecs/src/commands/UpdateTaskSetCommand.ts @@ -6,8 +6,7 @@ import { MetadataBearer as __MetadataBearer } from "@smithy/types"; import { ECSClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ECSClient"; import { commonParams } from "../endpoint/EndpointParameters"; -import { UpdateTaskSetRequest } from "../models/models_0"; -import { UpdateTaskSetResponse } from "../models/models_1"; +import { UpdateTaskSetRequest, UpdateTaskSetResponse } from "../models/models_1"; import { de_UpdateTaskSetCommand, se_UpdateTaskSetCommand } from "../protocols/Aws_json1_1"; /** @@ -139,7 +138,7 @@ export interface UpdateTaskSetCommandOutput extends UpdateTaskSetResponse, __Met *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • diff --git a/clients/client-ecs/src/commands/index.ts b/clients/client-ecs/src/commands/index.ts index 95ce156ad7126..e767aceb719e6 100644 --- a/clients/client-ecs/src/commands/index.ts +++ b/clients/client-ecs/src/commands/index.ts @@ -15,6 +15,8 @@ export * from "./DeregisterTaskDefinitionCommand"; export * from "./DescribeCapacityProvidersCommand"; export * from "./DescribeClustersCommand"; export * from "./DescribeContainerInstancesCommand"; +export * from "./DescribeServiceDeploymentsCommand"; +export * from "./DescribeServiceRevisionsCommand"; export * from "./DescribeServicesCommand"; export * from "./DescribeTaskDefinitionCommand"; export * from "./DescribeTaskSetsCommand"; @@ -26,6 +28,7 @@ export * from "./ListAccountSettingsCommand"; export * from "./ListAttributesCommand"; export * from "./ListClustersCommand"; export * from "./ListContainerInstancesCommand"; +export * from "./ListServiceDeploymentsCommand"; export * from "./ListServicesByNamespaceCommand"; export * from "./ListServicesCommand"; export * from "./ListTagsForResourceCommand"; diff --git a/clients/client-ecs/src/models/models_0.ts b/clients/client-ecs/src/models/models_0.ts index f91c4073f956f..74b14457de66e 100644 --- a/clients/client-ecs/src/models/models_0.ts +++ b/clients/client-ecs/src/models/models_0.ts @@ -50,7 +50,7 @@ export type AgentUpdateStatus = (typeof AgentUpdateStatus)[keyof typeof AgentUpd *
  • *

    The RunTask could not be processed because you use managed * scaling and there is a capacity error because the quota of tasks in the - * PROVISIONING per cluster has been reached. For information + * PROVISIONING per cluster has been reached. For information * about the service quotas, see Amazon ECS * service quotas.

    *
  • @@ -131,8 +131,7 @@ export interface ManagedScaling { targetCapacity?: number; /** - *

    The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale - * in process is not affected by this parameter If this parameter is omitted, the default + *

    The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. If this parameter is omitted, the default * value of 1 is used.

    *

    When additional capacity is required, Amazon ECS will scale up the minimum scaling step * size even if the actual demand is less than the minimum scaling step size.

    @@ -671,7 +670,7 @@ export interface ExecuteCommandConfiguration { */ export interface ManagedStorageConfiguration { /** - *

    Specify a Key Management Service key ID to encrypt the managed storage.

    + *

    Specify a Amazon Web Services Key Management Service key ID to encrypt the managed storage.

    * @public */ kmsKeyId?: string; @@ -1345,13 +1344,6 @@ export interface DeploymentAlarms { */ alarmNames: string[] | undefined; - /** - *

    Determines whether to use the CloudWatch alarm option in the service deployment - * process.

    - * @public - */ - enable: boolean | undefined; - /** *

    Determines whether to configure Amazon ECS to roll back the service if a service deployment * fails. If rollback is used, when a service deployment fails, the service is rolled back @@ -1359,6 +1351,13 @@ export interface DeploymentAlarms { * @public */ rollback: boolean | undefined; + + /** + *

    Determines whether to use the CloudWatch alarm option in the service deployment + * process.

    + * @public + */ + enable: boolean | undefined; } /** @@ -1393,8 +1392,8 @@ export interface DeploymentCircuitBreaker { } /** - *

    Optional deployment parameters that control how many tasks run during a deployment and - * the ordering of stopping and starting tasks.

    + *

    Optional deployment parameters that control how many tasks run during the deployment and the + * failure detection methods.

    * @public */ export interface DeploymentConfiguration { @@ -1626,7 +1625,7 @@ export interface LoadBalancer { targetGroupArn?: string; /** - *

    The name of the load balancer to associate with the Amazon ECS service or task set.

    + *

    The name of the load balancer to associate with the service or task set.

    *

    If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be * omitted.

    * @public @@ -2913,8 +2912,8 @@ export interface CreateServiceRequest { role?: string; /** - *

    Optional deployment parameters that control how many tasks run during the deployment - * and the ordering of stopping and starting tasks.

    + *

    Optional deployment parameters that control how many tasks run during the deployment and the + * failure detection methods.

    * @public */ deploymentConfiguration?: DeploymentConfiguration; @@ -2953,8 +2952,8 @@ export interface CreateServiceRequest { *

    If you do not use an Elastic Load Balancing, we recommend that you use the startPeriod in * the task definition health check parameters. For more information, see Health * check.

    - *

    If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you - * can specify a health check grace period of up to 2,147,483,647 seconds (about 69 years). + *

    If your service's tasks take a while to start and respond to Elastic Load Balancing 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.

    @@ -3099,7 +3098,7 @@ export interface CreateServiceRequest { */ export interface DeploymentEphemeralStorage { /** - *

    Specify an Key Management Service key ID to encrypt the ephemeral storage for + *

    Specify an Amazon Web Services Key Management Service key ID to encrypt the ephemeral storage for * deployment.

    * @public */ @@ -3733,7 +3732,7 @@ export interface Service { launchType?: LaunchType; /** - *

    The capacity provider strategy the service uses. When using the DescribeServices API, + *

    The capacity provider strategy the service uses. When using DescribeServices, * this field is omitted if the service was created using a launch type.

    * @public */ @@ -3869,9 +3868,8 @@ export interface Service { deploymentController?: DeploymentController; /** - *

    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.

    + *

    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 both the key and value.

    *

    The following basic restrictions apply to tags:

    *
      *
    • @@ -5333,13 +5331,13 @@ export const TransportProtocol = { export type TransportProtocol = (typeof TransportProtocol)[keyof typeof TransportProtocol]; /** - *

      Port mappings allow containers to access ports on the host container instance to send - * or receive traffic. Port mappings are specified as part of the container - * definition.

      - *

      If you use containers in a task with the awsvpc or host - * network mode, specify the exposed ports using containerPort. The - * hostPort can be left blank or it must be the same value as the - * containerPort.

      + *

      Port mappings expose your container's network ports to the outside world. this allows + * clients to access your application. It's also used for inter-container communication + * within the same task.

      + *

      For task definitions (both the Fargate and EC2 launch type) that use the + * awsvpc network mode, only specify the containerPort. The + * hostPort is always ignored, and the container port is automatically + * mapped to a random high-numbered port on the host.

      *

      Most fields of this parameter (containerPort, hostPort, * protocol) maps to PortBindings in the docker container create command and the * --publish option to docker @@ -5359,13 +5357,16 @@ export interface PortMapping { /** *

      The port number on the container that's bound to the user-specified or automatically * assigned host port.

      - *

      If you use containers in a task with the awsvpc or host - * network mode, specify the exposed ports using containerPort.

      - *

      If you use containers in a task with the bridge network mode and you - * specify a container port and not a host port, your container automatically receives a - * host port in the ephemeral port range. For more information, see hostPort. - * Port mappings that are automatically assigned in this way do not count toward the 100 - * reserved ports limit of a container instance.

      + *

      For tasks that use the Fargate launch type or EC2 tasks that use the + * awsvpc network mode, you use containerPort to specify the + * exposed ports.

      + *

      For Windows containers on Fargate, you can't use port 3150 for the + * containerPort. This is because it's reserved.

      + *

      Suppose that you're using containers in a task with the EC2 launch type + * and you specify a container port and not a host port. Then, your container automatically + * receives a host port in the ephemeral port range. For more information, see + * hostPort. Port mappings that are automatically assigned in this way + * don't count toward the 100 reserved ports quota of a container instance.

      * @public */ containerPort?: number; @@ -5562,12 +5563,12 @@ export type ResourceType = (typeof ResourceType)[keyof typeof ResourceType]; export interface ResourceRequirement { /** *

      The value for the specified resource type.

      - *

      When the type is GPU, the value is the number of physical - * GPUs the Amazon ECS container agent reserves for the container. The number - * of GPUs that's reserved for all containers in a task can't exceed the number of - * available GPUs on the container instance that the task is launched on.

      - *

      When the type is InferenceAccelerator, the value matches the - * deviceName for an InferenceAccelerator specified in a task definition.

      + *

      When the type is GPU, the value is the number of physical GPUs the + * Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for + * all containers in a task can't exceed the number of available GPUs on the container + * instance that the task is launched on.

      + *

      When the type is InferenceAccelerator, the value matches + * the deviceName for an InferenceAccelerator specified in a task definition.

      * @public */ value: string | undefined; @@ -6763,12 +6764,14 @@ export interface RuntimePlatform { *

      You can run your Linux tasks on an ARM-based platform by setting the value to * ARM64. This option is available for tasks that run on Linux Amazon EC2 * instance or Linux containers on Fargate.

      + *

      The default is X86_64.

      * @public */ cpuArchitecture?: CPUArchitecture; /** *

      The operating system.

      + *

      The default is Linux.

      * @public */ operatingSystemFamily?: OSFamily; @@ -7195,11 +7198,13 @@ export interface TaskDefinition { * to use a non-root user.

      * *

      If the network mode is awsvpc, the task is allocated an elastic network - * interface, and you must specify a NetworkConfiguration value when you create + * interface, and you must specify a NetworkConfiguration value when you create * a service or run a task with the task definition. For more information, see Task Networking in the * Amazon Elastic Container Service Developer Guide.

      *

      If the network mode is host, you cannot run multiple instantiations of the * same task on a single container instance when port mappings are used.

      + *

      For more information, see Network + * settings in the Docker run reference.

      * @public */ networkMode?: NetworkMode; @@ -7380,9 +7385,12 @@ export interface TaskDefinition { *

      If task is specified, all containers within the specified * task share the same process namespace.

      *

      If no value is specified, the - * default is a private namespace for each container.

      + * default is a private namespace for each container. For more information, + * see PID settings in the Docker run + * reference.

      *

      If the host PID mode is used, there's a heightened risk - * of undesired process namespace exposure.

      + * of undesired process namespace exposure. For more information, see + * Docker security.

      * *

      This parameter is not supported for Windows containers.

      *
      @@ -7405,9 +7413,12 @@ export interface TaskDefinition { * share the same IPC resources. If none is specified, then IPC resources * within the containers of a task are private and not shared with other containers in a * task or on the container instance. If no value is specified, then the IPC resource - * namespace sharing depends on the Docker daemon setting on the container instance.

      + * namespace sharing depends on the Docker daemon setting on the container instance. For + * more information, see IPC + * settings in the Docker run reference.

      *

      If the host IPC mode is used, be aware that there is a heightened risk of - * undesired IPC namespace expose.

      + * undesired IPC namespace expose. For more information, see Docker + * security.

      *

      If you are setting namespaced kernel parameters using systemControls for * the containers in the task, the following will apply to your IPC resource namespace. For * more information, see System @@ -8173,2063 +8184,1976 @@ export interface DescribeContainerInstancesResponse { failures?: Failure[]; } +/** + * @public + */ +export interface DescribeServiceDeploymentsRequest { + /** + *

      The ARN of the service deployment.

      + *

      You can specify a maximum of 20 ARNs.

      + * @public + */ + serviceDeploymentArns: string[] | undefined; +} + /** * @public * @enum */ -export const ServiceField = { - TAGS: "TAGS", +export const ServiceDeploymentRollbackMonitorsStatus = { + DISABLED: "DISABLED", + MONITORING: "MONITORING", + MONITORING_COMPLETE: "MONITORING_COMPLETE", + TRIGGERED: "TRIGGERED", } as const; /** * @public */ -export type ServiceField = (typeof ServiceField)[keyof typeof ServiceField]; +export type ServiceDeploymentRollbackMonitorsStatus = + (typeof ServiceDeploymentRollbackMonitorsStatus)[keyof typeof ServiceDeploymentRollbackMonitorsStatus]; /** + *

      The CloudWatch alarms used to determine a service deployment failed.

      + *

      Amazon ECS considers the service deployment as failed when any of the alarms move to the ALARM state. For more information, see How CloudWatch alarms detect Amazon ECS deployment failures in the Amazon ECS Developer Guide.

      * @public */ -export interface DescribeServicesRequest { +export interface ServiceDeploymentAlarms { /** - *

      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.

      + *

      The status of the alarms check. Amazon ECS is not using alarms for service deployment failures when the status is DISABLED.

      * @public */ - cluster?: string; + status?: ServiceDeploymentRollbackMonitorsStatus; /** - *

      A list of services to describe. You may specify up to 10 services to describe in a - * single operation.

      + *

      The name of the CloudWatch alarms that determine when a service deployment failed. A "," separates the alarms.

      * @public */ - services: string[] | undefined; + alarmNames?: string[]; /** - *

      Determines whether you want to see the resource tags for the service. If - * TAGS is specified, the tags are included in the response. If this field - * is omitted, tags aren't included in the response.

      + *

      One or more CloudWatch alarm names that have been triggered during the service deployment. A "," + * separates the alarm names.

      * @public */ - include?: ServiceField[]; + triggeredAlarmNames?: string[]; } /** + *

      Information about the circuit breaker used to determine when a service deployment has + * failed.

      + *

      The deployment circuit breaker is the rolling update mechanism that determines if the + * tasks reach a steady state. The deployment circuit breaker has an option that will + * automatically roll back a failed deployment to the last cpompleted service + * revision. For more information, see How the Amazon ECS + * deployment circuit breaker detects failures in the Amazon ECS Developer + * Guide.

      * @public */ -export interface DescribeServicesResponse { +export interface ServiceDeploymentCircuitBreaker { /** - *

      The list of services described.

      + *

      The circuit breaker status. Amazon ECS is not using the circuit breaker for service deployment failures when the status is DISABLED.

      * @public */ - services?: Service[]; + status?: ServiceDeploymentRollbackMonitorsStatus; /** - *

      Any failures associated with the call.

      + *

      The number of times the circuit breaker detected a service deploymeny failure.

      * @public */ - failures?: Failure[]; -} + failureCount?: number; -/** - * @public - * @enum - */ -export const TaskDefinitionField = { - TAGS: "TAGS", -} as const; + /** + *

      The threshhold which determines that the service deployment failed.

      + *

      The deployment circuit breaker calculates the threshold value, and then uses the value to + * determine when to move the deployment to a FAILED state. The deployment circuit breaker + * has a minimum threshold of 3 and a maximum threshold of 200. and uses the values in the + * following formula to determine the deployment failure.

      + *

      + * 0.5 * desired task count + *

      + * @public + */ + threshold?: number; +} /** + *

      Information about the service deployment rollback.

      * @public */ -export type TaskDefinitionField = (typeof TaskDefinitionField)[keyof typeof TaskDefinitionField]; +export interface Rollback { + /** + *

      The reason the rollback happened. For example, the circuit breaker initiated the rollback operation.

      + * @public + */ + reason?: string; -/** - * @public - */ -export interface DescribeTaskDefinitionRequest { /** - *

      The family for the latest ACTIVE revision, - * family and revision (family:revision) for a - * specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to - * describe.

      + *

      Time time that the rollback started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      * @public */ - taskDefinition: string | undefined; + startedAt?: Date; /** - *

      Determines whether to see the resource tags for the task definition. If - * TAGS is specified, the tags are included in the response. If this field - * is omitted, tags aren't included in the response.

      + *

      The ARN of the service revision deployed as part of the rollback.

      + *

      When the type is GPU, the value is the number of physical + * GPUs the Amazon ECS container agent reserves for the container. The number + * of GPUs that's reserved for all containers in a task can't exceed the number of + * available GPUs on the container instance that the task is launched on.

      + *

      When the type is InferenceAccelerator, the value matches the + * deviceName for an InferenceAccelerator specified in a task definition.

      * @public */ - include?: TaskDefinitionField[]; + serviceRevisionArn?: string; } /** + *

      The information about the number of requested, pending, and running tasks for a service revision.

      * @public */ -export interface DescribeTaskDefinitionResponse { +export interface ServiceRevisionSummary { /** - *

      The full task definition description.

      + *

      The ARN of the service revision.

      * @public */ - taskDefinition?: TaskDefinition; + arn?: string; /** - *

      The metadata that's applied to the task definition to help you categorize and organize - * them. Each tag consists of a key and an optional value. You define both.

      - *

      The following basic restrictions apply to tags:

      - *
        - *
      • - *

        Maximum number of tags per resource - 50

        - *
      • - *
      • - *

        For each resource, each tag key must be unique, and each tag key can have only - * one value.

        - *
      • - *
      • - *

        Maximum key length - 128 Unicode characters in UTF-8

        - *
      • - *
      • - *

        Maximum value length - 256 Unicode characters in UTF-8

        - *
      • - *
      • - *

        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: + - = . _ : / @.

        - *
      • - *
      • - *

        Tag keys and values are case-sensitive.

        - *
      • - *
      • - *

        Do not use aws:, AWS:, 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.

        - *
      • - *
      + *

      The number of requested tasks for the service revision.

      * @public */ - tags?: Tag[]; + requestedTaskCount?: number; + + /** + *

      The number of running tasks for the service revision.

      + * @public + */ + runningTaskCount?: number; + + /** + *

      The number of pending tasks for the service revision.

      + * @public + */ + pendingTaskCount?: number; } /** * @public * @enum */ -export const TaskField = { - TAGS: "TAGS", +export const ServiceDeploymentStatus = { + IN_PROGRESS: "IN_PROGRESS", + PENDING: "PENDING", + ROLLBACK_FAILED: "ROLLBACK_FAILED", + ROLLBACK_IN_PROGRESS: "ROLLBACK_IN_PROGRESS", + ROLLBACK_SUCCESSFUL: "ROLLBACK_SUCCESSFUL", + STOPPED: "STOPPED", + STOP_REQUESTED: "STOP_REQUESTED", + SUCCESSFUL: "SUCCESSFUL", } as const; /** * @public */ -export type TaskField = (typeof TaskField)[keyof typeof TaskField]; +export type ServiceDeploymentStatus = (typeof ServiceDeploymentStatus)[keyof typeof ServiceDeploymentStatus]; /** + *

      Information about the service deployment.

      + *

      Service deployments provide a comprehensive view of your deployments. For information + * about service deployments, see View service history using Amazon ECS service deployments + * in the + * Amazon Elastic Container Service Developer Guide + * .

      * @public */ -export interface DescribeTasksRequest { +export interface ServiceDeployment { /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task or tasks to - * describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the task or tasks you - * are describing were launched in any cluster other than the default cluster.

      + *

      The ARN of the service deployment.

      * @public */ - cluster?: string; + serviceDeploymentArn?: string; /** - *

      A list of up to 100 task IDs or full ARN entries.

      + *

      The ARN of the service for this service deployment.

      * @public */ - tasks: string[] | undefined; + serviceArn?: string; /** - *

      Specifies whether you want to see the resource tags for the task. If TAGS - * is specified, the tags are included in the response. If this field is omitted, tags - * aren't included in the response.

      + *

      The ARN of the cluster that hosts the service.

      * @public */ - include?: TaskField[]; -} - -/** - * @public - * @enum - */ -export const Connectivity = { - CONNECTED: "CONNECTED", - DISCONNECTED: "DISCONNECTED", -} as const; - -/** - * @public - */ -export type Connectivity = (typeof Connectivity)[keyof typeof Connectivity]; + clusterArn?: string; -/** - * @public - * @enum - */ -export const HealthStatus = { - HEALTHY: "HEALTHY", - UNHEALTHY: "UNHEALTHY", - UNKNOWN: "UNKNOWN", -} as const; + /** + *

      The time the service deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      + * @public + */ + createdAt?: Date; -/** - * @public - */ -export type HealthStatus = (typeof HealthStatus)[keyof typeof HealthStatus]; + /** + *

      The time the service deployment statred. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      + * @public + */ + startedAt?: Date; -/** - * @public - * @enum - */ -export const ManagedAgentName = { - ExecuteCommandAgent: "ExecuteCommandAgent", -} as const; + /** + *

      The time the service deployment finished. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      + * @public + */ + finishedAt?: Date; -/** - * @public - */ -export type ManagedAgentName = (typeof ManagedAgentName)[keyof typeof ManagedAgentName]; + /** + *

      The time the service deployment stopped. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      + *

      The service deployment stops when any of the following actions happen:

      + *
        + *
      • + *

        A user manually stops the deployment

        + *
      • + *
      • + *

        The rollback option is not in use for the failure detection mechanism (the + * circuit breaker or alarm-based) and the service fails.

        + *
      • + *
      + * @public + */ + stoppedAt?: Date; -/** - *

      Details about the managed agent status for the container.

      - * @public - */ -export interface ManagedAgent { /** - *

      The Unix timestamp for the time when the managed agent was last started.

      + *

      The time that the service deployment was last updated. The format is yyyy-MM-dd + * HH:mm:ss.SSSSSS.

      * @public */ - lastStartedAt?: Date; + updatedAt?: Date; /** - *

      The name of the managed agent. When the execute command feature is turned on, the - * managed agent name is ExecuteCommandAgent.

      + *

      The currently deployed workload configuration.

      * @public */ - name?: ManagedAgentName; + sourceServiceRevisions?: ServiceRevisionSummary[]; /** - *

      The reason for why the managed agent is in the state it is in.

      + *

      The workload configuration being deployed.

      * @public */ - reason?: string; + targetServiceRevision?: ServiceRevisionSummary; /** - *

      The last known status of the managed agent.

      + *

      The service deployment state.

      * @public */ - lastStatus?: string; -} + status?: ServiceDeploymentStatus; -/** - *

      Details on the network bindings between a container and its host container instance. - * After a task reaches the RUNNING status, manual and automatic host and - * container port assignments are visible in the networkBindings section of - * DescribeTasks API responses.

      - * @public - */ -export interface NetworkBinding { /** - *

      The IP address that the container is bound to on the container instance.

      + *

      Information about why the service deployment is in the current status. For example, the circuit breaker detected a failure.

      * @public */ - bindIP?: string; + statusReason?: string; /** - *

      The port number on the container that's used with the network binding.

      + *

      Optional deployment parameters that control how many tasks run during the deployment and the + * failure detection methods.

      * @public */ - containerPort?: number; + deploymentConfiguration?: DeploymentConfiguration; /** - *

      The port number on the host that's used with the network binding.

      + *

      The rollback options the service deployment uses when the deployment fails.

      * @public */ - hostPort?: number; + rollback?: Rollback; /** - *

      The protocol used for the network binding.

      + *

      The circuit breaker configuration that determines a service deployment failed.

      * @public */ - protocol?: TransportProtocol; + deploymentCircuitBreaker?: ServiceDeploymentCircuitBreaker; /** - *

      The port number range on the container that's bound to the dynamically mapped host - * port range.

      - *

      The following rules apply when you specify a containerPortRange:

      - *
        - *
      • - *

        You must use either the bridge network mode or the awsvpc - * network mode.

        - *
      • - *
      • - *

        This parameter is available for both the EC2 and Fargate launch types.

        - *
      • - *
      • - *

        This parameter is available for both the Linux and Windows operating systems.

        - *
      • - *
      • - *

        The container instance must have at least version 1.67.0 of the container agent - * and at least version 1.67.0-1 of the ecs-init package

        - *
      • - *
      • - *

        You can specify a maximum of 100 port ranges per container.

        - *
      • - *
      • - *

        You do not specify a hostPortRange. The value of the hostPortRange is set - * as follows:

        - *
          - *
        • - *

          For containers in a task with the awsvpc network mode, - * the hostPortRange is set to the same value as the - * containerPortRange. This is a static mapping - * strategy.

          - *
        • - *
        • - *

          For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

          - *
        • - *
        - *
      • - *
      • - *

        The containerPortRange valid values are between 1 and - * 65535.

        - *
      • - *
      • - *

        A port can only be included in one port mapping per container.

        - *
      • - *
      • - *

        You cannot specify overlapping port ranges.

        - *
      • - *
      • - *

        The first port in the range must be less than last port in the range.

        - *
      • - *
      • - *

        Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

        - *

        For more information, see Issue #11185 on the Github website.

        - *

        For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

        - *
      • - *
      - *

      You can call - * DescribeTasks - * to view the hostPortRange which - * are the host ports that are bound to the container ports.

      + *

      The CloudWatch alarms that determine when a service deployment fails.

      * @public */ - containerPortRange?: string; + alarms?: ServiceDeploymentAlarms; +} +/** + * @public + */ +export interface DescribeServiceDeploymentsResponse { /** - *

      The port number range on the host that's used with the network binding. This is - * assigned is assigned by Docker and delivered by the Amazon ECS agent.

      + *

      The list of service deployments described.

      * @public */ - hostPortRange?: string; + serviceDeployments?: ServiceDeployment[]; + + /** + *

      Any failures associated with the call.

      + *

      If you decsribe a deployment with a service revision created before October 25, 2024, the + * call fails. The failure includes the service revision ARN and the reason set to + * MISSING.

      + * @public + */ + failures?: Failure[]; } /** - *

      An object representing the elastic network interface for tasks that use the - * awsvpc network mode.

      * @public */ -export interface NetworkInterface { +export interface DescribeServiceRevisionsRequest { /** - *

      The attachment ID for the network interface.

      + *

      The ARN of the service revision.

      + *

      You can specify a maximum of 20 ARNs.

      + *

      You can call ListServiceDeployments to + * get the ARNs.

      * @public */ - attachmentId?: string; + serviceRevisionArns: string[] | undefined; +} + +/** + *

      The details about the container image a service revision uses.

      + *

      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.

      + *

      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 Container image resolution in the Amazon ECS Developer Guide.

      + * @public + */ +export interface ContainerImage { + /** + *

      The name of the container.

      + * @public + */ + containerName?: string; /** - *

      The private IPv4 address for the network interface.

      + *

      The container image digest.

      * @public */ - privateIpv4Address?: string; + imageDigest?: string; /** - *

      The private IPv6 address for the network interface.

      + *

      The container image.

      * @public */ - ipv6Address?: string; + image?: string; } /** - *

      A Docker container that's part of a task.

      + *

      Information about the service revision.

      + *

      A service revision contains a record of the workload configuration Amazon ECS is attempting to deploy. Whenever you create or deploy a service, Amazon ECS automatically creates and captures the configuration that you're trying to deploy in the service revision. For information + * about service revisions, see Amazon ECS service revisions + * in the + * Amazon Elastic Container Service Developer Guide + * .

      * @public */ -export interface Container { +export interface ServiceRevision { /** - *

      The Amazon Resource Name (ARN) of the container.

      + *

      The ARN of the service revision.

      * @public */ - containerArn?: string; + serviceRevisionArn?: string; /** - *

      The ARN of the task.

      + *

      The ARN of the service for the service revision.

      * @public */ - taskArn?: string; + serviceArn?: string; /** - *

      The name of the container.

      + *

      The ARN of the cluster that hosts the service.

      * @public */ - name?: string; + clusterArn?: string; /** - *

      The image used for the container.

      + *

      The task definition the service revision uses.

      * @public */ - image?: string; + taskDefinition?: string; /** - *

      The container image manifest digest.

      + *

      The capacity provider strategy the service revision uses.

      * @public */ - imageDigest?: string; + capacityProviderStrategy?: CapacityProviderStrategyItem[]; /** - *

      The ID of the Docker container.

      + *

      The launch type the service revision uses.

      * @public */ - runtimeId?: string; + launchType?: LaunchType; /** - *

      The last known status of the container.

      + *

      For the Fargate launch type, the platform version the service revision uses.

      * @public */ - lastStatus?: string; + platformVersion?: string; /** - *

      The exit code returned from the container.

      + *

      The platform family the service revision uses.

      * @public */ - exitCode?: number; + platformFamily?: string; /** - *

      A short (255 max characters) human-readable string to provide additional details about - * a running or stopped container.

      + *

      The load balancers the service revision uses.

      * @public */ - reason?: string; + loadBalancers?: LoadBalancer[]; /** - *

      The network bindings associated with the container.

      + *

      The service registries (for Service Discovery) the service revision uses.

      * @public */ - networkBindings?: NetworkBinding[]; + serviceRegistries?: ServiceRegistry[]; /** - *

      The network interfaces associated with the container.

      + *

      The network configuration for a task or service.

      * @public */ - networkInterfaces?: NetworkInterface[]; + networkConfiguration?: NetworkConfiguration; /** - *

      The health status of the container. If health checks aren't configured for this - * container in its task definition, then it reports the health status as - * UNKNOWN.

      + *

      The container images the service revision uses.

      * @public */ - healthStatus?: HealthStatus; + containerImages?: ContainerImage[]; /** - *

      The details of any Amazon ECS managed agents associated with the container.

      + *

      Indicates whether Runtime Monitoring is turned on.

      * @public */ - managedAgents?: ManagedAgent[]; + guardDutyEnabled?: boolean; /** - *

      The number of CPU units set for the container. The value is 0 if no value - * was specified in the container definition when the task definition was - * registered.

      + *

      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.

      + *

      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 Service Connect in the Amazon Elastic Container Service Developer Guide.

      * @public */ - cpu?: string; + serviceConnectConfiguration?: ServiceConnectConfiguration; /** - *

      The hard limit (in MiB) of memory set for the container.

      + *

      The volumes that are configured at deployment that the service revision uses.

      * @public */ - memory?: string; + volumeConfigurations?: ServiceVolumeConfiguration[]; /** - *

      The soft limit (in MiB) of memory set for the container.

      + *

      The amount of ephemeral storage to allocate for the deployment.

      * @public */ - memoryReservation?: string; + fargateEphemeralStorage?: DeploymentEphemeralStorage; /** - *

      The IDs of each GPU assigned to the container.

      + *

      The time that the service revision was created. The format is yyyy-mm-dd HH:mm:ss.SSSSS.

      * @public */ - gpuIds?: string[]; + createdAt?: Date; } /** - *

      The amount of ephemeral storage to allocate for the task.

      * @public */ -export interface TaskEphemeralStorage { +export interface DescribeServiceRevisionsResponse { /** - *

      The total amount, in GiB, of the ephemeral storage to set for the task. The minimum - * supported value is 20 GiB and the maximum supported value is - * 200 GiB.

      + *

      The list of service revisions described.

      * @public */ - sizeInGiB?: number; + serviceRevisions?: ServiceRevision[]; /** - *

      Specify an Key Management Service key ID to encrypt the ephemeral storage for the - * task.

      + *

      Any failures associated with the call.

      * @public */ - kmsKeyId?: string; + failures?: Failure[]; } /** - *

      The overrides that are sent to a container. An empty container override can be passed - * in. An example of an empty container override is \{"containerOverrides": [ ] - * \}. If a non-empty container override is specified, the name - * parameter must be included.

      - *

      You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the - * sensitive data. For more information, see Retrieve secrets through - * environment variables in the Amazon ECS Developer Guide.

      * @public + * @enum */ -export interface ContainerOverride { - /** - *

      The name of the container that receives the override. This parameter is required if - * any override is specified.

      - * @public - */ - name?: string; - - /** - *

      The command to send to the container that overrides the default command from the - * Docker image or the task definition. You must also specify a container name.

      - * @public - */ - command?: string[]; +export const ServiceField = { + TAGS: "TAGS", +} as const; - /** - *

      The environment variables to send to the container. You can add new environment - * variables, which are added to the container at launch, or you can override the existing - * environment variables from the Docker image or the task definition. You must also - * specify a container name.

      - * @public - */ - environment?: KeyValuePair[]; +/** + * @public + */ +export type ServiceField = (typeof ServiceField)[keyof typeof ServiceField]; +/** + * @public + */ +export interface DescribeServicesRequest { /** - *

      A list of files containing the environment variables to pass to a container, instead - * of the value from the container definition.

      + *

      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.

      * @public */ - environmentFiles?: EnvironmentFile[]; + cluster?: string; /** - *

      The number of cpu units reserved for the container, instead of the - * default value from the task definition. You must also specify a container name.

      + *

      A list of services to describe. You may specify up to 10 services to describe in a + * single operation.

      * @public */ - cpu?: number; + services: string[] | undefined; /** - *

      The hard limit (in MiB) of memory to present to the container, instead of the default - * value from the task definition. If your container attempts to exceed the memory - * specified here, the container is killed. You must also specify a container name.

      + *

      Determines whether you want to see the resource tags for the service. If + * TAGS is specified, the tags are included in the response. If this field + * is omitted, tags aren't included in the response.

      * @public */ - memory?: number; + include?: ServiceField[]; +} +/** + * @public + */ +export interface DescribeServicesResponse { /** - *

      The soft limit (in MiB) of memory to reserve for the container, instead of the default - * value from the task definition. You must also specify a container name.

      + *

      The list of services described.

      * @public */ - memoryReservation?: number; + services?: Service[]; /** - *

      The type and amount of a resource to assign to a container, instead of the default - * value from the task definition. The only supported resource is a GPU.

      + *

      Any failures associated with the call.

      * @public */ - resourceRequirements?: ResourceRequirement[]; + failures?: Failure[]; } /** - *

      Details on an Elastic Inference accelerator task override. This parameter is used to - * override the Elastic Inference accelerator specified in the task definition. For more - * information, see Working with Amazon - * Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

      * @public + * @enum */ -export interface InferenceAcceleratorOverride { - /** - *

      The Elastic Inference accelerator device name to override for the task. This parameter - * must match a deviceName specified in the task definition.

      - * @public - */ - deviceName?: string; - - /** - *

      The Elastic Inference accelerator type to use.

      - * @public - */ - deviceType?: string; -} +export const TaskDefinitionField = { + TAGS: "TAGS", +} as const; /** - *

      The overrides that are associated with a task.

      * @public */ -export interface TaskOverride { +export type TaskDefinitionField = (typeof TaskDefinitionField)[keyof typeof TaskDefinitionField]; + +/** + * @public + */ +export interface DescribeTaskDefinitionRequest { /** - *

      One or more container overrides that are sent to a task.

      + *

      The family for the latest ACTIVE revision, + * family and revision (family:revision) for a + * specific revision in the family, or full Amazon Resource Name (ARN) of the task definition to + * describe.

      * @public */ - containerOverrides?: ContainerOverride[]; + taskDefinition: string | undefined; /** - *

      The CPU override for the task.

      + *

      Determines whether to see the resource tags for the task definition. If + * TAGS is specified, the tags are included in the response. If this field + * is omitted, tags aren't included in the response.

      * @public */ - cpu?: string; + include?: TaskDefinitionField[]; +} +/** + * @public + */ +export interface DescribeTaskDefinitionResponse { /** - *

      The Elastic Inference accelerator override for the task.

      + *

      The full task definition description.

      * @public */ - inferenceAcceleratorOverrides?: InferenceAcceleratorOverride[]; + taskDefinition?: TaskDefinition; /** - *

      The Amazon Resource Name (ARN) of the task execution role override for the task. For more information, - * see Amazon ECS task - * execution IAM role in the Amazon Elastic Container Service Developer Guide.

      + *

      The metadata that's applied to the task definition to help you categorize and organize + * them. Each tag consists of a key and an optional value. You define both.

      + *

      The following basic restrictions apply to tags:

      + *
        + *
      • + *

        Maximum number of tags per resource - 50

        + *
      • + *
      • + *

        For each resource, each tag key must be unique, and each tag key can have only + * one value.

        + *
      • + *
      • + *

        Maximum key length - 128 Unicode characters in UTF-8

        + *
      • + *
      • + *

        Maximum value length - 256 Unicode characters in UTF-8

        + *
      • + *
      • + *

        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: + - = . _ : / @.

        + *
      • + *
      • + *

        Tag keys and values are case-sensitive.

        + *
      • + *
      • + *

        Do not use aws:, AWS:, 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.

        + *
      • + *
      * @public */ - executionRoleArn?: string; + tags?: Tag[]; +} + +/** + * @public + * @enum + */ +export const TaskField = { + TAGS: "TAGS", +} as const; + +/** + * @public + */ +export type TaskField = (typeof TaskField)[keyof typeof TaskField]; +/** + * @public + */ +export interface DescribeTasksRequest { /** - *

      The memory override for the task.

      + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task or tasks to + * describe. If you do not specify a cluster, the default cluster is assumed. This parameter is required if the task or tasks you + * are describing were launched in any cluster other than the default cluster.

      * @public */ - memory?: string; + cluster?: string; /** - *

      The Amazon Resource Name (ARN) of the role that containers in this task can assume. All containers in - * this task are granted the permissions that are specified in this role. For more - * information, see IAM Role for Tasks - * in the Amazon Elastic Container Service Developer Guide.

      + *

      A list of up to 100 task IDs or full ARN entries.

      * @public */ - taskRoleArn?: string; + tasks: string[] | undefined; /** - *

      The ephemeral storage setting override for the task.

      - * - *

      This parameter is only supported for tasks hosted on Fargate that - * use the following platform versions:

      - *
        - *
      • - *

        Linux platform version 1.4.0 or later.

        - *
      • - *
      • - *

        Windows platform version 1.0.0 or later.

        - *
      • - *
      - *
      + *

      Specifies whether you want to see the resource tags for the task. If TAGS + * is specified, the tags are included in the response. If this field is omitted, tags + * aren't included in the response.

      * @public */ - ephemeralStorage?: EphemeralStorage; + include?: TaskField[]; } /** * @public * @enum */ -export const TaskStopCode = { - ESSENTIAL_CONTAINER_EXITED: "EssentialContainerExited", - SERVICE_SCHEDULER_INITIATED: "ServiceSchedulerInitiated", - SPOT_INTERRUPTION: "SpotInterruption", - TASK_FAILED_TO_START: "TaskFailedToStart", - TERMINATION_NOTICE: "TerminationNotice", - USER_INITIATED: "UserInitiated", +export const Connectivity = { + CONNECTED: "CONNECTED", + DISCONNECTED: "DISCONNECTED", } as const; /** * @public */ -export type TaskStopCode = (typeof TaskStopCode)[keyof typeof TaskStopCode]; +export type Connectivity = (typeof Connectivity)[keyof typeof Connectivity]; /** - *

      Details on a task in a cluster.

      * @public + * @enum */ -export interface Task { - /** - *

      The Elastic Network Adapter that's associated with the task if the task uses the - * awsvpc network mode.

      - * @public - */ - attachments?: Attachment[]; +export const HealthStatus = { + HEALTHY: "HEALTHY", + UNHEALTHY: "UNHEALTHY", + UNKNOWN: "UNKNOWN", +} as const; + +/** + * @public + */ +export type HealthStatus = (typeof HealthStatus)[keyof typeof HealthStatus]; + +/** + * @public + * @enum + */ +export const ManagedAgentName = { + ExecuteCommandAgent: "ExecuteCommandAgent", +} as const; + +/** + * @public + */ +export type ManagedAgentName = (typeof ManagedAgentName)[keyof typeof ManagedAgentName]; +/** + *

      Details about the managed agent status for the container.

      + * @public + */ +export interface ManagedAgent { /** - *

      The attributes of the task

      + *

      The Unix timestamp for the time when the managed agent was last started.

      * @public */ - attributes?: Attribute[]; + lastStartedAt?: Date; /** - *

      The Availability Zone for the task.

      + *

      The name of the managed agent. When the execute command feature is turned on, the + * managed agent name is ExecuteCommandAgent.

      * @public */ - availabilityZone?: string; + name?: ManagedAgentName; /** - *

      The capacity provider that's associated with the task.

      + *

      The reason for why the managed agent is in the state it is in.

      * @public */ - capacityProviderName?: string; + reason?: string; /** - *

      The ARN of the cluster that hosts the task.

      + *

      The last known status of the managed agent.

      * @public */ - clusterArn?: string; + lastStatus?: string; +} +/** + *

      Details on the network bindings between a container and its host container instance. + * After a task reaches the RUNNING status, manual and automatic host and + * container port assignments are visible in the networkBindings section of + * DescribeTasks API responses.

      + * @public + */ +export interface NetworkBinding { /** - *

      The connectivity status of a task.

      + *

      The IP address that the container is bound to on the container instance.

      * @public */ - connectivity?: Connectivity; + bindIP?: string; /** - *

      The Unix timestamp for the time when the task last went into CONNECTED - * status.

      + *

      The port number on the container that's used with the network binding.

      * @public */ - connectivityAt?: Date; + containerPort?: number; /** - *

      The ARN of the container instances that host the task.

      + *

      The port number on the host that's used with the network binding.

      * @public */ - containerInstanceArn?: string; + hostPort?: number; /** - *

      The containers that's associated with the task.

      + *

      The protocol used for the network binding.

      * @public */ - containers?: Container[]; + protocol?: TransportProtocol; /** - *

      The number of CPU units used by the task as expressed in a task definition. It can be - * expressed as an integer using CPU units (for example, 1024). It can also be - * expressed as a string using vCPUs (for example, 1 vCPU or 1 - * vcpu). String values are converted to an integer that indicates the CPU units - * when the task definition is registered.

      - *

      If you use the EC2 launch type, this field is optional. Supported values - * are between 128 CPU units (0.125 vCPUs) and 10240 - * CPU units (10 vCPUs).

      - *

      If you use the Fargate launch type, this field is required. You must use - * one of the following values. These values determine the range of supported values for - * the memory parameter:

      - *

      The CPU units cannot be less than 1 vCPU when you use Windows containers on - * Fargate.

      + *

      The port number range on the container that's bound to the dynamically mapped host + * port range.

      + *

      The following rules apply when you specify a containerPortRange:

      *
        *
      • - *

        256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

        - *
      • - *
      • - *

        512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

        + *

        You must use either the bridge network mode or the awsvpc + * network mode.

        *
      • *
      • - *

        1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

        + *

        This parameter is available for both the EC2 and Fargate launch types.

        *
      • *
      • - *

        2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

        + *

        This parameter is available for both the Linux and Windows operating systems.

        *
      • *
      • - *

        4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

        + *

        The container instance must have at least version 1.67.0 of the container agent + * and at least version 1.67.0-1 of the ecs-init package

        *
      • *
      • - *

        8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

        - *

        This option requires Linux platform 1.4.0 or - * later.

        + *

        You can specify a maximum of 100 port ranges per container.

        *
      • *
      • - *

        16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

        - *

        This option requires Linux platform 1.4.0 or - * later.

        - *
      • - *
      + *

      You do not specify a hostPortRange. The value of the hostPortRange is set + * as follows:

      + *
        + *
      • + *

        For containers in a task with the awsvpc network mode, + * the hostPortRange is set to the same value as the + * containerPortRange. This is a static mapping + * strategy.

        + *
      • + *
      • + *

        For containers in a task with the bridge network mode, the Amazon ECS agent finds open host ports from the default ephemeral range and passes it to docker to bind them to the container ports.

        + *
      • + *
      + *
    • + *
    • + *

      The containerPortRange valid values are between 1 and + * 65535.

      + *
    • + *
    • + *

      A port can only be included in one port mapping per container.

      + *
    • + *
    • + *

      You cannot specify overlapping port ranges.

      + *
    • + *
    • + *

      The first port in the range must be less than last port in the range.

      + *
    • + *
    • + *

      Docker recommends that you turn off the docker-proxy in the Docker daemon config file when you have a large number of ports.

      + *

      For more information, see Issue #11185 on the Github website.

      + *

      For information about how to turn off the docker-proxy in the Docker daemon config file, see Docker daemon in the Amazon ECS Developer Guide.

      + *
    • + *
    + *

    You can call + * DescribeTasks + * to view the hostPortRange which + * are the host ports that are bound to the container ports.

    * @public */ - cpu?: string; + containerPortRange?: string; /** - *

    The Unix timestamp for the time when the task was created. More specifically, it's for - * the time when the task entered the PENDING state.

    + *

    The port number range on the host that's used with the network binding. This is + * assigned is assigned by Docker and delivered by the Amazon ECS agent.

    * @public */ - createdAt?: Date; + hostPortRange?: string; +} +/** + *

    An object representing the elastic network interface for tasks that use the + * awsvpc network mode.

    + * @public + */ +export interface NetworkInterface { /** - *

    The desired status of the task. For more information, see Task - * Lifecycle.

    + *

    The attachment ID for the network interface.

    * @public */ - desiredStatus?: string; + attachmentId?: string; /** - *

    Determines whether execute command functionality is turned on for this task. If - * true, execute command functionality is turned on all the containers in - * the task.

    + *

    The private IPv4 address for the network interface.

    * @public */ - enableExecuteCommand?: boolean; + privateIpv4Address?: string; /** - *

    The Unix timestamp for the time when the task execution stopped.

    + *

    The private IPv6 address for the network interface.

    * @public */ - executionStoppedAt?: Date; + ipv6Address?: string; +} +/** + *

    A Docker container that's part of a task.

    + * @public + */ +export interface Container { /** - *

    The name of the task group that's associated with the task.

    + *

    The Amazon Resource Name (ARN) of the container.

    * @public */ - group?: string; + containerArn?: string; /** - *

    The health status for the task. It's determined by the health of the essential - * containers in the task. If all essential containers in the task are reporting as - * HEALTHY, the task status also reports as HEALTHY. If any - * essential containers in the task are reporting as UNHEALTHY or - * UNKNOWN, the task status also reports as UNHEALTHY or - * UNKNOWN.

    - * - *

    The Amazon ECS container agent doesn't monitor or report on Docker health checks that - * are embedded in a container image and not specified in the container definition. For - * example, this includes those specified in a parent image or from the image's - * Dockerfile. Health check parameters that are specified in a container definition - * override any Docker health checks that are found in the container image.

    - *
    + *

    The ARN of the task.

    * @public */ - healthStatus?: HealthStatus; + taskArn?: string; /** - *

    The Elastic Inference accelerator that's associated with the task.

    + *

    The name of the container.

    * @public */ - inferenceAccelerators?: InferenceAccelerator[]; + name?: string; /** - *

    The last known status for the task. For more information, see Task - * Lifecycle.

    + *

    The image used for the container.

    * @public */ - lastStatus?: string; + image?: string; /** - *

    The infrastructure where your task runs on. For more information, see Amazon ECS - * launch types in the Amazon Elastic Container Service Developer Guide.

    + *

    The container image manifest digest.

    * @public */ - launchType?: LaunchType; + imageDigest?: string; /** - *

    The amount of memory (in MiB) that the task uses as expressed in a task definition. It - * can be expressed as an integer using MiB (for example, 1024). If it's - * expressed as a string using GB (for example, 1GB or 1 GB), - * it's converted to an integer indicating the MiB when the task definition is - * registered.

    - *

    If you use the EC2 launch type, this field is optional.

    - *

    If you use the Fargate launch type, this field is required. You must use - * one of the following values. The value that you choose determines the range of supported - * values for the cpu parameter.

    - *
      - *
    • - *

      512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

      - *
    • - *
    • - *

      1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

      - *
    • - *
    • - *

      2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

      - *
    • - *
    • - *

      Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

      - *
    • - *
    • - *

      Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

      - *
    • - *
    • - *

      Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

      - *

      This option requires Linux platform 1.4.0 or - * later.

      - *
    • - *
    • - *

      Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

      - *

      This option requires Linux platform 1.4.0 or - * later.

      - *
    • - *
    + *

    The ID of the Docker container.

    * @public */ - memory?: string; + runtimeId?: string; /** - *

    One or more container overrides.

    + *

    The last known status of the container.

    * @public */ - overrides?: TaskOverride; + lastStatus?: string; /** - *

    The platform version where your task runs on. A platform version is only specified for - * tasks that use the Fargate launch type. If you didn't specify one, the - * LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

    + *

    The exit code returned from the container.

    * @public */ - platformVersion?: string; + exitCode?: number; /** - *

    The operating system that your tasks are running on. A platform family is specified - * only for tasks that use the Fargate launch type.

    - *

    All tasks that run as part of this service must use the same - * platformFamily value as the service (for example, - * LINUX.).

    + *

    A short (255 max characters) human-readable string to provide additional details about + * a running or stopped container.

    * @public */ - platformFamily?: string; + reason?: string; /** - *

    The Unix timestamp for the time when the container image pull began.

    + *

    The network bindings associated with the container.

    * @public */ - pullStartedAt?: Date; + networkBindings?: NetworkBinding[]; /** - *

    The Unix timestamp for the time when the container image pull completed.

    + *

    The network interfaces associated with the container.

    * @public */ - pullStoppedAt?: Date; + networkInterfaces?: NetworkInterface[]; /** - *

    The Unix timestamp for the time when the task started. More specifically, it's for the - * time when the task transitioned from the PENDING state to the - * RUNNING state.

    + *

    The health status of the container. If health checks aren't configured for this + * container in its task definition, then it reports the health status as + * UNKNOWN.

    * @public */ - startedAt?: Date; + healthStatus?: HealthStatus; /** - *

    The tag specified when a task is started. If an Amazon ECS service started the task, the - * startedBy parameter contains the deployment ID of that service.

    + *

    The details of any Amazon ECS managed agents associated with the container.

    * @public */ - startedBy?: string; + managedAgents?: ManagedAgent[]; /** - *

    The stop code indicating why a task was stopped. The stoppedReason might - * contain additional details.

    - *

    For more information about stop code, see Stopped tasks - * error codes in the Amazon ECS Developer Guide.

    + *

    The number of CPU units set for the container. The value is 0 if no value + * was specified in the container definition when the task definition was + * registered.

    * @public */ - stopCode?: TaskStopCode; + cpu?: string; /** - *

    The Unix timestamp for the time when the task was stopped. More specifically, it's for - * the time when the task transitioned from the RUNNING state to the - * STOPPED state.

    + *

    The hard limit (in MiB) of memory set for the container.

    * @public */ - stoppedAt?: Date; + memory?: string; /** - *

    The reason that the task was stopped.

    + *

    The soft limit (in MiB) of memory set for the container.

    * @public */ - stoppedReason?: string; + memoryReservation?: string; /** - *

    The Unix timestamp for the time when the task stops. More specifically, it's for the - * time when the task transitions from the RUNNING state to - * STOPPING.

    + *

    The IDs of each GPU assigned to the container.

    * @public */ - stoppingAt?: Date; + gpuIds?: string[]; +} +/** + *

    The amount of ephemeral storage to allocate for the task.

    + * @public + */ +export interface TaskEphemeralStorage { /** - *

    The metadata that you apply to the task to help you categorize and organize the task. - * Each tag consists of a key and an optional value. You define both the key and - * value.

    - *

    The following basic restrictions apply to tags:

    - *
      - *
    • - *

      Maximum number of tags per resource - 50

      - *
    • - *
    • - *

      For each resource, each tag key must be unique, and each tag key can have only - * one value.

      - *
    • - *
    • - *

      Maximum key length - 128 Unicode characters in UTF-8

      - *
    • - *
    • - *

      Maximum value length - 256 Unicode characters in UTF-8

      - *
    • - *
    • - *

      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: + - = . _ : / @.

      - *
    • - *
    • - *

      Tag keys and values are case-sensitive.

      - *
    • - *
    • - *

      Do not use aws:, AWS:, 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.

      - *
    • - *
    + *

    The total amount, in GiB, of the ephemeral storage to set for the task. The minimum + * supported value is 20 GiB and the maximum supported value is + * 200 GiB.

    * @public */ - tags?: Tag[]; + sizeInGiB?: number; /** - *

    The Amazon Resource Name (ARN) of the task.

    - * @public - */ - taskArn?: string; - - /** - *

    The ARN of the task definition that creates the task.

    - * @public - */ - taskDefinitionArn?: string; - - /** - *

    The version counter for the task. Every time a task experiences a change that starts a - * CloudWatch event, the version counter is incremented. If you replicate your Amazon ECS task state - * with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API - * actions with the version reported in CloudWatch Events for the task (inside the - * detail object) to verify that the version in your event stream is - * current.

    - * @public - */ - version?: number; - - /** - *

    The ephemeral storage settings for the task.

    - * @public - */ - ephemeralStorage?: EphemeralStorage; - - /** - *

    The Fargate ephemeral storage settings for the task.

    + *

    Specify an Amazon Web Services Key Management Service key ID to encrypt the ephemeral storage for the + * task.

    * @public */ - fargateEphemeralStorage?: TaskEphemeralStorage; + kmsKeyId?: string; } /** + *

    The overrides that are sent to a container. An empty container override can be passed + * in. An example of an empty container override is \{"containerOverrides": [ ] + * \}. If a non-empty container override is specified, the name + * parameter must be included.

    + *

    You can use Secrets Manager or Amazon Web Services Systems Manager Parameter Store to store the + * sensitive data. For more information, see Retrieve secrets through + * environment variables in the Amazon ECS Developer Guide.

    * @public */ -export interface DescribeTasksResponse { +export interface ContainerOverride { /** - *

    The list of tasks.

    + *

    The name of the container that receives the override. This parameter is required if + * any override is specified.

    * @public */ - tasks?: Task[]; + name?: string; /** - *

    Any failures associated with the call.

    + *

    The command to send to the container that overrides the default command from the + * Docker image or the task definition. You must also specify a container name.

    * @public */ - failures?: Failure[]; -} - -/** - * @public - * @enum - */ -export const TaskSetField = { - TAGS: "TAGS", -} as const; - -/** - * @public - */ -export type TaskSetField = (typeof TaskSetField)[keyof typeof TaskSetField]; + command?: string[]; -/** - * @public - */ -export interface DescribeTaskSetsRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task - * sets exist in.

    + *

    The environment variables to send to the container. You can add new environment + * variables, which are added to the container at launch, or you can override the existing + * environment variables from the Docker image or the task definition. You must also + * specify a container name.

    * @public */ - cluster: string | undefined; + environment?: KeyValuePair[]; /** - *

    The short name or full Amazon Resource Name (ARN) of the service that the task sets exist in.

    + *

    A list of files containing the environment variables to pass to a container, instead + * of the value from the container definition.

    * @public */ - service: string | undefined; + environmentFiles?: EnvironmentFile[]; /** - *

    The ID or full Amazon Resource Name (ARN) of task sets to - * describe.

    + *

    The number of cpu units reserved for the container, instead of the + * default value from the task definition. You must also specify a container name.

    * @public */ - taskSets?: string[]; + cpu?: number; /** - *

    Specifies whether to see the resource tags for the task set. If TAGS is - * specified, the tags are included in the response. If this field is omitted, tags aren't - * included in the response.

    + *

    The hard limit (in MiB) of memory to present to the container, instead of the default + * value from the task definition. If your container attempts to exceed the memory + * specified here, the container is killed. You must also specify a container name.

    * @public */ - include?: TaskSetField[]; -} + memory?: number; -/** - * @public - */ -export interface DescribeTaskSetsResponse { /** - *

    The list of task sets described.

    + *

    The soft limit (in MiB) of memory to reserve for the container, instead of the default + * value from the task definition. You must also specify a container name.

    * @public */ - taskSets?: TaskSet[]; + memoryReservation?: number; /** - *

    Any failures associated with the call.

    + *

    The type and amount of a resource to assign to a container, instead of the default + * value from the task definition. The only supported resource is a GPU.

    * @public */ - failures?: Failure[]; + resourceRequirements?: ResourceRequirement[]; } /** + *

    Details on an Elastic Inference accelerator task override. This parameter is used to + * override the Elastic Inference accelerator specified in the task definition. For more + * information, see Working with Amazon + * Elastic Inference on Amazon ECS in the Amazon Elastic Container Service Developer Guide.

    * @public */ -export interface DiscoverPollEndpointRequest { +export interface InferenceAcceleratorOverride { /** - *

    The container instance ID or full ARN of the container instance. For more - * information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

    + *

    The Elastic Inference accelerator device name to override for the task. This parameter + * must match a deviceName specified in the task definition.

    * @public */ - containerInstance?: string; + deviceName?: string; /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs - * to.

    + *

    The Elastic Inference accelerator type to use.

    * @public */ - cluster?: string; + deviceType?: string; } /** + *

    The overrides that are associated with a task.

    * @public */ -export interface DiscoverPollEndpointResponse { - /** - *

    The endpoint for the Amazon ECS agent to poll.

    - * @public - */ - endpoint?: string; - +export interface TaskOverride { /** - *

    The telemetry endpoint for the Amazon ECS agent.

    + *

    One or more container overrides that are sent to a task.

    * @public */ - telemetryEndpoint?: string; + containerOverrides?: ContainerOverride[]; /** - *

    The endpoint for the Amazon ECS agent to poll for Service Connect configuration. - * For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

    + *

    The CPU override for the task.

    * @public */ - serviceConnectEndpoint?: string; -} + cpu?: string; -/** - * @public - */ -export interface ExecuteCommandRequest { /** - *

    The Amazon Resource Name (ARN) or short name of the cluster the task is running in. - * If you do not specify a cluster, the default cluster is assumed.

    + *

    The Elastic Inference accelerator override for the task.

    * @public */ - cluster?: string; + inferenceAcceleratorOverrides?: InferenceAcceleratorOverride[]; /** - *

    The name of the container to execute the command on. A container name only needs to be - * specified for tasks containing multiple containers.

    + *

    The Amazon Resource Name (ARN) of the task execution role override for the task. For more information, + * see Amazon ECS task + * execution IAM role in the Amazon Elastic Container Service Developer Guide.

    * @public */ - container?: string; + executionRoleArn?: string; /** - *

    The command to run on the container.

    + *

    The memory override for the task.

    * @public */ - command: string | undefined; + memory?: string; /** - *

    Use this flag to run your command in interactive mode.

    + *

    The Amazon Resource Name (ARN) of the role that containers in this task can assume. All containers in + * this task are granted the permissions that are specified in this role. For more + * information, see IAM Role for Tasks + * in the Amazon Elastic Container Service Developer Guide.

    * @public */ - interactive: boolean | undefined; + taskRoleArn?: string; /** - *

    The Amazon Resource Name (ARN) or ID of the task the container is part of.

    + *

    The ephemeral storage setting override for the task.

    + * + *

    This parameter is only supported for tasks hosted on Fargate that + * use the following platform versions:

    + *
      + *
    • + *

      Linux platform version 1.4.0 or later.

      + *
    • + *
    • + *

      Windows platform version 1.0.0 or later.

      + *
    • + *
    + *
    * @public */ - task: string | undefined; + ephemeralStorage?: EphemeralStorage; } /** - *

    The details for the execute command session.

    * @public + * @enum */ -export interface Session { +export const TaskStopCode = { + ESSENTIAL_CONTAINER_EXITED: "EssentialContainerExited", + SERVICE_SCHEDULER_INITIATED: "ServiceSchedulerInitiated", + SPOT_INTERRUPTION: "SpotInterruption", + TASK_FAILED_TO_START: "TaskFailedToStart", + TERMINATION_NOTICE: "TerminationNotice", + USER_INITIATED: "UserInitiated", +} as const; + +/** + * @public + */ +export type TaskStopCode = (typeof TaskStopCode)[keyof typeof TaskStopCode]; + +/** + *

    Details on a task in a cluster.

    + * @public + */ +export interface Task { /** - *

    The ID of the execute command session.

    + *

    The Elastic Network Adapter that's associated with the task if the task uses the + * awsvpc network mode.

    * @public */ - sessionId?: string; + attachments?: Attachment[]; /** - *

    A URL to the managed agent on the container that the SSM Session Manager client uses - * to send commands and receive output from the container.

    + *

    The attributes of the task

    * @public */ - streamUrl?: string; + attributes?: Attribute[]; /** - *

    An encrypted token value containing session and caller information. It's used to - * authenticate the connection to the container.

    + *

    The Availability Zone for the task.

    * @public */ - tokenValue?: string; -} + availabilityZone?: string; -/** - * @public - */ -export interface ExecuteCommandResponse { /** - *

    The Amazon Resource Name (ARN) of the cluster.

    + *

    The capacity provider that's associated with the task.

    * @public */ - clusterArn?: string; + capacityProviderName?: string; /** - *

    The Amazon Resource Name (ARN) of the container.

    + *

    The ARN of the cluster that hosts the task.

    * @public */ - containerArn?: string; + clusterArn?: string; /** - *

    The name of the container.

    + *

    The connectivity status of a task.

    * @public */ - containerName?: string; + connectivity?: Connectivity; /** - *

    Determines whether the execute command session is running in interactive mode. Amazon ECS - * only supports initiating interactive sessions, so you must specify true for - * this value.

    + *

    The Unix timestamp for the time when the task last went into CONNECTED + * status.

    * @public */ - interactive?: boolean; + connectivityAt?: Date; /** - *

    The details of the SSM session that was created for this instance of - * execute-command.

    + *

    The ARN of the container instances that host the task.

    * @public */ - session?: Session; + containerInstanceArn?: string; /** - *

    The Amazon Resource Name (ARN) of the task.

    + *

    The containers that's associated with the task.

    * @public */ - taskArn?: string; -} + containers?: Container[]; -/** - *

    The execute command cannot run. This error can be caused by any of the following - * configuration issues:

    - *
      - *
    • - *

      Incorrect IAM permissions

      - *
    • - *
    • - *

      The SSM agent is not installed or is not running

      - *
    • - *
    • - *

      There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for - * Systems Manager Session Manager

      - *
    • - *
    - *

    For information about how to troubleshoot the issues, see Troubleshooting issues with ECS - * Exec in the Amazon Elastic Container Service Developer Guide.

    - * @public - */ -export class TargetNotConnectedException extends __BaseException { - readonly name: "TargetNotConnectedException" = "TargetNotConnectedException"; - readonly $fault: "client" = "client"; /** - * @internal + *

    The number of CPU units used by the task as expressed in a task definition. It can be + * expressed as an integer using CPU units (for example, 1024). It can also be + * expressed as a string using vCPUs (for example, 1 vCPU or 1 + * vcpu). String values are converted to an integer that indicates the CPU units + * when the task definition is registered.

    + *

    If you use the EC2 launch type, this field is optional. Supported values + * are between 128 CPU units (0.125 vCPUs) and 10240 + * CPU units (10 vCPUs).

    + *

    If you use the Fargate launch type, this field is required. You must use + * one of the following values. These values determine the range of supported values for + * the memory parameter:

    + *

    The CPU units cannot be less than 1 vCPU when you use Windows containers on + * Fargate.

    + *
      + *
    • + *

      256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

      + *
    • + *
    • + *

      512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

      + *
    • + *
    • + *

      1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

      + *
    • + *
    • + *

      2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

      + *
    • + *
    • + *

      4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

      + *
    • + *
    • + *

      8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    • + *

      16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    + * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "TargetNotConnectedException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, TargetNotConnectedException.prototype); - } -} + cpu?: string; -/** - * @public - */ -export interface GetTaskProtectionRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task - * sets exist in.

    + *

    The Unix timestamp for the time when the task was created. More specifically, it's for + * the time when the task entered the PENDING state.

    * @public */ - cluster: string | undefined; + createdAt?: Date; /** - *

    A list of up to 100 task IDs or full ARN entries.

    + *

    The desired status of the task. For more information, see Task + * Lifecycle.

    * @public */ - tasks?: string[]; -} + desiredStatus?: string; -/** - *

    An object representing the protection status details for a task. You can set the - * protection status with the UpdateTaskProtection API and get the status - * of tasks with the GetTaskProtection API.

    - * @public - */ -export interface ProtectedTask { /** - *

    The task ARN.

    + *

    Determines whether execute command functionality is turned on for this task. If + * true, execute command functionality is turned on all the containers in + * the task.

    * @public */ - taskArn?: string; + enableExecuteCommand?: boolean; /** - *

    The protection status of the task. If scale-in protection is on for a task, the value - * is true. Otherwise, it is false.

    + *

    The Unix timestamp for the time when the task execution stopped.

    * @public */ - protectionEnabled?: boolean; + executionStoppedAt?: Date; /** - *

    The epoch time when protection for the task will expire.

    + *

    The name of the task group that's associated with the task.

    * @public */ - expirationDate?: Date; -} + group?: string; -/** - * @public - */ -export interface GetTaskProtectionResponse { /** - *

    A list of tasks with the following information.

    + *

    The health status for the task. It's determined by the health of the essential + * containers in the task. If all essential containers in the task are reporting as + * HEALTHY, the task status also reports as HEALTHY. If any + * essential containers in the task are reporting as UNHEALTHY or + * UNKNOWN, the task status also reports as UNHEALTHY or + * UNKNOWN.

    + * + *

    The Amazon ECS container agent doesn't monitor or report on Docker health checks that + * are embedded in a container image and not specified in the container definition. For + * example, this includes those specified in a parent image or from the image's + * Dockerfile. Health check parameters that are specified in a container definition + * override any Docker health checks that are found in the container image.

    + *
    + * @public + */ + healthStatus?: HealthStatus; + + /** + *

    The Elastic Inference accelerator that's associated with the task.

    + * @public + */ + inferenceAccelerators?: InferenceAccelerator[]; + + /** + *

    The last known status for the task. For more information, see Task + * Lifecycle.

    + * @public + */ + lastStatus?: string; + + /** + *

    The infrastructure where your task runs on. For more information, see Amazon ECS + * launch types in the Amazon Elastic Container Service Developer Guide.

    + * @public + */ + launchType?: LaunchType; + + /** + *

    The amount of memory (in MiB) that the task uses as expressed in a task definition. It + * can be expressed as an integer using MiB (for example, 1024). If it's + * expressed as a string using GB (for example, 1GB or 1 GB), + * it's converted to an integer indicating the MiB when the task definition is + * registered.

    + *

    If you use the EC2 launch type, this field is optional.

    + *

    If you use the Fargate launch type, this field is required. You must use + * one of the following values. The value that you choose determines the range of supported + * values for the cpu parameter.

    *
      *
    • - *

      - * taskArn: The task ARN.

      + *

      512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

      *
    • *
    • - *

      - * protectionEnabled: The protection status of the task. If scale-in - * protection is turned on for a task, the value is true. Otherwise, - * it is false.

      + *

      1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

      *
    • *
    • - *

      - * expirationDate: The epoch time when protection for the task will - * expire.

      + *

      2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

      + *
    • + *
    • + *

      Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

      + *
    • + *
    • + *

      Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

      + *
    • + *
    • + *

      Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    • + *

      Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

      + *

      This option requires Linux platform 1.4.0 or + * later.

      *
    • *
    * @public */ - protectedTasks?: ProtectedTask[]; + memory?: string; /** - *

    Any failures associated with the call.

    + *

    One or more container overrides.

    * @public */ - failures?: Failure[]; -} + overrides?: TaskOverride; -/** - *

    The specified resource wasn't found.

    - * @public - */ -export class ResourceNotFoundException extends __BaseException { - readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; - readonly $fault: "client" = "client"; /** - * @internal + *

    The platform version where your task runs on. A platform version is only specified for + * tasks that use the Fargate launch type. If you didn't specify one, the + * LATEST platform version is used. For more information, see Fargate Platform Versions in the Amazon Elastic Container Service Developer Guide.

    + * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ResourceNotFoundException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ResourceNotFoundException.prototype); - } -} + platformVersion?: string; -/** - * @public - */ -export interface ListAccountSettingsRequest { /** - *

    The name of the account setting you want to list the settings for.

    + *

    The operating system that your tasks are running on. A platform family is specified + * only for tasks that use the Fargate launch type.

    + *

    All tasks that run as part of this service must use the same + * platformFamily value as the service (for example, + * LINUX.).

    * @public */ - name?: SettingName; + platformFamily?: string; /** - *

    The value of the account settings to filter results with. You must also specify an - * account setting name to use this parameter.

    + *

    The Unix timestamp for the time when the container image pull began.

    * @public */ - value?: string; + pullStartedAt?: Date; /** - *

    The ARN of the principal, which can be a user, role, or the root user. If this field is - * omitted, the account settings are listed only for the authenticated user.

    - * - *

    Federated users assume the account setting of the root user and can't have explicit - * account settings set for them.

    - *
    + *

    The Unix timestamp for the time when the container image pull completed.

    * @public */ - principalArn?: string; + pullStoppedAt?: Date; /** - *

    Determines whether to return the effective settings. If true, the account - * settings for the root user or the default setting for the principalArn are - * returned. If false, the account settings for the principalArn - * are returned if they're set. Otherwise, no account settings are returned.

    + *

    The Unix timestamp for the time when the task started. More specifically, it's for the + * time when the task transitioned from the PENDING state to the + * RUNNING state.

    * @public */ - effectiveSettings?: boolean; + startedAt?: Date; /** - *

    The nextToken value returned from a ListAccountSettings - * request indicating that more results are available to fulfill the request and further - * calls will be needed. If maxResults was provided, it's possible the number - * of results to be fewer than maxResults.

    - * - *

    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.

    - *
    + *

    The tag specified when a task is started. If an Amazon ECS service started the task, the + * startedBy parameter contains the deployment ID of that service.

    * @public */ - nextToken?: string; + startedBy?: string; /** - *

    The maximum number of account setting results returned by - * ListAccountSettings in paginated output. When this parameter is used, - * ListAccountSettings only returns maxResults results in a - * single page along with a nextToken response element. The remaining results - * of the initial request can be seen by sending another ListAccountSettings - * request with the returned nextToken value. This value can be between - * 1 and 10. If this - * parameter isn't used, then ListAccountSettings returns up to - * 10 results and a nextToken value - * if applicable.

    + *

    The stop code indicating why a task was stopped. The stoppedReason might + * contain additional details.

    + *

    For more information about stop code, see Stopped tasks + * error codes in the Amazon ECS Developer Guide.

    * @public */ - maxResults?: number; -} + stopCode?: TaskStopCode; -/** - * @public - */ -export interface ListAccountSettingsResponse { /** - *

    The account settings for the resource.

    + *

    The Unix timestamp for the time when the task was stopped. More specifically, it's for + * the time when the task transitioned from the RUNNING state to the + * STOPPED state.

    * @public */ - settings?: Setting[]; + stoppedAt?: Date; /** - *

    The nextToken value to include in a future - * ListAccountSettings request. When the results of a - * ListAccountSettings request exceed maxResults, this value - * can be used to retrieve the next page of results. This value is null when - * there are no more results to return.

    + *

    The reason that the task was stopped.

    * @public */ - nextToken?: string; -} + stoppedReason?: string; -/** - * @public - */ -export interface ListAttributesRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. - * If you do not specify a cluster, the default cluster is assumed.

    + *

    The Unix timestamp for the time when the task stops. More specifically, it's for the + * time when the task transitions from the RUNNING state to + * STOPPING.

    * @public */ - cluster?: string; + stoppingAt?: Date; /** - *

    The type of the target to list attributes with.

    + *

    The metadata that you apply to the task to help you categorize and organize the task. + * Each tag consists of a key and an optional value. You define both the key and + * value.

    + *

    The following basic restrictions apply to tags:

    + *
      + *
    • + *

      Maximum number of tags per resource - 50

      + *
    • + *
    • + *

      For each resource, each tag key must be unique, and each tag key can have only + * one value.

      + *
    • + *
    • + *

      Maximum key length - 128 Unicode characters in UTF-8

      + *
    • + *
    • + *

      Maximum value length - 256 Unicode characters in UTF-8

      + *
    • + *
    • + *

      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: + - = . _ : / @.

      + *
    • + *
    • + *

      Tag keys and values are case-sensitive.

      + *
    • + *
    • + *

      Do not use aws:, AWS:, 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.

      + *
    • + *
    * @public */ - targetType: TargetType | undefined; + tags?: Tag[]; /** - *

    The name of the attribute to filter the results with.

    + *

    The Amazon Resource Name (ARN) of the task.

    * @public */ - attributeName?: string; + taskArn?: string; /** - *

    The value of the attribute to filter results with. You must also specify an attribute - * name to use this parameter.

    + *

    The ARN of the task definition that creates the task.

    * @public */ - attributeValue?: string; + taskDefinitionArn?: string; /** - *

    The nextToken value returned from a ListAttributes request - * indicating that more results are available to fulfill the request and further calls are - * needed. If maxResults was provided, it's possible the number of results to - * be fewer than maxResults.

    - * - *

    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.

    - *
    + *

    The version counter for the task. Every time a task experiences a change that starts a + * CloudWatch event, the version counter is incremented. If you replicate your Amazon ECS task state + * with CloudWatch Events, you can compare the version of a task reported by the Amazon ECS API + * actions with the version reported in CloudWatch Events for the task (inside the + * detail object) to verify that the version in your event stream is + * current.

    * @public */ - nextToken?: string; + version?: number; /** - *

    The maximum number of cluster results that ListAttributes returned in - * paginated output. When this parameter is used, ListAttributes only returns - * maxResults results in a single page along with a nextToken - * response element. The remaining results of the initial request can be seen by sending - * another ListAttributes request with the returned nextToken - * value. This value can be between 1 and 100. If this - * parameter isn't used, then ListAttributes returns up to - * 100 results and a nextToken value if applicable.

    + *

    The ephemeral storage settings for the task.

    * @public */ - maxResults?: number; + ephemeralStorage?: EphemeralStorage; + + /** + *

    The Fargate ephemeral storage settings for the task.

    + * @public + */ + fargateEphemeralStorage?: TaskEphemeralStorage; } /** * @public */ -export interface ListAttributesResponse { +export interface DescribeTasksResponse { /** - *

    A list of attribute objects that meet the criteria of the request.

    + *

    The list of tasks.

    * @public */ - attributes?: Attribute[]; + tasks?: Task[]; /** - *

    The nextToken value to include in a future ListAttributes - * request. When the results of a ListAttributes request exceed - * maxResults, this value can be used to retrieve the next page of - * results. This value is null when there are no more results to - * return.

    + *

    Any failures associated with the call.

    * @public */ - nextToken?: string; + failures?: Failure[]; } +/** + * @public + * @enum + */ +export const TaskSetField = { + TAGS: "TAGS", +} as const; + /** * @public */ -export interface ListClustersRequest { +export type TaskSetField = (typeof TaskSetField)[keyof typeof TaskSetField]; + +/** + * @public + */ +export interface DescribeTaskSetsRequest { /** - *

    The nextToken value returned from a ListClusters request - * indicating that more results are available to fulfill the request and further calls are - * needed. If maxResults was provided, it's possible the number of results to - * be fewer than maxResults.

    - * - *

    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.

    - *
    + *

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task + * sets exist in.

    * @public */ - nextToken?: string; + cluster: string | undefined; /** - *

    The maximum number of cluster results that ListClusters returned in - * paginated output. When this parameter is used, ListClusters only returns - * maxResults results in a single page along with a nextToken - * response element. The remaining results of the initial request can be seen by sending - * another ListClusters request with the returned nextToken - * value. This value can be between 1 and 100. If this - * parameter isn't used, then ListClusters returns up to 100 - * results and a nextToken value if applicable.

    + *

    The short name or full Amazon Resource Name (ARN) of the service that the task sets exist in.

    * @public */ - maxResults?: number; -} + service: string | undefined; -/** - * @public - */ -export interface ListClustersResponse { /** - *

    The list of full Amazon Resource Name (ARN) entries for each cluster that's associated with your - * account.

    + *

    The ID or full Amazon Resource Name (ARN) of task sets to + * describe.

    * @public */ - clusterArns?: string[]; + taskSets?: string[]; /** - *

    The nextToken value to include in a future ListClusters - * request. When the results of a ListClusters request exceed - * maxResults, this value can be used to retrieve the next page of - * results. This value is null when there are no more results to - * return.

    + *

    Specifies whether to see the resource tags for the task set. If TAGS is + * specified, the tags are included in the response. If this field is omitted, tags aren't + * included in the response.

    * @public */ - nextToken?: string; + include?: TaskSetField[]; } /** * @public - * @enum */ -export const ContainerInstanceStatus = { - ACTIVE: "ACTIVE", - DEREGISTERING: "DEREGISTERING", - DRAINING: "DRAINING", - REGISTERING: "REGISTERING", - REGISTRATION_FAILED: "REGISTRATION_FAILED", -} as const; +export interface DescribeTaskSetsResponse { + /** + *

    The list of task sets described.

    + * @public + */ + taskSets?: TaskSet[]; -/** - * @public - */ -export type ContainerInstanceStatus = (typeof ContainerInstanceStatus)[keyof typeof ContainerInstanceStatus]; + /** + *

    Any failures associated with the call.

    + * @public + */ + failures?: Failure[]; +} /** * @public */ -export interface ListContainerInstancesRequest { +export interface DiscoverPollEndpointRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to - * list. If you do not specify a cluster, the default cluster is assumed.

    + *

    The container instance ID or full ARN of the container instance. For more + * information about the ARN format, see Amazon Resource Name (ARN) in the Amazon ECS Developer Guide.

    * @public */ - cluster?: string; + containerInstance?: string; /** - *

    You can filter the results of a ListContainerInstances operation with - * cluster query language statements. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

    + *

    The short name or full Amazon Resource Name (ARN) of the cluster that the container instance belongs + * to.

    * @public */ - filter?: string; - - /** - *

    The nextToken value returned from a ListContainerInstances - * request indicating that more results are available to fulfill the request and further - * calls are needed. If maxResults was provided, it's possible the number of - * results to be fewer than maxResults.

    - * - *

    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.

    - *
    - * @public - */ - nextToken?: string; - - /** - *

    The maximum number of container instance results that - * ListContainerInstances returned in paginated output. When this - * parameter is used, ListContainerInstances only returns - * maxResults results in a single page along with a nextToken - * response element. The remaining results of the initial request can be seen by sending - * another ListContainerInstances request with the returned - * nextToken value. This value can be between 1 and - * 100. If this parameter isn't used, then - * ListContainerInstances returns up to 100 results and - * a nextToken value if applicable.

    - * @public - */ - maxResults?: number; - - /** - *

    Filters the container instances by status. For example, if you specify the - * DRAINING status, the results include only container instances that have - * been set to DRAINING using UpdateContainerInstancesState. - * If you don't specify this parameter, the default is to include container instances set - * to all states other than INACTIVE.

    - * @public - */ - status?: ContainerInstanceStatus; + cluster?: string; } /** * @public */ -export interface ListContainerInstancesResponse { +export interface DiscoverPollEndpointResponse { /** - *

    The list of container instances with full ARN entries for each container instance - * associated with the specified cluster.

    + *

    The endpoint for the Amazon ECS agent to poll.

    * @public */ - containerInstanceArns?: string[]; + endpoint?: string; /** - *

    The nextToken value to include in a future - * ListContainerInstances request. When the results of a - * ListContainerInstances request exceed maxResults, this - * value can be used to retrieve the next page of results. This value is null - * when there are no more results to return.

    + *

    The telemetry endpoint for the Amazon ECS agent.

    * @public */ - nextToken?: string; + telemetryEndpoint?: string; + + /** + *

    The endpoint for the Amazon ECS agent to poll for Service Connect configuration. + * For more information, see Service Connect in the Amazon Elastic Container Service Developer Guide.

    + * @public + */ + serviceConnectEndpoint?: string; } /** * @public */ -export interface ListServicesRequest { +export interface ExecuteCommandRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the - * ListServices results. If you do not specify a cluster, the default cluster is assumed.

    + *

    The Amazon Resource Name (ARN) or short name of the cluster the task is running in. + * If you do not specify a cluster, the default cluster is assumed.

    * @public */ cluster?: string; /** - *

    The nextToken value returned from a ListServices request - * indicating that more results are available to fulfill the request and further calls will - * be needed. If maxResults was provided, it is possible the number of results - * to be fewer than maxResults.

    - * - *

    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.

    - *
    + *

    The name of the container to execute the command on. A container name only needs to be + * specified for tasks containing multiple containers.

    * @public */ - nextToken?: string; + container?: string; /** - *

    The maximum number of service results that ListServices returned in - * paginated output. When this parameter is used, ListServices only returns - * maxResults results in a single page along with a nextToken - * response element. The remaining results of the initial request can be seen by sending - * another ListServices request with the returned nextToken - * value. This value can be between 1 and 100. If - * this parameter isn't used, then ListServices returns up to - * 10 results and a nextToken value if - * applicable.

    + *

    The command to run on the container.

    * @public */ - maxResults?: number; + command: string | undefined; /** - *

    The launch type to use when filtering the ListServices results.

    + *

    Use this flag to run your command in interactive mode.

    * @public */ - launchType?: LaunchType; + interactive: boolean | undefined; /** - *

    The scheduling strategy to use when filtering the ListServices - * results.

    + *

    The Amazon Resource Name (ARN) or ID of the task the container is part of.

    * @public */ - schedulingStrategy?: SchedulingStrategy; + task: string | undefined; } /** + *

    The details for the execute command session.

    * @public */ -export interface ListServicesResponse { +export interface Session { /** - *

    The list of full ARN entries for each service that's associated with the specified - * cluster.

    + *

    The ID of the execute command session.

    * @public */ - serviceArns?: string[]; + sessionId?: string; /** - *

    The nextToken value to include in a future ListServices - * request. When the results of a ListServices request exceed - * maxResults, this value can be used to retrieve the next page of - * results. This value is null when there are no more results to - * return.

    + *

    A URL to the managed agent on the container that the SSM Session Manager client uses + * to send commands and receive output from the container.

    * @public */ - nextToken?: string; + streamUrl?: string; + + /** + *

    An encrypted token value containing session and caller information. It's used to + * authenticate the connection to the container.

    + * @public + */ + tokenValue?: string; } /** * @public */ -export interface ListServicesByNamespaceRequest { +export interface ExecuteCommandResponse { /** - *

    The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace to list the services in.

    - *

    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 Service Connect in the Amazon Elastic Container Service Developer Guide.

    + *

    The Amazon Resource Name (ARN) of the cluster.

    * @public */ - namespace: string | undefined; + clusterArn?: string; /** - *

    The nextToken value that's returned from a - * ListServicesByNamespace request. It indicates that more results are - * available to fulfill the request and further calls are needed. If - * maxResults is returned, it is possible the number of results is less - * than maxResults.

    + *

    The Amazon Resource Name (ARN) of the container.

    * @public */ - nextToken?: string; + containerArn?: string; /** - *

    The maximum number of service results that ListServicesByNamespace - * returns in paginated output. When this parameter is used, - * ListServicesByNamespace only returns maxResults results in - * a single page along with a nextToken response element. The remaining - * results of the initial request can be seen by sending another - * ListServicesByNamespace request with the returned - * nextToken value. This value can be between 1 and - * 100. If this parameter isn't used, then - * ListServicesByNamespace returns up to - * 10 results and a nextToken - * value if applicable.

    + *

    The name of the container.

    * @public */ - maxResults?: number; -} + containerName?: string; -/** - * @public - */ -export interface ListServicesByNamespaceResponse { /** - *

    The list of full ARN entries for each service that's associated with the specified - * namespace.

    + *

    Determines whether the execute command session is running in interactive mode. Amazon ECS + * only supports initiating interactive sessions, so you must specify true for + * this value.

    * @public */ - serviceArns?: string[]; + interactive?: boolean; /** - *

    The nextToken value to include in a future - * ListServicesByNamespace request. When the results of a - * ListServicesByNamespace request exceed maxResults, this - * value can be used to retrieve the next page of results. When there are no more results - * to return, this value is null.

    + *

    The details of the SSM session that was created for this instance of + * execute-command.

    * @public */ - nextToken?: string; -} + session?: Session; -/** - * @public - */ -export interface ListTagsForResourceRequest { /** - *

    The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the - * supported resources are Amazon ECS tasks, services, task definitions, clusters, and container - * instances.

    + *

    The Amazon Resource Name (ARN) of the task.

    * @public */ - resourceArn: string | undefined; + taskArn?: string; } /** + *

    The execute command cannot run. This error can be caused by any of the following + * configuration issues:

    + *
      + *
    • + *

      Incorrect IAM permissions

      + *
    • + *
    • + *

      The SSM agent is not installed or is not running

      + *
    • + *
    • + *

      There is an interface Amazon VPC endpoint for Amazon ECS, but there is not one for + * Systems Manager Session Manager

      + *
    • + *
    + *

    For information about how to troubleshoot the issues, see Troubleshooting issues with ECS + * Exec in the Amazon Elastic Container Service Developer Guide.

    * @public */ -export interface ListTagsForResourceResponse { +export class TargetNotConnectedException extends __BaseException { + readonly name: "TargetNotConnectedException" = "TargetNotConnectedException"; + readonly $fault: "client" = "client"; /** - *

    The tags for the resource.

    - * @public + * @internal */ - tags?: Tag[]; + constructor(opts: __ExceptionOptionType) { + super({ + name: "TargetNotConnectedException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, TargetNotConnectedException.prototype); + } } /** * @public - * @enum */ -export const TaskDefinitionFamilyStatus = { - ACTIVE: "ACTIVE", - ALL: "ALL", - INACTIVE: "INACTIVE", -} as const; +export interface GetTaskProtectionRequest { + /** + *

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task + * sets exist in.

    + * @public + */ + cluster: string | undefined; -/** - * @public - */ -export type TaskDefinitionFamilyStatus = (typeof TaskDefinitionFamilyStatus)[keyof typeof TaskDefinitionFamilyStatus]; + /** + *

    A list of up to 100 task IDs or full ARN entries.

    + * @public + */ + tasks?: string[]; +} /** + *

    An object representing the protection status details for a task. You can set the + * protection status with the UpdateTaskProtection API and get the status + * of tasks with the GetTaskProtection API.

    * @public */ -export interface ListTaskDefinitionFamiliesRequest { +export interface ProtectedTask { /** - *

    The familyPrefix is a string that's used to filter the results of - * ListTaskDefinitionFamilies. If you specify a familyPrefix, - * only task definition family names that begin with the familyPrefix string - * are returned.

    + *

    The task ARN.

    * @public */ - familyPrefix?: string; + taskArn?: string; /** - *

    The task definition family status to filter the - * ListTaskDefinitionFamilies results with. By default, both - * ACTIVE and INACTIVE task definition families are listed. - * If this parameter is set to ACTIVE, only task definition families that have - * an ACTIVE task definition revision are returned. If this parameter is set - * to INACTIVE, only task definition families that do not have any - * ACTIVE task definition revisions are returned. If you paginate the - * resulting output, be sure to keep the status value constant in each - * subsequent request.

    - * @public - */ - status?: TaskDefinitionFamilyStatus; - - /** - *

    The nextToken value returned from a - * ListTaskDefinitionFamilies request indicating that more results are - * available to fulfill the request and further calls will be needed. If - * maxResults was provided, it is possible the number of results to be - * fewer than maxResults.

    - * - *

    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.

    - *
    + *

    The protection status of the task. If scale-in protection is on for a task, the value + * is true. Otherwise, it is false.

    * @public */ - nextToken?: string; + protectionEnabled?: boolean; /** - *

    The maximum number of task definition family results that - * ListTaskDefinitionFamilies returned in paginated output. When this - * parameter is used, ListTaskDefinitions only returns maxResults - * results in a single page along with a nextToken response element. The - * remaining results of the initial request can be seen by sending another - * ListTaskDefinitionFamilies request with the returned - * nextToken value. This value can be between 1 and - * 100. If this parameter isn't used, then - * ListTaskDefinitionFamilies returns up to 100 results - * and a nextToken value if applicable.

    + *

    The epoch time when protection for the task will expire.

    * @public */ - maxResults?: number; + expirationDate?: Date; } /** * @public */ -export interface ListTaskDefinitionFamiliesResponse { +export interface GetTaskProtectionResponse { /** - *

    The list of task definition family names that match the - * ListTaskDefinitionFamilies request.

    + *

    A list of tasks with the following information.

    + *
      + *
    • + *

      + * taskArn: The task ARN.

      + *
    • + *
    • + *

      + * protectionEnabled: The protection status of the task. If scale-in + * protection is turned on for a task, the value is true. Otherwise, + * it is false.

      + *
    • + *
    • + *

      + * expirationDate: The epoch time when protection for the task will + * expire.

      + *
    • + *
    * @public */ - families?: string[]; + protectedTasks?: ProtectedTask[]; /** - *

    The nextToken value to include in a future - * ListTaskDefinitionFamilies request. When the results of a - * ListTaskDefinitionFamilies request exceed maxResults, this - * value can be used to retrieve the next page of results. This value is null - * when there are no more results to return.

    + *

    Any failures associated with the call.

    * @public */ - nextToken?: string; + failures?: Failure[]; } /** + *

    The specified resource wasn't found.

    * @public - * @enum */ -export const SortOrder = { - ASC: "ASC", - DESC: "DESC", -} as const; +export class ResourceNotFoundException extends __BaseException { + readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ResourceNotFoundException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ResourceNotFoundException.prototype); + } +} /** * @public */ -export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]; +export interface ListAccountSettingsRequest { + /** + *

    The name of the account setting you want to list the settings for.

    + * @public + */ + name?: SettingName; -/** - * @public - */ -export interface ListTaskDefinitionsRequest { /** - *

    The full family name to filter the ListTaskDefinitions results with. - * Specifying a familyPrefix limits the listed task definitions to task - * definition revisions that belong to that family.

    + *

    The value of the account settings to filter results with. You must also specify an + * account setting name to use this parameter.

    * @public */ - familyPrefix?: string; + value?: string; /** - *

    The task definition status to filter the ListTaskDefinitions results - * with. By default, only ACTIVE task definitions are listed. By setting this - * parameter to INACTIVE, you can view task definitions that are - * INACTIVE as long as an active task or service still references them. If - * you paginate the resulting output, be sure to keep the status value - * constant in each subsequent request.

    + *

    The ARN of the principal, which can be a user, role, or the root user. If this field is + * omitted, the account settings are listed only for the authenticated user.

    + * + *

    Federated users assume the account setting of the root user and can't have explicit + * account settings set for them.

    + *
    * @public */ - status?: TaskDefinitionStatus; + principalArn?: string; /** - *

    The order to sort the results in. Valid values are ASC and - * DESC. By default, (ASC) task definitions are listed - * lexicographically by family name and in ascending numerical order by revision so that - * the newest task definitions in a family are listed last. Setting this parameter to - * DESC reverses the sort order on family name and revision. This is so - * that the newest task definitions in a family are listed first.

    + *

    Determines whether to return the effective settings. If true, the account + * settings for the root user or the default setting for the principalArn are + * returned. If false, the account settings for the principalArn + * are returned if they're set. Otherwise, no account settings are returned.

    * @public */ - sort?: SortOrder; + effectiveSettings?: boolean; /** - *

    The nextToken value returned from a ListTaskDefinitions + *

    The nextToken value returned from a ListAccountSettings * request indicating that more results are available to fulfill the request and further - * calls will be needed. If maxResults was provided, it is possible the number + * calls will be needed. If maxResults was provided, it's possible the number * of results to be fewer than maxResults.

    * *

    This token should be treated as an opaque identifier that is only used to @@ -10240,15 +10164,16 @@ export interface ListTaskDefinitionsRequest { nextToken?: string; /** - *

    The maximum number of task definition results that ListTaskDefinitions - * returned in paginated output. When this parameter is used, - * ListTaskDefinitions only returns maxResults results in a + *

    The maximum number of account setting results returned by + * ListAccountSettings in paginated output. When this parameter is used, + * ListAccountSettings only returns maxResults results in a * single page along with a nextToken response element. The remaining results - * of the initial request can be seen by sending another ListTaskDefinitions + * of the initial request can be seen by sending another ListAccountSettings * request with the returned nextToken value. This value can be between - * 1 and 100. If this parameter isn't used, then - * ListTaskDefinitions returns up to 100 results and a - * nextToken value if applicable.

    + * 1 and 10. If this + * parameter isn't used, then ListAccountSettings returns up to + * 10 results and a nextToken value + * if applicable.

    * @public */ maxResults?: number; @@ -10257,18 +10182,17 @@ export interface ListTaskDefinitionsRequest { /** * @public */ -export interface ListTaskDefinitionsResponse { +export interface ListAccountSettingsResponse { /** - *

    The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions - * request.

    + *

    The account settings for the resource.

    * @public */ - taskDefinitionArns?: string[]; + settings?: Setting[]; /** *

    The nextToken value to include in a future - * ListTaskDefinitions request. When the results of a - * ListTaskDefinitions request exceed maxResults, this value + * ListAccountSettings request. When the results of a + * ListAccountSettings request exceed maxResults, this value * can be used to retrieve the next page of results. This value is null when * there are no more results to return.

    * @public @@ -10276,54 +10200,41 @@ export interface ListTaskDefinitionsResponse { nextToken?: string; } -/** - * @public - * @enum - */ -export const DesiredStatus = { - PENDING: "PENDING", - RUNNING: "RUNNING", - STOPPED: "STOPPED", -} as const; - -/** - * @public - */ -export type DesiredStatus = (typeof DesiredStatus)[keyof typeof DesiredStatus]; - /** * @public */ -export interface ListTasksRequest { +export interface ListAttributesRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the - * ListTasks results. If you do not specify a cluster, the default cluster is assumed.

    + *

    The short name or full Amazon Resource Name (ARN) of the cluster to list attributes. + * If you do not specify a cluster, the default cluster is assumed.

    * @public */ cluster?: string; /** - *

    The container instance ID or full ARN of the container instance to use when - * filtering the ListTasks results. Specifying a - * containerInstance limits the results to tasks that belong to that - * container instance.

    + *

    The type of the target to list attributes with.

    * @public */ - containerInstance?: string; + targetType: TargetType | undefined; /** - *

    The name of the task definition family to use when filtering the - * ListTasks results. Specifying a family limits the results - * to tasks that belong to that family.

    + *

    The name of the attribute to filter the results with.

    * @public */ - family?: string; + attributeName?: string; /** - *

    The nextToken value returned from a ListTasks request - * indicating that more results are available to fulfill the request and further calls will - * be needed. If maxResults was provided, it's possible the number of results - * to be fewer than maxResults.

    + *

    The value of the attribute to filter results with. You must also specify an attribute + * name to use this parameter.

    + * @public + */ + attributeValue?: string; + + /** + *

    The nextToken value returned from a ListAttributes request + * indicating that more results are available to fulfill the request and further calls are + * needed. If maxResults was provided, it's possible the number of results to + * be fewer than maxResults.

    * *

    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.

    @@ -10333,73 +10244,85 @@ export interface ListTasksRequest { nextToken?: string; /** - *

    The maximum number of task results that ListTasks returned in paginated - * output. When this parameter is used, ListTasks only returns + *

    The maximum number of cluster results that ListAttributes returned in + * paginated output. When this parameter is used, ListAttributes only returns * maxResults results in a single page along with a nextToken * response element. The remaining results of the initial request can be seen by sending - * another ListTasks request with the returned nextToken value. - * This value can be between 1 and 100. If this parameter - * isn't used, then ListTasks returns up to 100 results and - * a nextToken value if applicable.

    + * another ListAttributes request with the returned nextToken + * value. This value can be between 1 and 100. If this + * parameter isn't used, then ListAttributes returns up to + * 100 results and a nextToken value if applicable.

    * @public */ maxResults?: number; +} +/** + * @public + */ +export interface ListAttributesResponse { /** - *

    The startedBy value to filter the task results with. Specifying a - * startedBy value limits the results to tasks that were started with that - * value.

    - *

    When you specify startedBy as the filter, it must be the only filter that - * you use.

    + *

    A list of attribute objects that meet the criteria of the request.

    * @public */ - startedBy?: string; + attributes?: Attribute[]; /** - *

    The name of the service to use when filtering the ListTasks results. - * Specifying a serviceName limits the results to tasks that belong to that - * service.

    + *

    The nextToken value to include in a future ListAttributes + * request. When the results of a ListAttributes request exceed + * maxResults, this value can be used to retrieve the next page of + * results. This value is null when there are no more results to + * return.

    * @public */ - serviceName?: string; + nextToken?: string; +} +/** + * @public + */ +export interface ListClustersRequest { /** - *

    The task desired status to use when filtering the ListTasks results. - * Specifying a desiredStatus of STOPPED limits the results to - * tasks that Amazon ECS has set the desired status to STOPPED. This can be useful - * for debugging tasks that aren't starting properly or have died or finished. The default - * status filter is RUNNING, which shows tasks that Amazon ECS has set the desired - * status to RUNNING.

    + *

    The nextToken value returned from a ListClusters request + * indicating that more results are available to fulfill the request and further calls are + * needed. If maxResults was provided, it's possible the number of results to + * be fewer than maxResults.

    * - *

    Although you can filter results based on a desired status of PENDING, - * this doesn't return any results. Amazon ECS never sets the desired status of a task to - * that value (only a task's lastStatus may have a value of - * PENDING).

    + *

    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.

    *
    * @public */ - desiredStatus?: DesiredStatus; + nextToken?: string; /** - *

    The launch type to use when filtering the ListTasks results.

    + *

    The maximum number of cluster results that ListClusters returned in + * paginated output. When this parameter is used, ListClusters only returns + * maxResults results in a single page along with a nextToken + * response element. The remaining results of the initial request can be seen by sending + * another ListClusters request with the returned nextToken + * value. This value can be between 1 and 100. If this + * parameter isn't used, then ListClusters returns up to 100 + * results and a nextToken value if applicable.

    * @public */ - launchType?: LaunchType; + maxResults?: number; } /** * @public */ -export interface ListTasksResponse { +export interface ListClustersResponse { /** - *

    The list of task ARN entries for the ListTasks request.

    + *

    The list of full Amazon Resource Name (ARN) entries for each cluster that's associated with your + * account.

    * @public */ - taskArns?: string[]; + clusterArns?: string[]; /** - *

    The nextToken value to include in a future ListTasks - * request. When the results of a ListTasks request exceed + *

    The nextToken value to include in a future ListClusters + * request. When the results of a ListClusters request exceed * maxResults, this value can be used to retrieve the next page of * results. This value is null when there are no more results to * return.

    @@ -10410,1362 +10333,1527 @@ export interface ListTasksResponse { /** * @public + * @enum */ -export interface PutAccountSettingRequest { +export const ContainerInstanceStatus = { + ACTIVE: "ACTIVE", + DEREGISTERING: "DEREGISTERING", + DRAINING: "DRAINING", + REGISTERING: "REGISTERING", + REGISTRATION_FAILED: "REGISTRATION_FAILED", +} as const; + +/** + * @public + */ +export type ContainerInstanceStatus = (typeof ContainerInstanceStatus)[keyof typeof ContainerInstanceStatus]; + +/** + * @public + */ +export interface ListContainerInstancesRequest { /** - *

    The Amazon ECS account setting name to modify.

    - *

    The following are the valid values for the account setting name.

    - *
      - *
    • - *

      - * serviceLongArnFormat - When modified, the Amazon Resource Name - * (ARN) and resource ID format of the resource type for a specified user, role, or - * the root user for an account is affected. The opt-in and opt-out account setting - * must be set for each Amazon ECS resource separately. The ARN and resource ID format - * of a resource is defined by the opt-in status of the user or role that created - * the resource. You must turn on this setting to use Amazon ECS features such as - * resource tagging.

      - *
    • - *
    • - *

      - * taskLongArnFormat - When modified, the Amazon Resource Name (ARN) - * and resource ID format of the resource type for a specified user, role, or the - * root user for an account is affected. The opt-in and opt-out account setting must - * be set for each Amazon ECS resource separately. The ARN and resource ID format of a - * resource is defined by the opt-in status of the user or role that created the - * resource. You must turn on this setting to use Amazon ECS features such as resource - * tagging.

      - *
    • - *
    • - *

      - * containerInstanceLongArnFormat - When modified, the Amazon - * Resource Name (ARN) and resource ID format of the resource type for a specified - * user, role, or the root user for an account is affected. The opt-in and opt-out - * account setting must be set for each Amazon ECS resource separately. The ARN and - * resource ID format of a resource is defined by the opt-in status of the user or - * role that created the resource. You must turn on this setting to use Amazon ECS - * features such as resource tagging.

      - *
    • - *
    • - *

      - * awsvpcTrunking - When modified, the elastic network interface - * (ENI) limit for any new container instances that support the feature is changed. - * If awsvpcTrunking is turned on, any new container instances that - * support the feature are launched have the increased ENI limits available to - * them. For more information, see Elastic - * Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

      - *
    • - *
    • - *

      - * containerInsights - When modified, the default setting indicating - * whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. - * If containerInsights is turned on, any new clusters that are - * created will have Container Insights turned on unless you disable it during - * cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

      - *
    • - *
    • - *

      - * dualStackIPv6 - When turned on, when using a VPC in dual stack - * mode, your tasks using the awsvpc network mode can have an IPv6 - * address assigned. For more information on using IPv6 with tasks launched on - * Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 - * with tasks launched on Fargate, see Using a VPC in dual-stack mode.

      - *
    • - *
    • - *

      - * fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a - * security or infrastructure update is needed for an Amazon ECS task hosted on - * Fargate, the tasks need to be stopped and new tasks launched to replace them. - * Use fargateTaskRetirementWaitPeriod to configure the wait time to - * retire a Fargate task. For information about the Fargate tasks maintenance, - * see Amazon Web Services Fargate - * task maintenance in the Amazon ECS Developer - * Guide.

      - *
    • - *
    • - *

      - * tagResourceAuthorization - Amazon ECS is introducing tagging - * authorization for resource creation. Users must have permissions for actions - * that create the resource, such as ecsCreateCluster. If tags are - * specified when you create a resource, Amazon Web Services performs additional authorization to - * verify if users or roles have permissions to create tags. Therefore, you must - * grant explicit permissions to use the ecs:TagResource action. For - * more information, see Grant permission to tag resources on creation in the - * Amazon ECS Developer Guide.

      - *
    • - *
    • - *

      - * guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether - * Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your - * Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

      - *
    • - *
    + *

    The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instances to + * list. If you do not specify a cluster, the default cluster is assumed.

    * @public */ - name: SettingName | undefined; + cluster?: string; /** - *

    The account setting value for the specified principal ARN. Accepted values are - * enabled, disabled, on, and - * off.

    - *

    When you specify fargateTaskRetirementWaitPeriod for the - * name, the following are the valid values:

    - *
      - *
    • - *

      - * 0 - Amazon Web Services sends the notification, and immediately retires the - * affected tasks.

      - *
    • - *
    • - *

      - * 7 - Amazon Web Services sends the notification, and waits 7 calendar days to - * retire the tasks.

      - *
    • - *
    • - *

      - * 14 - Amazon Web Services sends the notification, and waits 14 calendar days to - * retire the tasks.

      - *
    • - *
    + *

    You can filter the results of a ListContainerInstances operation with + * cluster query language statements. For more information, see Cluster Query Language in the Amazon Elastic Container Service Developer Guide.

    * @public */ - value: string | undefined; + filter?: string; /** - *

    The ARN of the principal, which can be a user, role, or the root user. If you specify - * the root user, it modifies the account setting for all users, roles, and the root user of the - * account unless a user or role explicitly overrides these settings. If this field is - * omitted, the setting is changed only for the authenticated user.

    + *

    The nextToken value returned from a ListContainerInstances + * request indicating that more results are available to fulfill the request and further + * calls are needed. If maxResults was provided, it's possible the number of + * results to be fewer than maxResults.

    * - *

    You must use the root user when you set the Fargate wait time - * (fargateTaskRetirementWaitPeriod).

    - *

    Federated users assume the account setting of the root user and can't have explicit - * account settings set for them.

    + *

    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.

    *
    * @public */ - principalArn?: string; + nextToken?: string; + + /** + *

    The maximum number of container instance results that + * ListContainerInstances returned in paginated output. When this + * parameter is used, ListContainerInstances only returns + * maxResults results in a single page along with a nextToken + * response element. The remaining results of the initial request can be seen by sending + * another ListContainerInstances request with the returned + * nextToken value. This value can be between 1 and + * 100. If this parameter isn't used, then + * ListContainerInstances returns up to 100 results and + * a nextToken value if applicable.

    + * @public + */ + maxResults?: number; + + /** + *

    Filters the container instances by status. For example, if you specify the + * DRAINING status, the results include only container instances that have + * been set to DRAINING using UpdateContainerInstancesState. + * If you don't specify this parameter, the default is to include container instances set + * to all states other than INACTIVE.

    + * @public + */ + status?: ContainerInstanceStatus; } /** * @public */ -export interface PutAccountSettingResponse { +export interface ListContainerInstancesResponse { /** - *

    The current account setting for a resource.

    + *

    The list of container instances with full ARN entries for each container instance + * associated with the specified cluster.

    * @public */ - setting?: Setting; + containerInstanceArns?: string[]; + + /** + *

    The nextToken value to include in a future + * ListContainerInstances request. When the results of a + * ListContainerInstances request exceed maxResults, this + * value can be used to retrieve the next page of results. This value is null + * when there are no more results to return.

    + * @public + */ + nextToken?: string; } /** + *

    The optional filter to narrow the ListServiceDeployment results.

    + *

    If you do not specify a value, service deployments that were created before the current + * time are included in the result.

    * @public */ -export interface PutAccountSettingDefaultRequest { +export interface CreatedAt { /** - *

    The resource name for which to modify the account setting.

    - *

    The following are the valid values for the account setting name.

    - *
      - *
    • - *

      - * serviceLongArnFormat - When modified, the Amazon Resource Name - * (ARN) and resource ID format of the resource type for a specified user, role, or - * the root user for an account is affected. The opt-in and opt-out account setting - * must be set for each Amazon ECS resource separately. The ARN and resource ID format - * of a resource is defined by the opt-in status of the user or role that created - * the resource. You must turn on this setting to use Amazon ECS features such as - * resource tagging.

      - *
    • - *
    • - *

      - * taskLongArnFormat - When modified, the Amazon Resource Name (ARN) - * and resource ID format of the resource type for a specified user, role, or the - * root user for an account is affected. The opt-in and opt-out account setting must - * be set for each Amazon ECS resource separately. The ARN and resource ID format of a - * resource is defined by the opt-in status of the user or role that created the - * resource. You must turn on this setting to use Amazon ECS features such as resource - * tagging.

      - *
    • - *
    • - *

      - * containerInstanceLongArnFormat - When modified, the Amazon - * Resource Name (ARN) and resource ID format of the resource type for a specified - * user, role, or the root user for an account is affected. The opt-in and opt-out - * account setting must be set for each Amazon ECS resource separately. The ARN and - * resource ID format of a resource is defined by the opt-in status of the user or - * role that created the resource. You must turn on this setting to use Amazon ECS - * features such as resource tagging.

      - *
    • - *
    • - *

      - * awsvpcTrunking - When modified, the elastic network interface - * (ENI) limit for any new container instances that support the feature is changed. - * If awsvpcTrunking is turned on, any new container instances that - * support the feature are launched have the increased ENI limits available to - * them. For more information, see Elastic - * Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

      - *
    • - *
    • - *

      - * containerInsights - When modified, the default setting indicating - * whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. - * If containerInsights is turned on, any new clusters that are - * created will have Container Insights turned on unless you disable it during - * cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

      - *
    • - *
    • - *

      - * dualStackIPv6 - When turned on, when using a VPC in dual stack - * mode, your tasks using the awsvpc network mode can have an IPv6 - * address assigned. For more information on using IPv6 with tasks launched on - * Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 - * with tasks launched on Fargate, see Using a VPC in dual-stack mode.

      - *
    • - *
    • - *

      - * fargateFIPSMode - If you specify fargateFIPSMode, - * Fargate FIPS 140 compliance is affected.

      - *
    • - *
    • - *

      - * fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a - * security or infrastructure update is needed for an Amazon ECS task hosted on - * Fargate, the tasks need to be stopped and new tasks launched to replace them. - * Use fargateTaskRetirementWaitPeriod to configure the wait time to - * retire a Fargate task. For information about the Fargate tasks maintenance, - * see Amazon Web Services Fargate - * task maintenance in the Amazon ECS Developer - * Guide.

      - *
    • - *
    • - *

      - * tagResourceAuthorization - Amazon ECS is introducing tagging - * authorization for resource creation. Users must have permissions for actions - * that create the resource, such as ecsCreateCluster. If tags are - * specified when you create a resource, Amazon Web Services performs additional authorization to - * verify if users or roles have permissions to create tags. Therefore, you must - * grant explicit permissions to use the ecs:TagResource action. For - * more information, see Grant permission to tag resources on creation in the - * Amazon ECS Developer Guide.

      - *
    • - *
    • - *

      - * guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether - * Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your - * Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

      - *
    • - *
    + *

    Include service deployments in the result that were created before this time. The format is yyyy-MM-dd + * HH:mm:ss.SSSSSS.

    * @public */ - name: SettingName | undefined; + before?: Date; /** - *

    The account setting value for the specified principal ARN. Accepted values are - * enabled, disabled, on, and - * off.

    - *

    When you specify fargateTaskRetirementWaitPeriod for the - * name, the following are the valid values:

    - *
      - *
    • - *

      - * 0 - Amazon Web Services sends the notification, and immediately retires the - * affected tasks.

      - *
    • - *
    • - *

      - * 7 - Amazon Web Services sends the notification, and waits 7 calendar days to - * retire the tasks.

      - *
    • - *
    • - *

      - * 14 - Amazon Web Services sends the notification, and waits 14 calendar days to - * retire the tasks.

      - *
    • - *
    + *

    Include service deployments in the result that were created after this time. The format is yyyy-MM-dd + * HH:mm:ss.SSSSSS.

    * @public */ - value: string | undefined; + after?: Date; } /** * @public */ -export interface PutAccountSettingDefaultResponse { +export interface ListServiceDeploymentsRequest { /** - *

    The current setting for a resource.

    + *

    The ARN or name of the service

    * @public */ - setting?: Setting; -} - -/** - *

    You can apply up to 10 custom attributes for each resource. You can view the - * attributes of a resource with ListAttributes. You can remove existing - * attributes on a resource with DeleteAttributes.

    - * @public - */ -export class AttributeLimitExceededException extends __BaseException { - readonly name: "AttributeLimitExceededException" = "AttributeLimitExceededException"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "AttributeLimitExceededException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, AttributeLimitExceededException.prototype); - } -} + service: string | undefined; -/** - * @public - */ -export interface PutAttributesRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply - * attributes. If you do not specify a cluster, the default cluster is assumed.

    + *

    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 performanceIf you don't + * specify a cluster, deault is used.

    * @public */ cluster?: string; /** - *

    The attributes to apply to your resource. You can specify up to 10 custom attributes - * for each resource. You can specify up to 10 attributes in a single call.

    - * @public - */ - attributes: Attribute[] | undefined; -} - -/** - * @public - */ -export interface PutAttributesResponse { - /** - *

    The attributes applied to your resource.

    + *

    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.

    * @public */ - attributes?: Attribute[]; -} + status?: ServiceDeploymentStatus[]; -/** - * @public - */ -export interface PutClusterCapacityProvidersRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider - * settings for. If you don't specify a cluster, the default cluster is assumed.

    + *

    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.

    * @public */ - cluster: string | undefined; + createdAt?: CreatedAt; /** - *

    The name of one or more capacity providers to associate with the cluster.

    - *

    If specifying a capacity provider that uses an Auto Scaling group, the capacity - * provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

    - *

    To use a Fargate capacity provider, specify either the FARGATE or - * FARGATE_SPOT capacity providers. The Fargate capacity providers are - * available to all accounts and only need to be associated with a cluster to be - * used.

    + *

    The nextToken value returned from a ListServiceDeployments request indicating that more results are available to fulfill the request and further calls are needed. If you provided maxResults, it's possible the number of results is fewer than maxResults.

    * @public */ - capacityProviders: string[] | undefined; + nextToken?: string; /** - *

    The capacity provider strategy to use by default for the cluster.

    - *

    When creating a service or running a task on a cluster, if no capacity provider or - * launch type is specified then the default capacity provider strategy for the cluster is - * used.

    - *

    A capacity provider strategy consists of one or more capacity providers along with the - * base and weight to assign to them. A capacity provider - * must be associated with the cluster to be used in a capacity provider strategy. The - * PutClusterCapacityProviders API is used to associate a capacity - * provider with a cluster. Only capacity providers with an ACTIVE or - * UPDATING status can be used.

    - *

    If specifying a capacity provider that uses an Auto Scaling group, the capacity - * provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

    - *

    To use a Fargate capacity provider, specify either the FARGATE or - * FARGATE_SPOT capacity providers. The Fargate capacity providers are - * available to all accounts and only need to be associated with a cluster to be - * used.

    + *

    The maximum number of service deployment results that ListServiceDeployments + * returned in paginated output. When this parameter is used, + * ListServiceDeployments only returns maxResults results in + * a single page along with a nextToken response element. The remaining + * results of the initial request can be seen by sending another + * ListServiceDeployments request with the returned nextToken + * value. This value can be between 1 and 100. If this parameter isn't used, then + * ListServiceDeployments returns up to 20 results and a + * nextToken value if applicable.

    * @public */ - defaultCapacityProviderStrategy: CapacityProviderStrategyItem[] | undefined; + maxResults?: number; } /** + *

    The service deployment properties that are retured when you call ListServiceDeployments.

    + *

    This provides a high-level overview of the service deployment.

    * @public */ -export interface PutClusterCapacityProvidersResponse { +export interface ServiceDeploymentBrief { /** - *

    Details about the cluster.

    + *

    The ARN of the service deployment.

    * @public */ - cluster?: Cluster; -} + serviceDeploymentArn?: string; -/** - *

    The specified resource is in-use and can't be removed.

    - * @public - */ -export class ResourceInUseException extends __BaseException { - readonly name: "ResourceInUseException" = "ResourceInUseException"; - readonly $fault: "client" = "client"; /** - * @internal + *

    The ARN of the service for this service deployment.

    + * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ResourceInUseException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ResourceInUseException.prototype); - } -} - -/** - * @public - * @enum - */ -export const PlatformDeviceType = { - GPU: "GPU", -} as const; - -/** - * @public - */ -export type PlatformDeviceType = (typeof PlatformDeviceType)[keyof typeof PlatformDeviceType]; + serviceArn?: string; -/** - *

    The devices that are available on the container instance. The only supported device - * type is a GPU.

    - * @public - */ -export interface PlatformDevice { /** - *

    The ID for the GPUs on the container instance. The available GPU IDs can also be - * obtained on the container instance in the - * /var/lib/ecs/gpu/nvidia_gpu_info.json file.

    + *

    The ARN of the cluster that hosts the service.

    * @public */ - id: string | undefined; + clusterArn?: string; /** - *

    The type of device that's available on the container instance. The only supported - * value is GPU.

    + *

    The time that the service deployment statred. The format is yyyy-MM-dd + * HH:mm:ss.SSSSSS.

    * @public */ - type: PlatformDeviceType | undefined; -} + startedAt?: Date; -/** - * @public - */ -export interface RegisterContainerInstanceRequest { /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster to register your container instance - * with. If you do not specify a cluster, the default cluster is assumed.

    + *

    The time that the service deployment was created. The format is yyyy-MM-dd + * HH:mm:ss.SSSSSS.

    * @public */ - cluster?: string; + createdAt?: Date; /** - *

    The instance identity document for the EC2 instance to register. This document can be - * found by running the following command from the instance: curl - * http://169.254.169.254/latest/dynamic/instance-identity/document/ - *

    + *

    The time that the service deployment completed. The format is yyyy-MM-dd + * HH:mm:ss.SSSSSS.

    * @public */ - instanceIdentityDocument?: string; + finishedAt?: Date; /** - *

    The instance identity document signature for the EC2 instance to register. This - * signature can be found by running the following command from the instance: curl - * http://169.254.169.254/latest/dynamic/instance-identity/signature/ - *

    + *

    The ARN of the service revision being deplyed.

    * @public */ - instanceIdentityDocumentSignature?: string; + targetServiceRevisionArn?: string; /** - *

    The resources available on the instance.

    + *

    The status of the service deployment

    * @public */ - totalResources?: Resource[]; + status?: ServiceDeploymentStatus; /** - *

    The version information for the Amazon ECS container agent and Docker daemon that runs on - * the container instance.

    + *

    Information about why the service deployment is in the current status. For example, the circuit breaker detected a deployment failure.

    * @public */ - versionInfo?: VersionInfo; - - /** - *

    The ARN of the container instance (if it was previously registered).

    - * @public - */ - containerInstanceArn?: string; - - /** - *

    The container instance attributes that this container instance supports.

    - * @public - */ - attributes?: Attribute[]; - - /** - *

    The devices that are available on the container instance. The only supported device - * type is a GPU.

    - * @public - */ - platformDevices?: PlatformDevice[]; + statusReason?: string; +} +/** + * @public + */ +export interface ListServiceDeploymentsResponse { /** - *

    The metadata that you apply to the container instance to help you categorize and - * organize them. Each tag consists of a key and an optional value. You define both.

    - *

    The following basic restrictions apply to tags:

    + *

    An overview of the service deployment, including the following + * properties:

    *
      *
    • - *

      Maximum number of tags per resource - 50

      + *

      The ARN of the service deployment.

      *
    • *
    • - *

      For each resource, each tag key must be unique, and each tag key can have only - * one value.

      + *

      The ARN of the service being deployed.

      *
    • *
    • - *

      Maximum key length - 128 Unicode characters in UTF-8

      + *

      The ARN of the cluster that hosts the service in the service deployment.

      *
    • *
    • - *

      Maximum value length - 256 Unicode characters in UTF-8

      + *

      The time that the service deployment started.

      *
    • *
    • - *

      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: + - = . _ : / @.

      + *

      The time that the service deployment completed.

      *
    • *
    • - *

      Tag keys and values are case-sensitive.

      + *

      The service deployment status.

      *
    • *
    • - *

      Do not use aws:, AWS:, 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.

      + *

      Information about why the service deployment is in the current state.

      + *
    • + *
    • + *

      The ARN of the service revision that is being deployed.

      *
    • *
    * @public */ - tags?: Tag[]; -} + serviceDeployments?: ServiceDeploymentBrief[]; -/** - * @public - */ -export interface RegisterContainerInstanceResponse { /** - *

    The container instance that was registered.

    + *

    The nextToken value to include in a future ListServiceDeployments request. When the results of a ListServiceDeployments request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

    * @public */ - containerInstance?: ContainerInstance; + nextToken?: string; } /** * @public */ -export interface RegisterTaskDefinitionRequest { +export interface ListServicesRequest { /** - *

    You must specify a family for a task definition. You can use it track - * multiple versions of the same task definition. The family is used as a name - * for your task definition. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

    + *

    The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the + * ListServices results. If you do not specify a cluster, the default cluster is assumed.

    * @public */ - family: string | undefined; + cluster?: string; /** - *

    The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can - * assume. All containers in this task are granted the permissions that are specified in - * this role. For more information, see IAM Roles for - * Tasks in the Amazon Elastic Container Service Developer Guide.

    + *

    The nextToken value returned from a ListServices request + * indicating that more results are available to fulfill the request and further calls will + * be needed. If maxResults was provided, it is possible the number of results + * to be fewer than maxResults.

    + * + *

    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.

    + *
    * @public */ - taskRoleArn?: string; + nextToken?: string; /** - *

    The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent - * permission to make Amazon Web Services API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see IAM roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

    + *

    The maximum number of service results that ListServices returned in + * paginated output. When this parameter is used, ListServices only returns + * maxResults results in a single page along with a nextToken + * response element. The remaining results of the initial request can be seen by sending + * another ListServices request with the returned nextToken + * value. This value can be between 1 and 100. If + * this parameter isn't used, then ListServices returns up to + * 10 results and a nextToken value if + * applicable.

    * @public */ - executionRoleArn?: string; + maxResults?: number; /** - *

    The Docker networking mode to use for the containers in the task. The valid values are - * none, bridge, awsvpc, and host. - * If no network mode is specified, the default is bridge.

    - *

    For Amazon ECS tasks on Fargate, the awsvpc network mode is required. - * For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If the network - * mode is set to none, you cannot specify port mappings in your container - * definitions, and the tasks containers do not have external connectivity. The - * host and awsvpc network modes offer the highest networking - * performance for containers because they use the EC2 network stack instead of the - * virtualized network stack provided by the bridge mode.

    - *

    With the host and awsvpc network modes, exposed container - * ports are mapped directly to the corresponding host port (for the host - * network mode) or the attached elastic network interface port (for the - * awsvpc network mode), so you cannot take advantage of dynamic host port - * mappings.

    - * - *

    When using the host network mode, you should not run - * containers using the root user (UID 0). It is considered best practice - * to use a non-root user.

    - *
    - *

    If the network mode is awsvpc, the task is allocated an elastic network - * interface, and you must specify a NetworkConfiguration value when you create - * a service or run a task with the task definition. For more information, see Task Networking in the - * Amazon Elastic Container Service Developer Guide.

    - *

    If the network mode is host, you cannot run multiple instantiations of the - * same task on a single container instance when port mappings are used.

    + *

    The launch type to use when filtering the ListServices results.

    * @public */ - networkMode?: NetworkMode; + launchType?: LaunchType; /** - *

    A list of container definitions in JSON format that describe the different containers - * that make up your task.

    + *

    The scheduling strategy to use when filtering the ListServices + * results.

    * @public */ - containerDefinitions: ContainerDefinition[] | undefined; + schedulingStrategy?: SchedulingStrategy; +} +/** + * @public + */ +export interface ListServicesResponse { /** - *

    A list of volume definitions in JSON format that containers in your task might - * use.

    + *

    The list of full ARN entries for each service that's associated with the specified + * cluster.

    * @public */ - volumes?: Volume[]; + serviceArns?: string[]; /** - *

    An array of placement constraint objects to use for the task. You can specify a - * maximum of 10 constraints for each task. This limit includes constraints in the task - * definition and those specified at runtime.

    + *

    The nextToken value to include in a future ListServices + * request. When the results of a ListServices request exceed + * maxResults, this value can be used to retrieve the next page of + * results. This value is null when there are no more results to + * return.

    * @public */ - placementConstraints?: TaskDefinitionPlacementConstraint[]; + nextToken?: string; +} +/** + * @public + */ +export interface ListServicesByNamespaceRequest { /** - *

    The task launch type that Amazon ECS validates the task definition against. A client - * exception is returned if the task definition doesn't validate against the - * compatibilities specified. If no value is specified, the parameter is omitted from the - * response.

    + *

    The namespace name or full Amazon Resource Name (ARN) of the Cloud Map namespace to list the services in.

    + *

    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 Service Connect in the Amazon Elastic Container Service Developer Guide.

    * @public */ - requiresCompatibilities?: Compatibility[]; + namespace: string | undefined; /** - *

    The number of CPU units used by the task. It can be expressed as an integer using CPU - * units (for example, 1024) or as a string using vCPUs (for example, 1 - * vCPU or 1 vcpu) in a task definition. String values are - * converted to an integer indicating the CPU units when the task definition is - * registered.

    - * - *

    Task-level CPU and memory parameters are ignored for Windows containers. We - * recommend specifying container-level resources for Windows containers.

    - *
    - *

    If you're using the EC2 launch type, this field is optional. Supported - * values are between 128 CPU units (0.125 vCPUs) and - * 10240 CPU units (10 vCPUs). If you do not specify a value, - * the parameter is ignored.

    - *

    If you're using the Fargate launch type, this field is required and you - * must use one of the following values, which determines your range of supported values - * for the memory parameter:

    - *

    The CPU units cannot be less than 1 vCPU when you use Windows containers on - * Fargate.

    - *
      - *
    • - *

      256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

      - *
    • - *
    • - *

      512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

      - *
    • - *
    • - *

      1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

      - *
    • - *
    • - *

      2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

      - *
    • - *
    • - *

      4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

      - *
    • - *
    • - *

      8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

      - *

      This option requires Linux platform 1.4.0 or - * later.

      - *
    • - *
    • - *

      16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

      - *

      This option requires Linux platform 1.4.0 or - * later.

      - *
    • - *
    + *

    The nextToken value that's returned from a + * ListServicesByNamespace request. It indicates that more results are + * available to fulfill the request and further calls are needed. If + * maxResults is returned, it is possible the number of results is less + * than maxResults.

    * @public */ - cpu?: string; + nextToken?: string; /** - *

    The amount of memory (in MiB) used by the task. It can be expressed as an integer - * using MiB (for example ,1024) or as a string using GB (for example, - * 1GB or 1 GB) in a task definition. String values are - * converted to an integer indicating the MiB when the task definition is - * registered.

    - * - *

    Task-level CPU and memory parameters are ignored for Windows containers. We - * recommend specifying container-level resources for Windows containers.

    - *
    - *

    If using the EC2 launch type, this field is optional.

    - *

    If using the Fargate launch type, this field is required and you must - * use one of the following values. This determines your range of supported values for the - * cpu parameter.

    - *

    The CPU units cannot be less than 1 vCPU when you use Windows containers on - * Fargate.

    - *
      - *
    • - *

      512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

      - *
    • - *
    • - *

      1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

      - *
    • - *
    • - *

      2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

      - *
    • - *
    • - *

      Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

      - *
    • - *
    • - *

      Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

      - *
    • - *
    • - *

      Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

      - *

      This option requires Linux platform 1.4.0 or - * later.

      - *
    • - *
    • - *

      Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

      - *

      This option requires Linux platform 1.4.0 or - * later.

      - *
    • - *
    - * @public + *

    The maximum number of service results that ListServicesByNamespace + * returns in paginated output. When this parameter is used, + * ListServicesByNamespace only returns maxResults results in + * a single page along with a nextToken response element. The remaining + * results of the initial request can be seen by sending another + * ListServicesByNamespace request with the returned + * nextToken value. This value can be between 1 and + * 100. If this parameter isn't used, then + * ListServicesByNamespace returns up to + * 10 results and a nextToken + * value if applicable.

    + * @public + */ + maxResults?: number; +} + +/** + * @public + */ +export interface ListServicesByNamespaceResponse { + /** + *

    The list of full ARN entries for each service that's associated with the specified + * namespace.

    + * @public + */ + serviceArns?: string[]; + + /** + *

    The nextToken value to include in a future + * ListServicesByNamespace request. When the results of a + * ListServicesByNamespace request exceed maxResults, this + * value can be used to retrieve the next page of results. When there are no more results + * to return, this value is null.

    + * @public + */ + nextToken?: string; +} + +/** + * @public + */ +export interface ListTagsForResourceRequest { + /** + *

    The Amazon Resource Name (ARN) that identifies the resource to list the tags for. Currently, the + * supported resources are Amazon ECS tasks, services, task definitions, clusters, and container + * instances.

    + * @public + */ + resourceArn: string | undefined; +} + +/** + * @public + */ +export interface ListTagsForResourceResponse { + /** + *

    The tags for the resource.

    + * @public + */ + tags?: Tag[]; +} + +/** + * @public + * @enum + */ +export const TaskDefinitionFamilyStatus = { + ACTIVE: "ACTIVE", + ALL: "ALL", + INACTIVE: "INACTIVE", +} as const; + +/** + * @public + */ +export type TaskDefinitionFamilyStatus = (typeof TaskDefinitionFamilyStatus)[keyof typeof TaskDefinitionFamilyStatus]; + +/** + * @public + */ +export interface ListTaskDefinitionFamiliesRequest { + /** + *

    The familyPrefix is a string that's used to filter the results of + * ListTaskDefinitionFamilies. If you specify a familyPrefix, + * only task definition family names that begin with the familyPrefix string + * are returned.

    + * @public + */ + familyPrefix?: string; + + /** + *

    The task definition family status to filter the + * ListTaskDefinitionFamilies results with. By default, both + * ACTIVE and INACTIVE task definition families are listed. + * If this parameter is set to ACTIVE, only task definition families that have + * an ACTIVE task definition revision are returned. If this parameter is set + * to INACTIVE, only task definition families that do not have any + * ACTIVE task definition revisions are returned. If you paginate the + * resulting output, be sure to keep the status value constant in each + * subsequent request.

    + * @public + */ + status?: TaskDefinitionFamilyStatus; + + /** + *

    The nextToken value returned from a + * ListTaskDefinitionFamilies request indicating that more results are + * available to fulfill the request and further calls will be needed. If + * maxResults was provided, it is possible the number of results to be + * fewer than maxResults.

    + * + *

    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.

    + *
    + * @public + */ + nextToken?: string; + + /** + *

    The maximum number of task definition family results that + * ListTaskDefinitionFamilies returned in paginated output. When this + * parameter is used, ListTaskDefinitions only returns maxResults + * results in a single page along with a nextToken response element. The + * remaining results of the initial request can be seen by sending another + * ListTaskDefinitionFamilies request with the returned + * nextToken value. This value can be between 1 and + * 100. If this parameter isn't used, then + * ListTaskDefinitionFamilies returns up to 100 results + * and a nextToken value if applicable.

    + * @public + */ + maxResults?: number; +} + +/** + * @public + */ +export interface ListTaskDefinitionFamiliesResponse { + /** + *

    The list of task definition family names that match the + * ListTaskDefinitionFamilies request.

    + * @public + */ + families?: string[]; + + /** + *

    The nextToken value to include in a future + * ListTaskDefinitionFamilies request. When the results of a + * ListTaskDefinitionFamilies request exceed maxResults, this + * value can be used to retrieve the next page of results. This value is null + * when there are no more results to return.

    + * @public + */ + nextToken?: string; +} + +/** + * @public + * @enum + */ +export const SortOrder = { + ASC: "ASC", + DESC: "DESC", +} as const; + +/** + * @public + */ +export type SortOrder = (typeof SortOrder)[keyof typeof SortOrder]; + +/** + * @public + */ +export interface ListTaskDefinitionsRequest { + /** + *

    The full family name to filter the ListTaskDefinitions results with. + * Specifying a familyPrefix limits the listed task definitions to task + * definition revisions that belong to that family.

    + * @public + */ + familyPrefix?: string; + + /** + *

    The task definition status to filter the ListTaskDefinitions results + * with. By default, only ACTIVE task definitions are listed. By setting this + * parameter to INACTIVE, you can view task definitions that are + * INACTIVE as long as an active task or service still references them. If + * you paginate the resulting output, be sure to keep the status value + * constant in each subsequent request.

    + * @public + */ + status?: TaskDefinitionStatus; + + /** + *

    The order to sort the results in. Valid values are ASC and + * DESC. By default, (ASC) task definitions are listed + * lexicographically by family name and in ascending numerical order by revision so that + * the newest task definitions in a family are listed last. Setting this parameter to + * DESC reverses the sort order on family name and revision. This is so + * that the newest task definitions in a family are listed first.

    + * @public + */ + sort?: SortOrder; + + /** + *

    The nextToken value returned from a ListTaskDefinitions + * request indicating that more results are available to fulfill the request and further + * calls will be needed. If maxResults was provided, it is possible the number + * of results to be fewer than maxResults.

    + * + *

    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.

    + *
    + * @public + */ + nextToken?: string; + + /** + *

    The maximum number of task definition results that ListTaskDefinitions + * returned in paginated output. When this parameter is used, + * ListTaskDefinitions only returns maxResults results in a + * single page along with a nextToken response element. The remaining results + * of the initial request can be seen by sending another ListTaskDefinitions + * request with the returned nextToken value. This value can be between + * 1 and 100. If this parameter isn't used, then + * ListTaskDefinitions returns up to 100 results and a + * nextToken value if applicable.

    + * @public + */ + maxResults?: number; +} + +/** + * @public + */ +export interface ListTaskDefinitionsResponse { + /** + *

    The list of task definition Amazon Resource Name (ARN) entries for the ListTaskDefinitions + * request.

    + * @public + */ + taskDefinitionArns?: string[]; + + /** + *

    The nextToken value to include in a future + * ListTaskDefinitions request. When the results of a + * ListTaskDefinitions request exceed maxResults, this value + * can be used to retrieve the next page of results. This value is null when + * there are no more results to return.

    + * @public + */ + nextToken?: string; +} + +/** + * @public + * @enum + */ +export const DesiredStatus = { + PENDING: "PENDING", + RUNNING: "RUNNING", + STOPPED: "STOPPED", +} as const; + +/** + * @public + */ +export type DesiredStatus = (typeof DesiredStatus)[keyof typeof DesiredStatus]; + +/** + * @public + */ +export interface ListTasksRequest { + /** + *

    The short name or full Amazon Resource Name (ARN) of the cluster to use when filtering the + * ListTasks results. If you do not specify a cluster, the default cluster is assumed.

    + * @public + */ + cluster?: string; + + /** + *

    The container instance ID or full ARN of the container instance to use when + * filtering the ListTasks results. Specifying a + * containerInstance limits the results to tasks that belong to that + * container instance.

    + * @public + */ + containerInstance?: string; + + /** + *

    The name of the task definition family to use when filtering the + * ListTasks results. Specifying a family limits the results + * to tasks that belong to that family.

    + * @public + */ + family?: string; + + /** + *

    The nextToken value returned from a ListTasks request + * indicating that more results are available to fulfill the request and further calls will + * be needed. If maxResults was provided, it's possible the number of results + * to be fewer than maxResults.

    + * + *

    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.

    + *
    + * @public + */ + nextToken?: string; + + /** + *

    The maximum number of task results that ListTasks returned in paginated + * output. When this parameter is used, ListTasks only returns + * maxResults results in a single page along with a nextToken + * response element. The remaining results of the initial request can be seen by sending + * another ListTasks request with the returned nextToken value. + * This value can be between 1 and 100. If this parameter + * isn't used, then ListTasks returns up to 100 results and + * a nextToken value if applicable.

    + * @public + */ + maxResults?: number; + + /** + *

    The startedBy value to filter the task results with. Specifying a + * startedBy value limits the results to tasks that were started with that + * value.

    + *

    When you specify startedBy as the filter, it must be the only filter that + * you use.

    + * @public + */ + startedBy?: string; + + /** + *

    The name of the service to use when filtering the ListTasks results. + * Specifying a serviceName limits the results to tasks that belong to that + * service.

    + * @public */ - memory?: string; + serviceName?: string; /** - *

    The metadata that you apply to the task definition to help you categorize and organize - * them. Each tag consists of a key and an optional value. You define both of them.

    - *

    The following basic restrictions apply to tags:

    + *

    The task desired status to use when filtering the ListTasks results. + * Specifying a desiredStatus of STOPPED limits the results to + * tasks that Amazon ECS has set the desired status to STOPPED. This can be useful + * for debugging tasks that aren't starting properly or have died or finished. The default + * status filter is RUNNING, which shows tasks that Amazon ECS has set the desired + * status to RUNNING.

    + * + *

    Although you can filter results based on a desired status of PENDING, + * this doesn't return any results. Amazon ECS never sets the desired status of a task to + * that value (only a task's lastStatus may have a value of + * PENDING).

    + *
    + * @public + */ + desiredStatus?: DesiredStatus; + + /** + *

    The launch type to use when filtering the ListTasks results.

    + * @public + */ + launchType?: LaunchType; +} + +/** + * @public + */ +export interface ListTasksResponse { + /** + *

    The list of task ARN entries for the ListTasks request.

    + * @public + */ + taskArns?: string[]; + + /** + *

    The nextToken value to include in a future ListTasks + * request. When the results of a ListTasks request exceed + * maxResults, this value can be used to retrieve the next page of + * results. This value is null when there are no more results to + * return.

    + * @public + */ + nextToken?: string; +} + +/** + * @public + */ +export interface PutAccountSettingRequest { + /** + *

    The Amazon ECS account setting name to modify.

    + *

    The following are the valid values for the account setting name.

    *
      *
    • - *

      Maximum number of tags per resource - 50

      + *

      + * serviceLongArnFormat - When modified, the Amazon Resource Name + * (ARN) and resource ID format of the resource type for a specified user, role, or + * the root user for an account is affected. The opt-in and opt-out account setting + * must be set for each Amazon ECS resource separately. The ARN and resource ID format + * of a resource is defined by the opt-in status of the user or role that created + * the resource. You must turn on this setting to use Amazon ECS features such as + * resource tagging.

      *
    • *
    • - *

      For each resource, each tag key must be unique, and each tag key can have only - * one value.

      + *

      + * taskLongArnFormat - When modified, the Amazon Resource Name (ARN) + * and resource ID format of the resource type for a specified user, role, or the + * root user for an account is affected. The opt-in and opt-out account setting must + * be set for each Amazon ECS resource separately. The ARN and resource ID format of a + * resource is defined by the opt-in status of the user or role that created the + * resource. You must turn on this setting to use Amazon ECS features such as resource + * tagging.

      + *
    • + *
    • + *

      + * containerInstanceLongArnFormat - When modified, the Amazon + * Resource Name (ARN) and resource ID format of the resource type for a specified + * user, role, or the root user for an account is affected. The opt-in and opt-out + * account setting must be set for each Amazon ECS resource separately. The ARN and + * resource ID format of a resource is defined by the opt-in status of the user or + * role that created the resource. You must turn on this setting to use Amazon ECS + * features such as resource tagging.

      + *
    • + *
    • + *

      + * awsvpcTrunking - When modified, the elastic network interface + * (ENI) limit for any new container instances that support the feature is changed. + * If awsvpcTrunking is turned on, any new container instances that + * support the feature are launched have the increased ENI limits available to + * them. For more information, see Elastic + * Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

      + *
    • + *
    • + *

      + * containerInsights - When modified, the default setting indicating + * whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. + * If containerInsights is turned on, any new clusters that are + * created will have Container Insights turned on unless you disable it during + * cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

      + *
    • + *
    • + *

      + * dualStackIPv6 - When turned on, when using a VPC in dual stack + * mode, your tasks using the awsvpc network mode can have an IPv6 + * address assigned. For more information on using IPv6 with tasks launched on + * Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 + * with tasks launched on Fargate, see Using a VPC in dual-stack mode.

      + *
    • + *
    • + *

      + * fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a + * security or infrastructure update is needed for an Amazon ECS task hosted on + * Fargate, the tasks need to be stopped and new tasks launched to replace them. + * Use fargateTaskRetirementWaitPeriod to configure the wait time to + * retire a Fargate task. For information about the Fargate tasks maintenance, + * see Amazon Web Services Fargate + * task maintenance in the Amazon ECS Developer + * Guide.

      + *
    • + *
    • + *

      + * tagResourceAuthorization - Amazon ECS is introducing tagging + * authorization for resource creation. Users must have permissions for actions + * that create the resource, such as ecsCreateCluster. If tags are + * specified when you create a resource, Amazon Web Services performs additional authorization to + * verify if users or roles have permissions to create tags. Therefore, you must + * grant explicit permissions to use the ecs:TagResource action. For + * more information, see Grant permission to tag resources on creation in the + * Amazon ECS Developer Guide.

      + *
    • + *
    • + *

      + * guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether + * Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your + * Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

      + *
    • + *
    + * @public + */ + name: SettingName | undefined; + + /** + *

    The account setting value for the specified principal ARN. Accepted values are + * enabled, disabled, on, and + * off.

    + *

    When you specify fargateTaskRetirementWaitPeriod for the + * name, the following are the valid values:

    + *
      + *
    • + *

      + * 0 - Amazon Web Services sends the notification, and immediately retires the + * affected tasks.

      + *
    • + *
    • + *

      + * 7 - Amazon Web Services sends the notification, and waits 7 calendar days to + * retire the tasks.

      + *
    • + *
    • + *

      + * 14 - Amazon Web Services sends the notification, and waits 14 calendar days to + * retire the tasks.

      + *
    • + *
    + * @public + */ + value: string | undefined; + + /** + *

    The ARN of the principal, which can be a user, role, or the root user. If you specify + * the root user, it modifies the account setting for all users, roles, and the root user of the + * account unless a user or role explicitly overrides these settings. If this field is + * omitted, the setting is changed only for the authenticated user.

    + * + *

    You must use the root user when you set the Fargate wait time + * (fargateTaskRetirementWaitPeriod).

    + *

    Federated users assume the account setting of the root user and can't have explicit + * account settings set for them.

    + *
    + * @public + */ + principalArn?: string; +} + +/** + * @public + */ +export interface PutAccountSettingResponse { + /** + *

    The current account setting for a resource.

    + * @public + */ + setting?: Setting; +} + +/** + * @public + */ +export interface PutAccountSettingDefaultRequest { + /** + *

    The resource name for which to modify the account setting.

    + *

    The following are the valid values for the account setting name.

    + *
      + *
    • + *

      + * serviceLongArnFormat - When modified, the Amazon Resource Name + * (ARN) and resource ID format of the resource type for a specified user, role, or + * the root user for an account is affected. The opt-in and opt-out account setting + * must be set for each Amazon ECS resource separately. The ARN and resource ID format + * of a resource is defined by the opt-in status of the user or role that created + * the resource. You must turn on this setting to use Amazon ECS features such as + * resource tagging.

      + *
    • + *
    • + *

      + * taskLongArnFormat - When modified, the Amazon Resource Name (ARN) + * and resource ID format of the resource type for a specified user, role, or the + * root user for an account is affected. The opt-in and opt-out account setting must + * be set for each Amazon ECS resource separately. The ARN and resource ID format of a + * resource is defined by the opt-in status of the user or role that created the + * resource. You must turn on this setting to use Amazon ECS features such as resource + * tagging.

      + *
    • + *
    • + *

      + * containerInstanceLongArnFormat - When modified, the Amazon + * Resource Name (ARN) and resource ID format of the resource type for a specified + * user, role, or the root user for an account is affected. The opt-in and opt-out + * account setting must be set for each Amazon ECS resource separately. The ARN and + * resource ID format of a resource is defined by the opt-in status of the user or + * role that created the resource. You must turn on this setting to use Amazon ECS + * features such as resource tagging.

      + *
    • + *
    • + *

      + * awsvpcTrunking - When modified, the elastic network interface + * (ENI) limit for any new container instances that support the feature is changed. + * If awsvpcTrunking is turned on, any new container instances that + * support the feature are launched have the increased ENI limits available to + * them. For more information, see Elastic + * Network Interface Trunking in the Amazon Elastic Container Service Developer Guide.

      + *
    • + *
    • + *

      + * containerInsights - When modified, the default setting indicating + * whether Amazon Web Services CloudWatch Container Insights is turned on for your clusters is changed. + * If containerInsights is turned on, any new clusters that are + * created will have Container Insights turned on unless you disable it during + * cluster creation. For more information, see CloudWatch Container Insights in the Amazon Elastic Container Service Developer Guide.

      *
    • *
    • - *

      Maximum key length - 128 Unicode characters in UTF-8

      + *

      + * dualStackIPv6 - When turned on, when using a VPC in dual stack + * mode, your tasks using the awsvpc network mode can have an IPv6 + * address assigned. For more information on using IPv6 with tasks launched on + * Amazon EC2 instances, see Using a VPC in dual-stack mode. For more information on using IPv6 + * with tasks launched on Fargate, see Using a VPC in dual-stack mode.

      *
    • *
    • - *

      Maximum value length - 256 Unicode characters in UTF-8

      + *

      + * fargateFIPSMode - If you specify fargateFIPSMode, + * Fargate FIPS 140 compliance is affected.

      *
    • *
    • - *

      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: + - = . _ : / @.

      + *

      + * fargateTaskRetirementWaitPeriod - When Amazon Web Services determines that a + * security or infrastructure update is needed for an Amazon ECS task hosted on + * Fargate, the tasks need to be stopped and new tasks launched to replace them. + * Use fargateTaskRetirementWaitPeriod to configure the wait time to + * retire a Fargate task. For information about the Fargate tasks maintenance, + * see Amazon Web Services Fargate + * task maintenance in the Amazon ECS Developer + * Guide.

      *
    • *
    • - *

      Tag keys and values are case-sensitive.

      + *

      + * tagResourceAuthorization - Amazon ECS is introducing tagging + * authorization for resource creation. Users must have permissions for actions + * that create the resource, such as ecsCreateCluster. If tags are + * specified when you create a resource, Amazon Web Services performs additional authorization to + * verify if users or roles have permissions to create tags. Therefore, you must + * grant explicit permissions to use the ecs:TagResource action. For + * more information, see Grant permission to tag resources on creation in the + * Amazon ECS Developer Guide.

      *
    • *
    • - *

      Do not use aws:, AWS:, 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.

      + *

      + * guardDutyActivate - The guardDutyActivate parameter is read-only in Amazon ECS and indicates whether + * Amazon ECS Runtime Monitoring is enabled or disabled by your security administrator in your + * Amazon ECS account. Amazon GuardDuty controls this account setting on your behalf. For more information, see Protecting Amazon ECS workloads with Amazon ECS Runtime Monitoring.

      *
    • *
    * @public */ - tags?: Tag[]; - - /** - *

    The process namespace to use for the containers in the task. The valid - * values are host or task. On Fargate for - * Linux containers, the only valid value is task. For - * example, monitoring sidecars might need pidMode to access - * information about other containers running in the same task.

    - *

    If host is specified, all containers within the tasks - * that specified the host PID mode on the same container - * instance share the same process namespace with the host Amazon EC2 - * instance.

    - *

    If task is specified, all containers within the specified - * task share the same process namespace.

    - *

    If no value is specified, the - * default is a private namespace for each container.

    - *

    If the host PID mode is used, there's a heightened risk - * of undesired process namespace exposure.

    - * - *

    This parameter is not supported for Windows containers.

    - *
    - * - *

    This parameter is only supported for tasks that are hosted on - * Fargate if the tasks are using platform version 1.4.0 or later - * (Linux). This isn't supported for Windows containers on - * Fargate.

    - *
    - * @public - */ - pidMode?: PidMode; + name: SettingName | undefined; /** - *

    The IPC resource namespace to use for the containers in the task. The valid values are - * host, task, or none. If host is - * specified, then all containers within the tasks that specified the host IPC - * mode on the same container instance share the same IPC resources with the host Amazon EC2 - * instance. If task is specified, all containers within the specified task - * share the same IPC resources. If none is specified, then IPC resources - * within the containers of a task are private and not shared with other containers in a - * task or on the container instance. If no value is specified, then the IPC resource - * namespace sharing depends on the Docker daemon setting on the container instance.

    - *

    If the host IPC mode is used, be aware that there is a heightened risk of - * undesired IPC namespace expose.

    - *

    If you are setting namespaced kernel parameters using systemControls for - * the containers in the task, the following will apply to your IPC resource namespace. For - * more information, see System - * Controls in the Amazon Elastic Container Service Developer Guide.

    + *

    The account setting value for the specified principal ARN. Accepted values are + * enabled, disabled, on, and + * off.

    + *

    When you specify fargateTaskRetirementWaitPeriod for the + * name, the following are the valid values:

    *
      *
    • - *

      For tasks that use the host IPC mode, IPC namespace related - * systemControls are not supported.

      + *

      + * 0 - Amazon Web Services sends the notification, and immediately retires the + * affected tasks.

      *
    • *
    • - *

      For tasks that use the task IPC mode, IPC namespace related - * systemControls will apply to all containers within a - * task.

      + *

      + * 7 - Amazon Web Services sends the notification, and waits 7 calendar days to + * retire the tasks.

      + *
    • + *
    • + *

      + * 14 - Amazon Web Services sends the notification, and waits 14 calendar days to + * retire the tasks.

      *
    • *
    - * - *

    This parameter is not supported for Windows containers or tasks run on Fargate.

    - *
    * @public */ - ipcMode?: IpcMode; + value: string | undefined; +} +/** + * @public + */ +export interface PutAccountSettingDefaultResponse { /** - *

    The configuration details for the App Mesh proxy.

    - *

    For tasks hosted on Amazon EC2 instances, the container instances require at least version - * 1.26.0 of the container agent and at least version - * 1.26.0-1 of the ecs-init package to use a proxy - * configuration. If your container instances are launched from the Amazon ECS-optimized - * AMI version 20190301 or later, then they contain the required versions of - * the container agent and ecs-init. For more information, see Amazon ECS-optimized AMI versions in the Amazon Elastic Container Service Developer Guide.

    + *

    The current setting for a resource.

    * @public */ - proxyConfiguration?: ProxyConfiguration; + setting?: Setting; +} +/** + *

    You can apply up to 10 custom attributes for each resource. You can view the + * attributes of a resource with ListAttributes. You can remove existing + * attributes on a resource with DeleteAttributes.

    + * @public + */ +export class AttributeLimitExceededException extends __BaseException { + readonly name: "AttributeLimitExceededException" = "AttributeLimitExceededException"; + readonly $fault: "client" = "client"; /** - *

    The Elastic Inference accelerators to use for the containers in the task.

    - * @public + * @internal */ - inferenceAccelerators?: InferenceAccelerator[]; + constructor(opts: __ExceptionOptionType) { + super({ + name: "AttributeLimitExceededException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, AttributeLimitExceededException.prototype); + } +} +/** + * @public + */ +export interface PutAttributesRequest { /** - *

    The amount of ephemeral storage to allocate for the task. This parameter is used to - * expand the total amount of ephemeral storage available, beyond the default amount, for - * tasks hosted on Fargate. For more information, see Using data volumes in - * tasks in the Amazon ECS Developer Guide.

    - * - *

    For tasks using the Fargate launch type, the task requires the - * following platforms:

    - *
      - *
    • - *

      Linux platform version 1.4.0 or later.

      - *
    • - *
    • - *

      Windows platform version 1.0.0 or later.

      - *
    • - *
    - *
    + *

    The short name or full Amazon Resource Name (ARN) of the cluster that contains the resource to apply + * attributes. If you do not specify a cluster, the default cluster is assumed.

    * @public */ - ephemeralStorage?: EphemeralStorage; + cluster?: string; /** - *

    The operating system that your tasks definitions run on. A platform family is - * specified only for tasks using the Fargate launch type.

    + *

    The attributes to apply to your resource. You can specify up to 10 custom attributes + * for each resource. You can specify up to 10 attributes in a single call.

    * @public */ - runtimePlatform?: RuntimePlatform; + attributes: Attribute[] | undefined; } /** * @public */ -export interface RegisterTaskDefinitionResponse { - /** - *

    The full description of the registered task definition.

    - * @public - */ - taskDefinition?: TaskDefinition; - +export interface PutAttributesResponse { /** - *

    The list of tags associated with the task definition.

    + *

    The attributes applied to your resource.

    * @public */ - tags?: Tag[]; + attributes?: Attribute[]; } /** - *

    Your Amazon Web Services account was blocked. For more information, contact - * Amazon Web Services Support.

    * @public */ -export class BlockedException extends __BaseException { - readonly name: "BlockedException" = "BlockedException"; - readonly $fault: "client" = "client"; +export interface PutClusterCapacityProvidersRequest { /** - * @internal + *

    The short name or full Amazon Resource Name (ARN) of the cluster to modify the capacity provider + * settings for. If you don't specify a cluster, the default cluster is assumed.

    + * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "BlockedException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, BlockedException.prototype); - } -} + cluster: string | undefined; -/** - *

    The RunTask request could not be processed due to conflicts. The provided - * clientToken is already in use with a different RunTask - * request. The resourceIds are the existing task ARNs which are already - * associated with the clientToken.

    - *

    To fix this issue:

    - *
      - *
    • - *

      Run RunTask with a unique clientToken.

      - *
    • - *
    • - *

      Run RunTask with the clientToken and the original - * set of parameters

      - *
    • - *
    + /** + *

    The name of one or more capacity providers to associate with the cluster.

    + *

    If specifying a capacity provider that uses an Auto Scaling group, the capacity + * provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

    + *

    To use a Fargate capacity provider, specify either the FARGATE or + * FARGATE_SPOT capacity providers. The Fargate capacity providers are + * available to all accounts and only need to be associated with a cluster to be + * used.

    + * @public + */ + capacityProviders: string[] | undefined; + + /** + *

    The capacity provider strategy to use by default for the cluster.

    + *

    When creating a service or running a task on a cluster, if no capacity provider or + * launch type is specified then the default capacity provider strategy for the cluster is + * used.

    + *

    A capacity provider strategy consists of one or more capacity providers along with the + * base and weight to assign to them. A capacity provider + * must be associated with the cluster to be used in a capacity provider strategy. The + * PutClusterCapacityProviders API is used to associate a capacity + * provider with a cluster. Only capacity providers with an ACTIVE or + * UPDATING status can be used.

    + *

    If specifying a capacity provider that uses an Auto Scaling group, the capacity + * provider must already be created. New capacity providers can be created with the CreateCapacityProvider API operation.

    + *

    To use a Fargate capacity provider, specify either the FARGATE or + * FARGATE_SPOT capacity providers. The Fargate capacity providers are + * available to all accounts and only need to be associated with a cluster to be + * used.

    + * @public + */ + defaultCapacityProviderStrategy: CapacityProviderStrategyItem[] | undefined; +} + +/** * @public */ -export class ConflictException extends __BaseException { - readonly name: "ConflictException" = "ConflictException"; - readonly $fault: "client" = "client"; +export interface PutClusterCapacityProvidersResponse { /** - *

    The existing task ARNs which are already associated with the - * clientToken.

    + *

    Details about the cluster.

    * @public */ - resourceIds?: string[]; + cluster?: Cluster; +} +/** + *

    The specified resource is in-use and can't be removed.

    + * @public + */ +export class ResourceInUseException extends __BaseException { + readonly name: "ResourceInUseException" = "ResourceInUseException"; + readonly $fault: "client" = "client"; /** * @internal */ - constructor(opts: __ExceptionOptionType) { + constructor(opts: __ExceptionOptionType) { super({ - name: "ConflictException", + name: "ResourceInUseException", $fault: "client", ...opts, }); - Object.setPrototypeOf(this, ConflictException.prototype); - this.resourceIds = opts.resourceIds; + Object.setPrototypeOf(this, ResourceInUseException.prototype); } } /** - *

    The termination policy for the Amazon EBS volume when the task exits. For more information, - * see Amazon ECS volume termination policy.

    * @public + * @enum */ -export interface TaskManagedEBSVolumeTerminationPolicy { - /** - *

    Indicates whether the volume should be deleted on when the task stops. If a value of - * true is specified, 
Amazon ECS deletes the Amazon EBS volume on your behalf when - * the task goes into the STOPPED state. If no value is specified, the - * 
default value is true is used. When set to false, Amazon ECS - * leaves the volume in your 
account.

    - * @public - */ - deleteOnTermination: boolean | undefined; -} +export const PlatformDeviceType = { + GPU: "GPU", +} as const; /** - *

    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.

    * @public */ -export interface TaskManagedEBSVolumeConfiguration { +export type PlatformDeviceType = (typeof PlatformDeviceType)[keyof typeof PlatformDeviceType]; + +/** + *

    The devices that are available on the container instance. The only supported device + * type is a GPU.

    + * @public + */ +export interface PlatformDevice { /** - *

    Indicates whether the volume should be encrypted. If no value is specified, encryption - * is turned on by default. This parameter maps 1:1 with the Encrypted - * parameter of the CreateVolume API in - * the Amazon EC2 API Reference.

    + *

    The ID for the GPUs on the container instance. The available GPU IDs can also be + * obtained on the container instance in the + * /var/lib/ecs/gpu/nvidia_gpu_info.json file.

    * @public */ - encrypted?: boolean; + id: string | undefined; /** - *

    The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When - * encryption is turned on and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key - * for Amazon EBS volumes is used. This parameter maps 1:1 with the KmsKeyId - * parameter of the CreateVolume API in - * the Amazon EC2 API Reference.

    - * - *

    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.

    - *
    + *

    The type of device that's available on the container instance. The only supported + * value is GPU.

    * @public */ - kmsKeyId?: string; + type: PlatformDeviceType | undefined; +} +/** + * @public + */ +export interface RegisterContainerInstanceRequest { /** - *

    The volume type. This parameter maps 1:1 with the VolumeType parameter of - * the CreateVolume API in the Amazon EC2 API Reference. For more - * information, see Amazon EBS volume types in - * the Amazon EC2 User Guide.

    - *

    The following are the supported volume types.

    - *
      - *
    • - *

      General Purpose SSD: gp2|gp3 - *

      - *
    • - *
    • - *

      Provisioned IOPS SSD: io1|io2 - *

      - *
    • - *
    • - *

      Throughput Optimized HDD: st1 - *

      - *
    • - *
    • - *

      Cold HDD: sc1 - *

      - *
    • - *
    • - *

      Magnetic: standard - *

      - * - *

      The magnetic volume type is not supported on Fargate.

      - *
      - *
    • - *
    + *

    The short name or full Amazon Resource Name (ARN) of the cluster to register your container instance + * with. If you do not specify a cluster, the default cluster is assumed.

    * @public */ - volumeType?: string; + cluster?: string; /** - *

    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 Size parameter of the CreateVolume API in the Amazon EC2 API Reference.

    - *

    The following are the supported volume size values for each volume type.

    - *
      - *
    • - *

      - * gp2 and gp3: 1-16,384

      - *
    • - *
    • - *

      - * io1 and io2: 4-16,384

      - *
    • - *
    • - *

      - * st1 and sc1: 125-16,384

      - *
    • - *
    • - *

      - * standard: 1-1,024

      - *
    • - *
    + *

    The instance identity document for the EC2 instance to register. This document can be + * found by running the following command from the instance: curl + * http://169.254.169.254/latest/dynamic/instance-identity/document/ + *

    * @public */ - sizeInGiB?: number; + instanceIdentityDocument?: string; /** - *

    The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot - * ID or a volume size. This parameter maps 1:1 with the SnapshotId parameter - * of the CreateVolume API in - * the Amazon EC2 API Reference.

    + *

    The instance identity document signature for the EC2 instance to register. This + * signature can be found by running the following command from the instance: curl + * http://169.254.169.254/latest/dynamic/instance-identity/signature/ + *

    * @public */ - snapshotId?: string; + instanceIdentityDocumentSignature?: string; /** - *

    The number of I/O operations per second (IOPS). For gp3, - * io1, and io2 volumes, this represents the number of IOPS that - * are provisioned for the volume. For gp2 volumes, this represents the - * baseline performance of the volume and the rate at which the volume accumulates I/O - * credits for bursting.

    - *

    The following are the supported values for each volume type.

    - *
      - *
    • - *

      - * gp3: 3,000 - 16,000 IOPS

      - *
    • - *
    • - *

      - * io1: 100 - 64,000 IOPS

      - *
    • - *
    • - *

      - * io2: 100 - 256,000 IOPS

      - *
    • - *
    - *

    This parameter is required for io1 and io2 volume types. The - * default for gp3 volumes is 3,000 IOPS. This parameter is not - * supported for st1, sc1, or standard volume - * types.

    - *

    This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the Amazon EC2 API Reference.

    + *

    The resources available on the instance.

    * @public */ - iops?: number; + totalResources?: Resource[]; /** - *

    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 Throughput parameter of the CreateVolume API in the Amazon EC2 API Reference.

    - * - *

    This parameter is only supported for the gp3 volume type.

    - *
    + *

    The version information for the Amazon ECS container agent and Docker daemon that runs on + * the container instance.

    * @public */ - throughput?: number; + versionInfo?: VersionInfo; /** - *

    The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This - * parameter maps 1:1 with the TagSpecifications.N parameter of the CreateVolume API in the Amazon EC2 API Reference.

    + *

    The ARN of the container instance (if it was previously registered).

    * @public */ - tagSpecifications?: EBSTagSpecification[]; + containerInstanceArn?: string; /** - *

    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 AmazonECSInfrastructureRolePolicyForVolumes IAM - * policy with this role. For more information, see Amazon ECS - * infrastructure IAM role in the Amazon ECS Developer - * Guide.

    + *

    The container instance attributes that this container instance supports.

    * @public */ - roleArn: string | undefined; + attributes?: Attribute[]; /** - *

    The termination policy for the volume when the task exits. This provides a way to - * control whether Amazon ECS terminates the Amazon EBS volume when the task stops.

    + *

    The devices that are available on the container instance. The only supported device + * type is a GPU.

    * @public */ - terminationPolicy?: TaskManagedEBSVolumeTerminationPolicy; + platformDevices?: PlatformDevice[]; /** - *

    The Linux 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 task will fail to start.

    - *

    The available filesystem types are
 ext3, ext4, and - * xfs. If no value is specified, the xfs filesystem type is - * used by default.

    + *

    The metadata that you apply to the container instance to help you categorize and + * organize them. Each tag consists of a key and an optional value. You define both.

    + *

    The following basic restrictions apply to tags:

    + *
      + *
    • + *

      Maximum number of tags per resource - 50

      + *
    • + *
    • + *

      For each resource, each tag key must be unique, and each tag key can have only + * one value.

      + *
    • + *
    • + *

      Maximum key length - 128 Unicode characters in UTF-8

      + *
    • + *
    • + *

      Maximum value length - 256 Unicode characters in UTF-8

      + *
    • + *
    • + *

      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: + - = . _ : / @.

      + *
    • + *
    • + *

      Tag keys and values are case-sensitive.

      + *
    • + *
    • + *

      Do not use aws:, AWS:, 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.

      + *
    • + *
    * @public */ - filesystemType?: TaskFilesystemType; + tags?: Tag[]; } /** - *

    Configuration settings for the task volume that was configuredAtLaunch - * that weren't set during RegisterTaskDef.

    * @public */ -export interface TaskVolumeConfiguration { - /** - *

    The name of the volume. This value must match the volume name from the - * Volume object in the task definition.

    - * @public - */ - name: string | undefined; - +export interface RegisterContainerInstanceResponse { /** - *

    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. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are - * created.

    + *

    The container instance that was registered.

    * @public */ - managedEBSVolume?: TaskManagedEBSVolumeConfiguration; + containerInstance?: ContainerInstance; } /** * @public */ -export interface RunTaskRequest { - /** - *

    The capacity provider strategy to use for the task.

    - *

    If a capacityProviderStrategy is specified, the launchType - * parameter must be omitted. If no capacityProviderStrategy or - * launchType is specified, the - * defaultCapacityProviderStrategy for the cluster is used.

    - *

    When you use cluster auto scaling, you must specify - * capacityProviderStrategy and not launchType.

    - *

    A capacity provider strategy may contain a maximum of 6 capacity providers.

    - * @public - */ - capacityProviderStrategy?: CapacityProviderStrategyItem[]; - - /** - *

    The short name or full Amazon Resource Name (ARN) of the cluster to run your task on. - * If you do not specify a cluster, the default cluster is assumed.

    - * @public - */ - cluster?: string; - - /** - *

    The number of instantiations of the specified task to place on your cluster. You can - * specify up to 10 tasks for each call.

    - * @public - */ - count?: number; - - /** - *

    Specifies whether to use Amazon ECS managed tags for the task. For more information, see - * Tagging Your Amazon ECS - * Resources in the Amazon Elastic Container Service Developer Guide.

    - * @public - */ - enableECSManagedTags?: boolean; - +export interface RegisterTaskDefinitionRequest { /** - *

    Determines whether to use the execute command functionality for the containers in this - * task. If true, this enables execute command functionality on all containers - * in the task.

    - *

    If true, then the task definition must have a task role, or you must - * provide one as an override.

    + *

    You must specify a family for a task definition. You can use it track + * multiple versions of the same task definition. The family is used as a name + * for your task definition. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed.

    * @public */ - enableExecuteCommand?: boolean; + family: string | undefined; /** - *

    The name of the task group to associate with the task. The default value is the family - * name of the task definition (for example, family:my-family-name).

    + *

    The short name or full Amazon Resource Name (ARN) of the IAM role that containers in this task can + * assume. All containers in this task are granted the permissions that are specified in + * this role. For more information, see IAM Roles for + * Tasks in the Amazon Elastic Container Service Developer Guide.

    * @public */ - group?: string; + taskRoleArn?: string; /** - *

    The infrastructure to run your standalone task on. For more information, see Amazon ECS - * launch types in the Amazon Elastic Container Service Developer Guide.

    - *

    The FARGATE launch type runs your tasks on Fargate On-Demand - * infrastructure.

    - * - *

    Fargate Spot infrastructure is available for use but a capacity provider - * strategy must be used. For more information, see Fargate capacity providers in the - * Amazon ECS Developer Guide.

    - *
    - *

    The EC2 launch type runs your tasks on Amazon EC2 instances registered to your - * cluster.

    - *

    The EXTERNAL launch type runs your tasks on your on-premises server or - * virtual machine (VM) capacity registered to your cluster.

    - *

    A task can use either a launch type or a capacity provider strategy. If a - * launchType is specified, the capacityProviderStrategy - * parameter must be omitted.

    - *

    When you use cluster auto scaling, you must specify - * capacityProviderStrategy and not launchType.

    + *

    The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent + * permission to make Amazon Web Services API calls on your behalf. For informationabout the required IAM roles for Amazon ECS, see IAM roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

    * @public */ - launchType?: LaunchType; + executionRoleArn?: string; /** - *

    The network configuration for the task. This parameter is required for task - * definitions that use the awsvpc network mode to receive their own elastic - * network interface, and it isn't supported for other network modes. For more information, - * see Task networking - * in the Amazon Elastic Container Service Developer Guide.

    + *

    The Docker networking mode to use for the containers in the task. The valid values are + * none, bridge, awsvpc, and host. + * If no network mode is specified, the default is bridge.

    + *

    For Amazon ECS tasks on Fargate, the awsvpc network mode is required. + * For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If the network + * mode is set to none, you cannot specify port mappings in your container + * definitions, and the tasks containers do not have external connectivity. The + * host and awsvpc network modes offer the highest networking + * performance for containers because they use the EC2 network stack instead of the + * virtualized network stack provided by the bridge mode.

    + *

    With the host and awsvpc network modes, exposed container + * ports are mapped directly to the corresponding host port (for the host + * network mode) or the attached elastic network interface port (for the + * awsvpc network mode), so you cannot take advantage of dynamic host port + * mappings.

    + * + *

    When using the host network mode, you should not run + * containers using the root user (UID 0). It is considered best practice + * to use a non-root user.

    + *
    + *

    If the network mode is awsvpc, the task is allocated an elastic network + * interface, and you must specify a NetworkConfiguration value when you create + * a service or run a task with the task definition. For more information, see Task Networking in the + * Amazon Elastic Container Service Developer Guide.

    + *

    If the network mode is host, you cannot run multiple instantiations of the + * same task on a single container instance when port mappings are used.

    + *

    For more information, see Network + * settings in the Docker run reference.

    * @public */ - networkConfiguration?: NetworkConfiguration; + networkMode?: NetworkMode; /** - *

    A list of container overrides in JSON format that specify the name of a container in - * the specified task definition and the overrides it should receive. You can override the - * default command for a container (that's specified in the task definition or Docker - * image) with a command override. You can also override existing environment - * variables (that are specified in the task definition or Docker image) on a container or - * add new environment variables to it with an environment override.

    - *

    A total of 8192 characters are allowed for overrides. This limit includes the JSON - * formatting characters of the override structure.

    + *

    A list of container definitions in JSON format that describe the different containers + * that make up your task.

    * @public */ - overrides?: TaskOverride; + containerDefinitions: ContainerDefinition[] | undefined; /** - *

    An array of placement constraint objects to use for the task. You can specify up to 10 - * constraints for each task (including constraints in the task definition and those - * specified at runtime).

    + *

    A list of volume definitions in JSON format that containers in your task might + * use.

    * @public */ - placementConstraints?: PlacementConstraint[]; + volumes?: Volume[]; /** - *

    The placement strategy objects to use for the task. You can specify a maximum of 5 - * strategy rules for each task.

    + *

    An array of placement constraint objects to use for the task. You can specify a + * maximum of 10 constraints for each task. This limit includes constraints in the task + * definition and those specified at runtime.

    * @public */ - placementStrategy?: PlacementStrategy[]; + placementConstraints?: TaskDefinitionPlacementConstraint[]; /** - *

    The platform version the task uses. A platform version is only specified for tasks - * hosted on Fargate. If one isn't specified, the LATEST - * platform version is used. For more information, see Fargate platform - * versions in the Amazon Elastic Container Service Developer Guide.

    + *

    The task launch type that Amazon ECS validates the task definition against. A client + * exception is returned if the task definition doesn't validate against the + * compatibilities specified. If no value is specified, the parameter is omitted from the + * response.

    * @public */ - platformVersion?: string; + requiresCompatibilities?: Compatibility[]; /** - *

    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 theTagResource API action.

    + *

    The number of CPU units used by the task. It can be expressed as an integer using CPU + * units (for example, 1024) or as a string using vCPUs (for example, 1 + * vCPU or 1 vcpu) in a task definition. String values are + * converted to an integer indicating the CPU units when the task definition is + * registered.

    * - *

    An error will be received if you specify the SERVICE option when - * running a task.

    + *

    Task-level CPU and memory parameters are ignored for Windows containers. We + * recommend specifying container-level resources for Windows containers.

    *
    + *

    If you're using the EC2 launch type, this field is optional. Supported + * values are between 128 CPU units (0.125 vCPUs) and + * 10240 CPU units (10 vCPUs). If you do not specify a value, + * the parameter is ignored.

    + *

    If you're using the Fargate launch type, this field is required and you + * must use one of the following values, which determines your range of supported values + * for the memory parameter:

    + *

    The CPU units cannot be less than 1 vCPU when you use Windows containers on + * Fargate.

    + *
      + *
    • + *

      256 (.25 vCPU) - Available memory values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB)

      + *
    • + *
    • + *

      512 (.5 vCPU) - Available memory values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB)

      + *
    • + *
    • + *

      1024 (1 vCPU) - Available memory values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB)

      + *
    • + *
    • + *

      2048 (2 vCPU) - Available memory values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB)

      + *
    • + *
    • + *

      4096 (4 vCPU) - Available memory values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB)

      + *
    • + *
    • + *

      8192 (8 vCPU) - Available memory values: 16 GB and 60 GB in 4 GB increments

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    • + *

      16384 (16vCPU) - Available memory values: 32GB and 120 GB in 8 GB increments

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    * @public */ - propagateTags?: PropagateTags; - - /** - *

    This parameter is only used by Amazon ECS. It is not intended for use by customers.

    - * @public - */ - referenceId?: string; + cpu?: string; /** - *

    An optional tag specified when a task is started. For example, if you automatically - * trigger a task to run a batch process job, you could apply a unique identifier for that - * job to your task with the startedBy parameter. You can then identify which - * tasks belong to that job by filtering the results of a ListTasks call with - * the startedBy value. Up to 128 letters (uppercase and lowercase), numbers, - * hyphens (-), forward slash (/), and underscores (_) are allowed.

    - *

    If a task is started by an Amazon ECS service, then the startedBy parameter - * contains the deployment ID of the service that starts it.

    + *

    The amount of memory (in MiB) used by the task. It can be expressed as an integer + * using MiB (for example ,1024) or as a string using GB (for example, + * 1GB or 1 GB) in a task definition. String values are + * converted to an integer indicating the MiB when the task definition is + * registered.

    + * + *

    Task-level CPU and memory parameters are ignored for Windows containers. We + * recommend specifying container-level resources for Windows containers.

    + *
    + *

    If using the EC2 launch type, this field is optional.

    + *

    If using the Fargate launch type, this field is required and you must + * use one of the following values. This determines your range of supported values for the + * cpu parameter.

    + *

    The CPU units cannot be less than 1 vCPU when you use Windows containers on + * Fargate.

    + *
      + *
    • + *

      512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available cpu values: 256 (.25 vCPU)

      + *
    • + *
    • + *

      1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available cpu values: 512 (.5 vCPU)

      + *
    • + *
    • + *

      2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available cpu values: 1024 (1 vCPU)

      + *
    • + *
    • + *

      Between 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) - Available cpu values: 2048 (2 vCPU)

      + *
    • + *
    • + *

      Between 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) - Available cpu values: 4096 (4 vCPU)

      + *
    • + *
    • + *

      Between 16 GB and 60 GB in 4 GB increments - Available cpu values: 8192 (8 vCPU)

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    • + *

      Between 32GB and 120 GB in 8 GB increments - Available cpu values: 16384 (16 vCPU)

      + *

      This option requires Linux platform 1.4.0 or + * later.

      + *
    • + *
    * @public */ - startedBy?: string; + memory?: string; /** - *

    The metadata that you apply to the task to help you categorize and organize them. Each - * tag consists of a key and an optional value, both of which you define.

    + *

    The metadata that you apply to the task definition to help you categorize and organize + * them. Each tag consists of a key and an optional value. You define both of them.

    *

    The following basic restrictions apply to tags:

    *
      *
    • @@ -11802,541 +11890,763 @@ export interface RunTaskRequest { tags?: Tag[]; /** - *

      The family and revision (family:revision) or - * full ARN of the task definition to run. If a revision isn't specified, - * the latest ACTIVE revision is used.

      - *

      The full ARN value must match the value that you specified as the - * Resource of the principal's permissions policy.

      - *

      When you specify a task definition, you must either specify a specific revision, or - * all revisions in the ARN.

      - *

      To specify a specific revision, include the revision number in the ARN. For example, - * to specify revision 2, use - * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:2.

      - *

      To specify all revisions, use the wildcard (*) in the ARN. For example, to specify - * all revisions, use - * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*.

      - *

      For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

      - * @public - */ - taskDefinition: string | undefined; - - /** - *

      An identifier that you provide to ensure the idempotency of the request. It must be - * unique and is case sensitive. Up to 64 characters are allowed. The valid characters are - * characters in the range of 33-126, inclusive. For more information, see Ensuring idempotency.

      + *

      The process namespace to use for the containers in the task. The valid + * values are host or task. On Fargate for + * Linux containers, the only valid value is task. For + * example, monitoring sidecars might need pidMode to access + * information about other containers running in the same task.

      + *

      If host is specified, all containers within the tasks + * that specified the host PID mode on the same container + * instance share the same process namespace with the host Amazon EC2 + * instance.

      + *

      If task is specified, all containers within the specified + * task share the same process namespace.

      + *

      If no value is specified, the + * default is a private namespace for each container. For more information, + * see PID settings in the Docker run + * reference.

      + *

      If the host PID mode is used, there's a heightened risk + * of undesired process namespace exposure. For more information, see + * Docker security.

      + * + *

      This parameter is not supported for Windows containers.

      + *
      + * + *

      This parameter is only supported for tasks that are hosted on + * Fargate if the tasks are using platform version 1.4.0 or later + * (Linux). This isn't supported for Windows containers on + * Fargate.

      + *
      * @public */ - clientToken?: string; + pidMode?: PidMode; /** - *

      The details of the volume that was configuredAtLaunch. You can configure - * the size, volumeType, IOPS, throughput, snapshot and encryption in in TaskManagedEBSVolumeConfiguration. The name of the volume must - * match the name from the task definition.

      + *

      The IPC resource namespace to use for the containers in the task. The valid values are + * host, task, or none. If host is + * specified, then all containers within the tasks that specified the host IPC + * mode on the same container instance share the same IPC resources with the host Amazon EC2 + * instance. If task is specified, all containers within the specified task + * share the same IPC resources. If none is specified, then IPC resources + * within the containers of a task are private and not shared with other containers in a + * task or on the container instance. If no value is specified, then the IPC resource + * namespace sharing depends on the Docker daemon setting on the container instance. For + * more information, see IPC + * settings in the Docker run reference.

      + *

      If the host IPC mode is used, be aware that there is a heightened risk of + * undesired IPC namespace expose. For more information, see Docker + * security.

      + *

      If you are setting namespaced kernel parameters using systemControls for + * the containers in the task, the following will apply to your IPC resource namespace. For + * more information, see System + * Controls in the Amazon Elastic Container Service Developer Guide.

      + *
        + *
      • + *

        For tasks that use the host IPC mode, IPC namespace related + * systemControls are not supported.

        + *
      • + *
      • + *

        For tasks that use the task IPC mode, IPC namespace related + * systemControls will apply to all containers within a + * task.

        + *
      • + *
      + * + *

      This parameter is not supported for Windows containers or tasks run on Fargate.

      + *
      * @public */ - volumeConfigurations?: TaskVolumeConfiguration[]; -} + ipcMode?: IpcMode; -/** - * @public - */ -export interface RunTaskResponse { /** - *

      A full description of the tasks that were run. The tasks that were successfully placed - * on your cluster are described here.

      + *

      The configuration details for the App Mesh proxy.

      + *

      For tasks hosted on Amazon EC2 instances, the container instances require at least version + * 1.26.0 of the container agent and at least version + * 1.26.0-1 of the ecs-init package to use a proxy + * configuration. If your container instances are launched from the Amazon ECS-optimized + * AMI version 20190301 or later, then they contain the required versions of + * the container agent and ecs-init. For more information, see Amazon ECS-optimized AMI versions in the Amazon Elastic Container Service Developer Guide.

      * @public */ - tasks?: Task[]; + proxyConfiguration?: ProxyConfiguration; /** - *

      Any failures associated with the call.

      - *

      For information about how to address failures, see Service event messages and API failure - * reasons in the Amazon Elastic Container Service Developer Guide.

      + *

      The Elastic Inference accelerators to use for the containers in the task.

      * @public */ - failures?: Failure[]; -} + inferenceAccelerators?: InferenceAccelerator[]; -/** - * @public - */ -export interface StartTaskRequest { /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster where to start your task. - * If you do not specify a cluster, the default cluster is assumed.

      + *

      The amount of ephemeral storage to allocate for the task. This parameter is used to + * expand the total amount of ephemeral storage available, beyond the default amount, for + * tasks hosted on Fargate. For more information, see Using data volumes in + * tasks in the Amazon ECS Developer Guide.

      + * + *

      For tasks using the Fargate launch type, the task requires the + * following platforms:

      + *
        + *
      • + *

        Linux platform version 1.4.0 or later.

        + *
      • + *
      • + *

        Windows platform version 1.0.0 or later.

        + *
      • + *
      + *
      * @public */ - cluster?: string; + ephemeralStorage?: EphemeralStorage; /** - *

      The container instance IDs or full ARN entries for the container instances where you - * would like to place your task. You can specify up to 10 container instances.

      + *

      The operating system that your tasks definitions run on. A platform family is + * specified only for tasks using the Fargate launch type.

      * @public */ - containerInstances: string[] | undefined; + runtimePlatform?: RuntimePlatform; +} +/** + * @public + */ +export interface RegisterTaskDefinitionResponse { /** - *

      Specifies whether to use Amazon ECS managed tags for the task. For more information, see - * Tagging Your Amazon ECS - * Resources in the Amazon Elastic Container Service Developer Guide.

      + *

      The full description of the registered task definition.

      * @public */ - enableECSManagedTags?: boolean; + taskDefinition?: TaskDefinition; /** - *

      Whether or not the execute command functionality is turned on for the task. If - * true, this turns on the execute command functionality on all containers - * in the task.

      + *

      The list of tags associated with the task definition.

      * @public */ - enableExecuteCommand?: boolean; + tags?: Tag[]; +} +/** + *

      Your Amazon Web Services account was blocked. For more information, contact + * Amazon Web Services Support.

      + * @public + */ +export class BlockedException extends __BaseException { + readonly name: "BlockedException" = "BlockedException"; + readonly $fault: "client" = "client"; /** - *

      The name of the task group to associate with the task. The default value is the family - * name of the task definition (for example, family:my-family-name).

      - * @public + * @internal */ - group?: string; + constructor(opts: __ExceptionOptionType) { + super({ + name: "BlockedException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, BlockedException.prototype); + } +} +/** + *

      The RunTask request could not be processed due to conflicts. The provided + * clientToken is already in use with a different RunTask + * request. The resourceIds are the existing task ARNs which are already + * associated with the clientToken.

      + *

      To fix this issue:

      + *
        + *
      • + *

        Run RunTask with a unique clientToken.

        + *
      • + *
      • + *

        Run RunTask with the clientToken and the original + * set of parameters

        + *
      • + *
      + * @public + */ +export class ConflictException extends __BaseException { + readonly name: "ConflictException" = "ConflictException"; + readonly $fault: "client" = "client"; /** - *

      The VPC subnet and security group configuration for tasks that receive their own - * elastic network interface by using the awsvpc networking mode.

      + *

      The existing task ARNs which are already associated with the + * clientToken.

      * @public */ - networkConfiguration?: NetworkConfiguration; + resourceIds?: string[]; /** - *

      A list of container overrides in JSON format that specify the name of a container in - * the specified task definition and the overrides it receives. You can override the - * default command for a container (that's specified in the task definition or Docker - * image) with a command override. You can also override existing environment - * variables (that are specified in the task definition or Docker image) on a container or - * add new environment variables to it with an environment override.

      - * - *

      A total of 8192 characters are allowed for overrides. This limit includes the JSON - * formatting characters of the override structure.

      - *
      - * @public + * @internal */ - overrides?: TaskOverride; + constructor(opts: __ExceptionOptionType) { + super({ + name: "ConflictException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ConflictException.prototype); + this.resourceIds = opts.resourceIds; + } +} +/** + *

      The termination policy for the Amazon EBS volume when the task exits. For more information, + * see Amazon ECS volume termination policy.

      + * @public + */ +export interface TaskManagedEBSVolumeTerminationPolicy { /** - *

      Specifies 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.

      + *

      Indicates whether the volume should be deleted on when the task stops. If a value of + * true is specified, 
Amazon ECS deletes the Amazon EBS volume on your behalf when + * the task goes into the STOPPED state. If no value is specified, the + * 
default value is true is used. When set to false, Amazon ECS + * leaves the volume in your 
account.

      * @public */ - propagateTags?: PropagateTags; + deleteOnTermination: boolean | undefined; +} +/** + *

      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.

      + * @public + */ +export interface TaskManagedEBSVolumeConfiguration { /** - *

      This parameter is only used by Amazon ECS. It is not intended for use by customers.

      + *

      Indicates whether the volume should be encrypted. If no value is specified, encryption + * is turned on by default. This parameter maps 1:1 with the Encrypted + * parameter of the CreateVolume API in + * the Amazon EC2 API Reference.

      * @public */ - referenceId?: string; + encrypted?: boolean; /** - *

      An optional tag specified when a task is started. For example, if you automatically trigger - * a task to run a batch process job, you could apply a unique identifier for that job to - * your task with the startedBy parameter. You can then identify which tasks - * belong to that job by filtering the results of a ListTasks call with - * the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, - * hyphens (-), forward slash (/), and underscores (_) are allowed.

      - *

      If a task is started by an Amazon ECS service, the startedBy parameter - * contains the deployment ID of the service that starts it.

      + *

      The Amazon Resource Name (ARN) identifier of the Amazon Web Services Key Management Service key to use for Amazon EBS encryption. When + * encryption is turned on and no Amazon Web Services Key Management Service key is specified, the default Amazon Web Services managed key + * for Amazon EBS volumes is used. This parameter maps 1:1 with the KmsKeyId + * parameter of the CreateVolume API in + * the Amazon EC2 API Reference.

      + * + *

      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.

      + *
      * @public */ - startedBy?: string; + kmsKeyId?: string; /** - *

      The metadata that you apply to the task to help you categorize and organize them. Each - * tag consists of a key and an optional value, both of which you define.

      - *

      The following basic restrictions apply to tags:

      + *

      The volume type. This parameter maps 1:1 with the VolumeType parameter of + * the CreateVolume API in the Amazon EC2 API Reference. For more + * information, see Amazon EBS volume types in + * the Amazon EC2 User Guide.

      + *

      The following are the supported volume types.

      *
        *
      • - *

        Maximum number of tags per resource - 50

        - *
      • - *
      • - *

        For each resource, each tag key must be unique, and each tag key can have only - * one value.

        - *
      • - *
      • - *

        Maximum key length - 128 Unicode characters in UTF-8

        + *

        General Purpose SSD: gp2|gp3 + *

        *
      • *
      • - *

        Maximum value length - 256 Unicode characters in UTF-8

        + *

        Provisioned IOPS SSD: io1|io2 + *

        *
      • *
      • - *

        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: + - = . _ : / @.

        + *

        Throughput Optimized HDD: st1 + *

        *
      • *
      • - *

        Tag keys and values are case-sensitive.

        + *

        Cold HDD: sc1 + *

        *
      • *
      • - *

        Do not use aws:, AWS:, 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.

        + *

        Magnetic: standard + *

        + * + *

        The magnetic volume type is not supported on Fargate.

        + *
        *
      • *
      * @public */ - tags?: Tag[]; - - /** - *

      The family and revision (family:revision) or - * full ARN of the task definition to start. If a revision isn't specified, - * the latest ACTIVE revision is used.

      - * @public - */ - taskDefinition: string | undefined; - - /** - *

      The details of the volume that was configuredAtLaunch. You can configure - * the size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name of the volume must - * match the name from the task definition.

      - * @public - */ - volumeConfigurations?: TaskVolumeConfiguration[]; -} + volumeType?: string; -/** - * @public - */ -export interface StartTaskResponse { /** - *

      A full description of the tasks that were started. Each task that was successfully - * placed on your container instances is described.

      + *

      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 Size parameter of the CreateVolume API in the Amazon EC2 API Reference.

      + *

      The following are the supported volume size values for each volume type.

      + *
        + *
      • + *

        + * gp2 and gp3: 1-16,384

        + *
      • + *
      • + *

        + * io1 and io2: 4-16,384

        + *
      • + *
      • + *

        + * st1 and sc1: 125-16,384

        + *
      • + *
      • + *

        + * standard: 1-1,024

        + *
      • + *
      * @public */ - tasks?: Task[]; + sizeInGiB?: number; /** - *

      Any failures associated with the call.

      + *

      The snapshot that Amazon ECS uses to create the volume. You must specify either a snapshot + * ID or a volume size. This parameter maps 1:1 with the SnapshotId parameter + * of the CreateVolume API in + * the Amazon EC2 API Reference.

      * @public */ - failures?: Failure[]; -} + snapshotId?: string; -/** - * @public - */ -export interface StopTaskRequest { /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. - * If you do not specify a cluster, the default cluster is assumed.

      + *

      The number of I/O operations per second (IOPS). For gp3, + * io1, and io2 volumes, this represents the number of IOPS that + * are provisioned for the volume. For gp2 volumes, this represents the + * baseline performance of the volume and the rate at which the volume accumulates I/O + * credits for bursting.

      + *

      The following are the supported values for each volume type.

      + *
        + *
      • + *

        + * gp3: 3,000 - 16,000 IOPS

        + *
      • + *
      • + *

        + * io1: 100 - 64,000 IOPS

        + *
      • + *
      • + *

        + * io2: 100 - 256,000 IOPS

        + *
      • + *
      + *

      This parameter is required for io1 and io2 volume types. The + * default for gp3 volumes is 3,000 IOPS. This parameter is not + * supported for st1, sc1, or standard volume + * types.

      + *

      This parameter maps 1:1 with the Iops parameter of the CreateVolume API in the Amazon EC2 API Reference.

      * @public */ - cluster?: string; + iops?: number; /** - *

      The task ID of the task to stop.

      + *

      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 Throughput parameter of the CreateVolume API in the Amazon EC2 API Reference.

      + * + *

      This parameter is only supported for the gp3 volume type.

      + *
      * @public */ - task: string | undefined; + throughput?: number; /** - *

      An optional message specified when a task is stopped. For example, if you're using a - * custom scheduler, you can use this parameter to specify the reason for stopping the task - * here, and the message appears in subsequent DescribeTasks> API - * operations on this task.

      + *

      The tags to apply to the volume. Amazon ECS applies service-managed tags by default. This + * parameter maps 1:1 with the TagSpecifications.N parameter of the CreateVolume API in the Amazon EC2 API Reference.

      * @public */ - reason?: string; -} + tagSpecifications?: EBSTagSpecification[]; -/** - * @public - */ -export interface StopTaskResponse { /** - *

      The task that was stopped.

      + *

      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 AmazonECSInfrastructureRolePolicyForVolumes IAM + * policy with this role. For more information, see Amazon ECS + * infrastructure IAM role in the Amazon ECS Developer + * Guide.

      * @public */ - task?: Task; -} + roleArn: string | undefined; -/** - *

      An object representing a change in state for a task attachment.

      - * @public - */ -export interface AttachmentStateChange { /** - *

      The Amazon Resource Name (ARN) of the attachment.

      + *

      The termination policy for the volume when the task exits. This provides a way to + * control whether Amazon ECS terminates the Amazon EBS volume when the task stops.

      * @public */ - attachmentArn: string | undefined; + terminationPolicy?: TaskManagedEBSVolumeTerminationPolicy; /** - *

      The status of the attachment.

      + *

      The Linux 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 task will fail to start.

      + *

      The available filesystem types are
 ext3, ext4, and + * xfs. If no value is specified, the xfs filesystem type is + * used by default.

      * @public */ - status: string | undefined; + filesystemType?: TaskFilesystemType; } /** + *

      Configuration settings for the task volume that was configuredAtLaunch + * that weren't set during RegisterTaskDef.

      * @public */ -export interface SubmitAttachmentStateChangesRequest { - /** - *

      The short name or full ARN of the cluster that hosts the container instance the - * attachment belongs to.

      - * @public - */ - cluster?: string; - +export interface TaskVolumeConfiguration { /** - *

      Any attachments associated with the state change request.

      + *

      The name of the volume. This value must match the volume name from the + * Volume object in the task definition.

      * @public */ - attachments: AttachmentStateChange[] | undefined; -} + name: string | undefined; -/** - * @public - */ -export interface SubmitAttachmentStateChangesResponse { /** - *

      Acknowledgement of the state change.

      + *

      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. The Amazon EBS volumes are visible in your account in the Amazon EC2 console once they are + * created.

      * @public */ - acknowledgment?: string; + managedEBSVolume?: TaskManagedEBSVolumeConfiguration; } /** * @public */ -export interface SubmitContainerStateChangeRequest { - /** - *

      The short name or full ARN of the cluster that hosts the container.

      - * @public - */ - cluster?: string; - +export interface RunTaskRequest { /** - *

      The task ID or full Amazon Resource Name (ARN) of the task that hosts the container.

      + *

      The capacity provider strategy to use for the task.

      + *

      If a capacityProviderStrategy is specified, the launchType + * parameter must be omitted. If no capacityProviderStrategy or + * launchType is specified, the + * defaultCapacityProviderStrategy for the cluster is used.

      + *

      When you use cluster auto scaling, you must specify + * capacityProviderStrategy and not launchType.

      + *

      A capacity provider strategy may contain a maximum of 6 capacity providers.

      * @public */ - task?: string; + capacityProviderStrategy?: CapacityProviderStrategyItem[]; /** - *

      The name of the container.

      + *

      The short name or full Amazon Resource Name (ARN) of the cluster to run your task on. + * If you do not specify a cluster, the default cluster is assumed.

      * @public */ - containerName?: string; + cluster?: string; /** - *

      The ID of the Docker container.

      + *

      The number of instantiations of the specified task to place on your cluster. You can + * specify up to 10 tasks for each call.

      * @public */ - runtimeId?: string; + count?: number; /** - *

      The status of the state change request.

      + *

      Specifies whether to use Amazon ECS managed tags for the task. For more information, see + * Tagging Your Amazon ECS + * Resources in the Amazon Elastic Container Service Developer Guide.

      * @public */ - status?: string; + enableECSManagedTags?: boolean; /** - *

      The exit code that's returned for the state change request.

      + *

      Determines whether to use the execute command functionality for the containers in this + * task. If true, this enables execute command functionality on all containers + * in the task.

      + *

      If true, then the task definition must have a task role, or you must + * provide one as an override.

      * @public */ - exitCode?: number; + enableExecuteCommand?: boolean; /** - *

      The reason for the state change request.

      + *

      The name of the task group to associate with the task. The default value is the family + * name of the task definition (for example, family:my-family-name).

      * @public */ - reason?: string; + group?: string; /** - *

      The network bindings of the container.

      + *

      The infrastructure to run your standalone task on. For more information, see Amazon ECS + * launch types in the Amazon Elastic Container Service Developer Guide.

      + *

      The FARGATE launch type runs your tasks on Fargate On-Demand + * infrastructure.

      + * + *

      Fargate Spot infrastructure is available for use but a capacity provider + * strategy must be used. For more information, see Fargate capacity providers in the + * Amazon ECS Developer Guide.

      + *
      + *

      The EC2 launch type runs your tasks on Amazon EC2 instances registered to your + * cluster.

      + *

      The EXTERNAL launch type runs your tasks on your on-premises server or + * virtual machine (VM) capacity registered to your cluster.

      + *

      A task can use either a launch type or a capacity provider strategy. If a + * launchType is specified, the capacityProviderStrategy + * parameter must be omitted.

      + *

      When you use cluster auto scaling, you must specify + * capacityProviderStrategy and not launchType.

      * @public */ - networkBindings?: NetworkBinding[]; -} + launchType?: LaunchType; -/** - * @public - */ -export interface SubmitContainerStateChangeResponse { /** - *

      Acknowledgement of the state change.

      + *

      The network configuration for the task. This parameter is required for task + * definitions that use the awsvpc network mode to receive their own elastic + * network interface, and it isn't supported for other network modes. For more information, + * see Task networking + * in the Amazon Elastic Container Service Developer Guide.

      * @public */ - acknowledgment?: string; -} + networkConfiguration?: NetworkConfiguration; -/** - *

      An object that represents a change in state for a container.

      - * @public - */ -export interface ContainerStateChange { /** - *

      The name of the container.

      + *

      A list of container overrides in JSON format that specify the name of a container in + * the specified task definition and the overrides it should receive. You can override the + * default command for a container (that's specified in the task definition or Docker + * image) with a command override. You can also override existing environment + * variables (that are specified in the task definition or Docker image) on a container or + * add new environment variables to it with an environment override.

      + *

      A total of 8192 characters are allowed for overrides. This limit includes the JSON + * formatting characters of the override structure.

      * @public */ - containerName?: string; + overrides?: TaskOverride; /** - *

      The container image SHA 256 digest.

      + *

      An array of placement constraint objects to use for the task. You can specify up to 10 + * constraints for each task (including constraints in the task definition and those + * specified at runtime).

      * @public */ - imageDigest?: string; + placementConstraints?: PlacementConstraint[]; /** - *

      The ID of the Docker container.

      + *

      The placement strategy objects to use for the task. You can specify a maximum of 5 + * strategy rules for each task.

      * @public */ - runtimeId?: string; + placementStrategy?: PlacementStrategy[]; /** - *

      The exit code for the container, if the state change is a result of the container - * exiting.

      + *

      The platform version the task uses. A platform version is only specified for tasks + * hosted on Fargate. If one isn't specified, the LATEST + * platform version is used. For more information, see Fargate platform + * versions in the Amazon Elastic Container Service Developer Guide.

      * @public */ - exitCode?: number; + platformVersion?: string; /** - *

      Any network bindings that are associated with the container.

      + *

      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 theTagResource API action.

      + * + *

      An error will be received if you specify the SERVICE option when + * running a task.

      + *
      * @public */ - networkBindings?: NetworkBinding[]; + propagateTags?: PropagateTags; /** - *

      The reason for the state change.

      + *

      This parameter is only used by Amazon ECS. It is not intended for use by customers.

      * @public */ - reason?: string; + referenceId?: string; /** - *

      The status of the container.

      + *

      An optional tag specified when a task is started. For example, if you automatically + * trigger a task to run a batch process job, you could apply a unique identifier for that + * job to your task with the startedBy parameter. You can then identify which + * tasks belong to that job by filtering the results of a ListTasks call with + * the startedBy value. Up to 128 letters (uppercase and lowercase), numbers, + * hyphens (-), forward slash (/), and underscores (_) are allowed.

      + *

      If a task is started by an Amazon ECS service, then the startedBy parameter + * contains the deployment ID of the service that starts it.

      * @public */ - status?: string; -} + startedBy?: string; -/** - *

      An object representing a change in state for a managed agent.

      - * @public - */ -export interface ManagedAgentStateChange { /** - *

      The name of the container that's associated with the managed agent.

      + *

      The metadata that you apply to the task to help you categorize and organize them. Each + * tag consists of a key and an optional value, both of which you define.

      + *

      The following basic restrictions apply to tags:

      + *
        + *
      • + *

        Maximum number of tags per resource - 50

        + *
      • + *
      • + *

        For each resource, each tag key must be unique, and each tag key can have only + * one value.

        + *
      • + *
      • + *

        Maximum key length - 128 Unicode characters in UTF-8

        + *
      • + *
      • + *

        Maximum value length - 256 Unicode characters in UTF-8

        + *
      • + *
      • + *

        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: + - = . _ : / @.

        + *
      • + *
      • + *

        Tag keys and values are case-sensitive.

        + *
      • + *
      • + *

        Do not use aws:, AWS:, 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.

        + *
      • + *
      * @public */ - containerName: string | undefined; + tags?: Tag[]; /** - *

      The name of the managed agent.

      + *

      The family and revision (family:revision) or + * full ARN of the task definition to run. If a revision isn't specified, + * the latest ACTIVE revision is used.

      + *

      The full ARN value must match the value that you specified as the + * Resource of the principal's permissions policy.

      + *

      When you specify a task definition, you must either specify a specific revision, or + * all revisions in the ARN.

      + *

      To specify a specific revision, include the revision number in the ARN. For example, + * to specify revision 2, use + * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:2.

      + *

      To specify all revisions, use the wildcard (*) in the ARN. For example, to specify + * all revisions, use + * arn:aws:ecs:us-east-1:111122223333:task-definition/TaskFamilyName:*.

      + *

      For more information, see Policy Resources for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

      * @public */ - managedAgentName: ManagedAgentName | undefined; + taskDefinition: string | undefined; /** - *

      The status of the managed agent.

      + *

      An identifier that you provide to ensure the idempotency of the request. It must be + * unique and is case sensitive. Up to 64 characters are allowed. The valid characters are + * characters in the range of 33-126, inclusive. For more information, see Ensuring idempotency.

      * @public */ - status: string | undefined; + clientToken?: string; /** - *

      The reason for the status of the managed agent.

      + *

      The details of the volume that was configuredAtLaunch. You can configure + * the size, volumeType, IOPS, throughput, snapshot and encryption in in TaskManagedEBSVolumeConfiguration. The name of the volume must + * match the name from the task definition.

      * @public */ - reason?: string; + volumeConfigurations?: TaskVolumeConfiguration[]; } /** * @public */ -export interface SubmitTaskStateChangeRequest { +export interface RunTaskResponse { /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task.

      + *

      A full description of the tasks that were run. The tasks that were successfully placed + * on your cluster are described here.

      * @public */ - cluster?: string; + tasks?: Task[]; /** - *

      The task ID or full ARN of the task in the state change request.

      + *

      Any failures associated with the call.

      + *

      For information about how to address failures, see Service event messages and API failure + * reasons in the Amazon Elastic Container Service Developer Guide.

      * @public */ - task?: string; + failures?: Failure[]; +} +/** + * @public + */ +export interface StartTaskRequest { /** - *

      The status of the state change request.

      + *

      The short name or full Amazon Resource Name (ARN) of the cluster where to start your task. + * If you do not specify a cluster, the default cluster is assumed.

      * @public */ - status?: string; + cluster?: string; /** - *

      The reason for the state change request.

      + *

      The container instance IDs or full ARN entries for the container instances where you + * would like to place your task. You can specify up to 10 container instances.

      * @public */ - reason?: string; + containerInstances: string[] | undefined; /** - *

      Any containers that's associated with the state change request.

      + *

      Specifies whether to use Amazon ECS managed tags for the task. For more information, see + * Tagging Your Amazon ECS + * Resources in the Amazon Elastic Container Service Developer Guide.

      * @public */ - containers?: ContainerStateChange[]; + enableECSManagedTags?: boolean; /** - *

      Any attachments associated with the state change request.

      + *

      Whether or not the execute command functionality is turned on for the task. If + * true, this turns on the execute command functionality on all containers + * in the task.

      * @public */ - attachments?: AttachmentStateChange[]; + enableExecuteCommand?: boolean; /** - *

      The details for the managed agent that's associated with the task.

      + *

      The name of the task group to associate with the task. The default value is the family + * name of the task definition (for example, family:my-family-name).

      * @public */ - managedAgents?: ManagedAgentStateChange[]; + group?: string; /** - *

      The Unix timestamp for the time when the container image pull started.

      + *

      The VPC subnet and security group configuration for tasks that receive their own + * elastic network interface by using the awsvpc networking mode.

      * @public */ - pullStartedAt?: Date; + networkConfiguration?: NetworkConfiguration; /** - *

      The Unix timestamp for the time when the container image pull completed.

      + *

      A list of container overrides in JSON format that specify the name of a container in + * the specified task definition and the overrides it receives. You can override the + * default command for a container (that's specified in the task definition or Docker + * image) with a command override. You can also override existing environment + * variables (that are specified in the task definition or Docker image) on a container or + * add new environment variables to it with an environment override.

      + * + *

      A total of 8192 characters are allowed for overrides. This limit includes the JSON + * formatting characters of the override structure.

      + *
      * @public */ - pullStoppedAt?: Date; + overrides?: TaskOverride; /** - *

      The Unix timestamp for the time when the task execution stopped.

      + *

      Specifies 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.

      * @public */ - executionStoppedAt?: Date; -} + propagateTags?: PropagateTags; -/** - * @public - */ -export interface SubmitTaskStateChangeResponse { /** - *

      Acknowledgement of the state change.

      + *

      This parameter is only used by Amazon ECS. It is not intended for use by customers.

      * @public */ - acknowledgment?: string; -} + referenceId?: string; -/** - * @public - */ -export interface TagResourceRequest { /** - *

      The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resources are - * Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container - * instances.

      + *

      An optional tag specified when a task is started. For example, if you automatically trigger + * a task to run a batch process job, you could apply a unique identifier for that job to + * your task with the startedBy parameter. You can then identify which tasks + * belong to that job by filtering the results of a ListTasks call with + * the startedBy value. Up to 36 letters (uppercase and lowercase), numbers, + * hyphens (-), forward slash (/), and underscores (_) are allowed.

      + *

      If a task is started by an Amazon ECS service, the startedBy parameter + * contains the deployment ID of the service that starts it.

      * @public */ - resourceArn: string | undefined; + startedBy?: string; /** - *

      The tags to add to the resource. A tag is an array of key-value pairs.

      + *

      The metadata that you apply to the task to help you categorize and organize them. Each + * tag consists of a key and an optional value, both of which you define.

      *

      The following basic restrictions apply to tags:

      *
        *
      • @@ -12370,681 +12680,489 @@ export interface TagResourceRequest { *
      * @public */ - tags: Tag[] | undefined; -} - -/** - * @public - */ -export interface TagResourceResponse {} + tags?: Tag[]; -/** - * @public - */ -export interface UntagResourceRequest { /** - *

      The Amazon Resource Name (ARN) of the resource to delete tags from. Currently, the supported resources - * are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container - * instances.

      + *

      The family and revision (family:revision) or + * full ARN of the task definition to start. If a revision isn't specified, + * the latest ACTIVE revision is used.

      * @public */ - resourceArn: string | undefined; + taskDefinition: string | undefined; /** - *

      The keys of the tags to be removed.

      + *

      The details of the volume that was configuredAtLaunch. You can configure + * the size, volumeType, IOPS, throughput, snapshot and encryption in TaskManagedEBSVolumeConfiguration. The name of the volume must + * match the name from the task definition.

      * @public */ - tagKeys: string[] | undefined; + volumeConfigurations?: TaskVolumeConfiguration[]; } /** * @public */ -export interface UntagResourceResponse {} - -/** - *

      The details of the Auto Scaling group capacity provider to update.

      - * @public - */ -export interface AutoScalingGroupProviderUpdate { - /** - *

      The managed scaling settings for the Auto Scaling group capacity provider.

      - * @public - */ - managedScaling?: ManagedScaling; - +export interface StartTaskResponse { /** - *

      The managed termination protection setting to use for the Auto Scaling group capacity - * provider. This determines whether the Auto Scaling group has managed termination - * protection.

      - * - *

      When using managed termination protection, managed scaling must also be used - * otherwise managed termination protection doesn't work.

      - *
      - *

      When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an - * Auto Scaling group that contain tasks from being terminated during a scale-in action. - * The Auto Scaling group and each instance in the Auto Scaling group must have instance - * protection from scale-in actions on. For more information, see Instance Protection in the Auto Scaling User Guide.

      - *

      When managed termination protection is off, your Amazon EC2 instances aren't protected from - * termination when the Auto Scaling group scales in.

      + *

      A full description of the tasks that were started. Each task that was successfully + * placed on your container instances is described.

      * @public */ - managedTerminationProtection?: ManagedTerminationProtection; + tasks?: Task[]; /** - *

      The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.

      + *

      Any failures associated with the call.

      * @public */ - managedDraining?: ManagedDraining; + failures?: Failure[]; } /** * @public */ -export interface UpdateCapacityProviderRequest { +export interface StopTaskRequest { /** - *

      The name of the capacity provider to update.

      + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task to stop. + * If you do not specify a cluster, the default cluster is assumed.

      * @public */ - name: string | undefined; + cluster?: string; /** - *

      An object that represent the parameters to update for the Auto Scaling group capacity - * provider.

      + *

      The task ID of the task to stop.

      * @public */ - autoScalingGroupProvider: AutoScalingGroupProviderUpdate | undefined; + task: string | undefined; + + /** + *

      An optional message specified when a task is stopped. For example, if you're using a + * custom scheduler, you can use this parameter to specify the reason for stopping the task + * here, and the message appears in subsequent DescribeTasks> API + * operations on this task.

      + * @public + */ + reason?: string; } /** * @public */ -export interface UpdateCapacityProviderResponse { +export interface StopTaskResponse { /** - *

      Details about the capacity provider.

      + *

      The task that was stopped.

      * @public */ - capacityProvider?: CapacityProvider; + task?: Task; } /** + *

      An object representing a change in state for a task attachment.

      * @public */ -export interface UpdateClusterRequest { +export interface AttachmentStateChange { /** - *

      The name of the cluster to modify the settings for.

      + *

      The Amazon Resource Name (ARN) of the attachment.

      * @public */ - cluster: string | undefined; + attachmentArn: string | undefined; /** - *

      The cluster settings for your cluster.

      + *

      The status of the attachment.

      * @public */ - settings?: ClusterSetting[]; + status: string | undefined; +} +/** + * @public + */ +export interface SubmitAttachmentStateChangesRequest { /** - *

      The execute command configuration for the cluster.

      + *

      The short name or full ARN of the cluster that hosts the container instance the + * attachment belongs to.

      * @public */ - configuration?: ClusterConfiguration; + cluster?: string; /** - *

      Use this parameter to set a default Service Connect namespace. After you set a default - * Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as - * client services in the namespace. This setting only applies to new services that set the enabled parameter to - * true in the ServiceConnectConfiguration. - * You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default - * parameter.

      - *

      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 Service Connect in the Amazon Elastic Container Service Developer Guide.

      + *

      Any attachments associated with the state change request.

      * @public */ - serviceConnectDefaults?: ClusterServiceConnectDefaultsRequest; + attachments: AttachmentStateChange[] | undefined; } /** * @public */ -export interface UpdateClusterResponse { +export interface SubmitAttachmentStateChangesResponse { /** - *

      Details about the cluster.

      + *

      Acknowledgement of the state change.

      * @public */ - cluster?: Cluster; + acknowledgment?: string; } /** * @public */ -export interface UpdateClusterSettingsRequest { +export interface SubmitContainerStateChangeRequest { /** - *

      The name of the cluster to modify the settings for.

      + *

      The short name or full ARN of the cluster that hosts the container.

      * @public */ - cluster: string | undefined; + cluster?: string; /** - *

      The setting to use by default for a cluster. This parameter is used to turn on CloudWatch - * Container Insights for a cluster. If this value is specified, it overrides the - * containerInsights value set with PutAccountSetting or - * PutAccountSettingDefault.

      - * - *

      Currently, if you delete an existing cluster that does not have Container Insights - * turned on, and then create a new cluster with the same name with Container Insights - * tuned on, Container Insights will not actually be turned on. If you want to preserve - * the same name for your existing cluster and turn on Container Insights, you must - * wait 7 days before you can re-create it.

      - *
      + *

      The task ID or full Amazon Resource Name (ARN) of the task that hosts the container.

      * @public */ - settings: ClusterSetting[] | undefined; -} + task?: string; -/** - * @public - */ -export interface UpdateClusterSettingsResponse { /** - *

      Details about the cluster

      + *

      The name of the container.

      * @public */ - cluster?: Cluster; -} + containerName?: string; -/** - *

      Amazon ECS can't determine the current version of the Amazon ECS container agent on the - * container instance and doesn't have enough information to proceed with an update. This - * could be because the agent running on the container instance is a previous or custom - * version that doesn't use our version information.

      - * @public - */ -export class MissingVersionException extends __BaseException { - readonly name: "MissingVersionException" = "MissingVersionException"; - readonly $fault: "client" = "client"; /** - * @internal + *

      The ID of the Docker container.

      + * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "MissingVersionException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, MissingVersionException.prototype); - } -} + runtimeId?: string; -/** - *

      There's no update available for this Amazon ECS container agent. This might be because the - * agent is already running the latest version or because it's so old that there's no - * update path to the current version.

      - * @public - */ -export class NoUpdateAvailableException extends __BaseException { - readonly name: "NoUpdateAvailableException" = "NoUpdateAvailableException"; - readonly $fault: "client" = "client"; /** - * @internal + *

      The status of the state change request.

      + * @public */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "NoUpdateAvailableException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, NoUpdateAvailableException.prototype); - } -} + status?: string; -/** - * @public - */ -export interface UpdateContainerAgentRequest { /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is - * running on. If you do not specify a cluster, the default cluster is assumed.

      + *

      The exit code that's returned for the state change request.

      * @public */ - cluster?: string; + exitCode?: number; /** - *

      The container instance ID or full ARN entries for the container instance where you - * would like to update the Amazon ECS container agent.

      + *

      The reason for the state change request.

      * @public */ - containerInstance: string | undefined; -} + reason?: string; -/** - * @public - */ -export interface UpdateContainerAgentResponse { /** - *

      The container instance that the container agent was updated for.

      + *

      The network bindings of the container.

      * @public */ - containerInstance?: ContainerInstance; + networkBindings?: NetworkBinding[]; } /** * @public */ -export interface UpdateContainerInstancesStateRequest { - /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to - * update. If you do not specify a cluster, the default cluster is assumed.

      - * @public - */ - cluster?: string; - - /** - *

      A list of up to 10 container instance IDs or full ARN entries.

      - * @public - */ - containerInstances: string[] | undefined; - +export interface SubmitContainerStateChangeResponse { /** - *

      The container instance state to update the container instance with. The only valid - * values for this action are ACTIVE and DRAINING. A container - * instance can only be updated to DRAINING status once it has reached an - * ACTIVE state. If a container instance is in REGISTERING, - * DEREGISTERING, or REGISTRATION_FAILED state you can - * describe the container instance but can't update the container instance state.

      + *

      Acknowledgement of the state change.

      * @public */ - status: ContainerInstanceStatus | undefined; + acknowledgment?: string; } /** + *

      An object that represents a change in state for a container.

      * @public */ -export interface UpdateContainerInstancesStateResponse { +export interface ContainerStateChange { /** - *

      The list of container instances.

      + *

      The name of the container.

      * @public */ - containerInstances?: ContainerInstance[]; + containerName?: string; /** - *

      Any failures associated with the call.

      + *

      The container image SHA 256 digest.

      * @public */ - failures?: Failure[]; -} + imageDigest?: string; -/** - * @public - */ -export interface UpdateServiceRequest { /** - *

      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.

      + *

      The ID of the Docker container.

      * @public */ - cluster?: string; + runtimeId?: string; /** - *

      The name of the service to update.

      + *

      The exit code for the container, if the state change is a result of the container + * exiting.

      * @public */ - service: string | undefined; + exitCode?: number; /** - *

      The number of instantiations of the task to place and keep running in your - * service.

      + *

      Any network bindings that are associated with the container.

      * @public */ - desiredCount?: number; + networkBindings?: NetworkBinding[]; /** - *

      The family and revision (family:revision) or - * full ARN of the task definition to run in your service. If a revision is - * not specified, the latest ACTIVE revision is used. If you modify the task - * definition with UpdateService, 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.

      + *

      The reason for the state change.

      * @public */ - taskDefinition?: string; + reason?: string; /** - *

      The capacity provider strategy to update the service to use.

      - *

      if the service uses the default capacity provider strategy for the cluster, the - * service can be updated to use one or more capacity providers as opposed to the default - * capacity provider strategy. However, when a service is using a capacity provider - * strategy that's not the default capacity provider strategy, the service can't be updated - * to use the cluster's default capacity provider strategy.

      - *

      A capacity provider strategy consists of one or more capacity providers along with the - * base and weight to assign to them. A capacity provider - * must be associated with the cluster to be used in a capacity provider strategy. The - * PutClusterCapacityProviders API is used to associate a capacity - * provider with a cluster. Only capacity providers with an ACTIVE or - * UPDATING status can be used.

      - *

      If specifying a capacity provider that uses an Auto Scaling group, the capacity - * provider must already be created. New capacity providers can be created with the CreateClusterCapacityProvider API operation.

      - *

      To use a Fargate capacity provider, specify either the FARGATE or - * FARGATE_SPOT capacity providers. The Fargate capacity providers are - * available to all accounts and only need to be associated with a cluster to be - * used.

      - *

      The PutClusterCapacityProvidersAPI operation is used to update the - * list of available capacity providers for a cluster after the cluster is created.

      - *

      + *

      The status of the container.

      * @public */ - capacityProviderStrategy?: CapacityProviderStrategyItem[]; + status?: string; +} +/** + *

      An object representing a change in state for a managed agent.

      + * @public + */ +export interface ManagedAgentStateChange { /** - *

      Optional deployment parameters that control how many tasks run during the deployment - * and the ordering of stopping and starting tasks.

      + *

      The name of the container that's associated with the managed agent.

      * @public */ - deploymentConfiguration?: DeploymentConfiguration; + containerName: string | undefined; /** - *

      An object representing the network configuration for the service.

      + *

      The name of the managed agent.

      * @public */ - networkConfiguration?: NetworkConfiguration; + managedAgentName: ManagedAgentName | undefined; /** - *

      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.

      - *

      You can specify a maximum of 10 constraints for each task. This limit includes - * constraints in the task definition and those specified at runtime.

      + *

      The status of the managed agent.

      * @public */ - placementConstraints?: PlacementConstraint[]; + status: string | undefined; /** - *

      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.

      - *

      You can specify a maximum of five strategy rules for each service.

      + *

      The reason for the status of the managed agent.

      * @public */ - placementStrategy?: PlacementStrategy[]; + reason?: string; +} +/** + * @public + */ +export interface SubmitTaskStateChangeRequest { /** - *

      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 LATEST platform version is used. For more - * information, see Fargate Platform - * Versions in the Amazon Elastic Container Service Developer Guide.

      + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the task.

      * @public */ - platformVersion?: string; + cluster?: string; /** - *

      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 (my_image:latest) or to roll - * Fargate tasks onto a newer platform version.

      + *

      The task ID or full ARN of the task in the state change request.

      * @public */ - forceNewDeployment?: boolean; + task?: string; /** - *

      The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy - * Elastic Load Balancing target health checks after a task has first started. This is only valid if your - * service is configured to use a load balancer. If your service's tasks take a while to - * start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of - * up to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler ignores - * the Elastic Load Balancing health check status. This grace period can prevent the ECS service scheduler - * from marking tasks as unhealthy and stopping them before they have time to come - * up.

      + *

      The status of the state change request.

      * @public */ - healthCheckGracePeriodSeconds?: number; + status?: string; /** - *

      If true, this enables execute command functionality on all task - * containers.

      - *

      If you do not want to override the value that was set when the service was created, - * you can set this to null when performing this action.

      + *

      The reason for the state change request.

      * @public */ - enableExecuteCommand?: boolean; + reason?: string; /** - *

      Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For - * more information, see Tagging Your Amazon ECS - * Resources in the Amazon Elastic Container Service Developer Guide.

      - *

      Only tasks launched after the update will reflect the update. To update the tags on - * all tasks, set forceNewDeployment to true, so that Amazon ECS - * starts new tasks with the updated tags.

      + *

      Any containers that's associated with the state change request.

      * @public */ - enableECSManagedTags?: boolean; + containers?: ContainerStateChange[]; /** - *

      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.

      - *

      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.

      - *

      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.

      - *

      For services that use blue/green deployments, you can update Elastic Load Balancing target groups by - * using - * CreateDeployment - * through CodeDeploy. Note that multiple target groups - * are not supported for blue/green deployments. For more information see Register - * multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

      - *

      For services that use the external deployment controller, you can add, update, or - * remove load balancers by using CreateTaskSet. - * Note that multiple target groups are not supported for external deployments. For more - * information see Register - * multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

      - *

      You can remove existing loadBalancers by passing an empty list.

      + *

      Any attachments associated with the state change request.

      * @public */ - loadBalancers?: LoadBalancer[]; + attachments?: AttachmentStateChange[]; /** - *

      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.

      - *

      Only tasks launched after the update will reflect the update. To update the tags on - * all tasks, set forceNewDeployment to true, so that Amazon ECS - * starts new tasks with the updated tags.

      + *

      The details for the managed agent that's associated with the task.

      * @public */ - propagateTags?: PropagateTags; + managedAgents?: ManagedAgentStateChange[]; /** - *

      The details for the service discovery registries to assign to this service. For more - * information, see Service - * Discovery.

      - *

      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.

      - *

      You can remove existing serviceRegistries by passing an empty - * list.

      + *

      The Unix timestamp for the time when the container image pull started.

      * @public */ - serviceRegistries?: ServiceRegistry[]; + pullStartedAt?: Date; /** - *

      The configuration for this service to discover and connect to - * services, and be discovered by, and connected from, other services within a namespace.

      - *

      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 Service Connect in the Amazon Elastic Container Service Developer Guide.

      + *

      The Unix timestamp for the time when the container image pull completed.

      * @public */ - serviceConnectConfiguration?: ServiceConnectConfiguration; + pullStoppedAt?: Date; /** - *

      The details of the volume that was configuredAtLaunch. You can configure - * the size, volumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration. The name of the volume - * must match the name 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.

      + *

      The Unix timestamp for the time when the task execution stopped.

      * @public */ - volumeConfigurations?: ServiceVolumeConfiguration[]; + executionStoppedAt?: Date; } /** * @public */ -export interface UpdateServiceResponse { +export interface SubmitTaskStateChangeResponse { /** - *

      The full description of your service following the update call.

      + *

      Acknowledgement of the state change.

      * @public */ - service?: Service; + acknowledgment?: string; } /** * @public */ -export interface UpdateServicePrimaryTaskSetRequest { - /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task - * set exists in.

      - * @public - */ - cluster: string | undefined; - +export interface TagResourceRequest { /** - *

      The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.

      + *

      The Amazon Resource Name (ARN) of the resource to add tags to. Currently, the supported resources are + * Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container + * instances.

      * @public */ - service: string | undefined; + resourceArn: string | undefined; /** - *

      The short name or full Amazon Resource Name (ARN) of the task set to set as the primary task set in the - * deployment.

      + *

      The tags to add to the resource. A tag is an array of key-value pairs.

      + *

      The following basic restrictions apply to tags:

      + *
        + *
      • + *

        Maximum number of tags per resource - 50

        + *
      • + *
      • + *

        For each resource, each tag key must be unique, and each tag key can have only + * one value.

        + *
      • + *
      • + *

        Maximum key length - 128 Unicode characters in UTF-8

        + *
      • + *
      • + *

        Maximum value length - 256 Unicode characters in UTF-8

        + *
      • + *
      • + *

        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: + - = . _ : / @.

        + *
      • + *
      • + *

        Tag keys and values are case-sensitive.

        + *
      • + *
      • + *

        Do not use aws:, AWS:, 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.

        + *
      • + *
      * @public */ - primaryTaskSet: string | undefined; + tags: Tag[] | undefined; } /** * @public */ -export interface UpdateServicePrimaryTaskSetResponse { - /** - *

      The details about the task set.

      - * @public - */ - taskSet?: TaskSet; -} +export interface TagResourceResponse {} /** * @public */ -export interface UpdateTaskProtectionRequest { +export interface UntagResourceRequest { /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task - * sets exist in.

      + *

      The Amazon Resource Name (ARN) of the resource to delete tags from. Currently, the supported resources + * are Amazon ECS capacity providers, tasks, services, task definitions, clusters, and container + * instances.

      * @public */ - cluster: string | undefined; + resourceArn: string | undefined; /** - *

      A list of up to 10 task IDs or full ARN entries.

      + *

      The keys of the tags to be removed.

      * @public */ - tasks: string[] | undefined; + tagKeys: string[] | undefined; +} - /** - *

      Specify true to mark a task for protection and false to - * unset protection, making it eligible for termination.

      - * @public - */ - protectionEnabled: boolean | undefined; +/** + * @public + */ +export interface UntagResourceResponse {} +/** + *

      The details of the Auto Scaling group capacity provider to update.

      + * @public + */ +export interface AutoScalingGroupProviderUpdate { /** - *

      If you set protectionEnabled to true, you can specify the - * duration for task protection in minutes. You can specify a value from 1 minute to up to - * 2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in - * events from Service Auto Scaling or deployments. After this time period lapses, - * protectionEnabled will be reset to false.

      - *

      If you don’t specify the time, then the task is automatically protected for 120 - * minutes (2 hours).

      + *

      The managed scaling settings for the Auto Scaling group capacity provider.

      * @public */ - expiresInMinutes?: number; -} + managedScaling?: ManagedScaling; -/** - * @public - */ -export interface UpdateTaskProtectionResponse { /** - *

      A list of tasks with the following information.

      - *
        - *
      • - *

        - * taskArn: The task ARN.

        - *
      • - *
      • - *

        - * protectionEnabled: The protection status of the task. If scale-in - * protection is turned on for a task, the value is true. Otherwise, - * it is false.

        - *
      • - *
      • - *

        - * expirationDate: The epoch time when protection for the task will - * expire.

        - *
      • - *
      + *

      The managed termination protection setting to use for the Auto Scaling group capacity + * provider. This determines whether the Auto Scaling group has managed termination + * protection.

      + * + *

      When using managed termination protection, managed scaling must also be used + * otherwise managed termination protection doesn't work.

      + *
      + *

      When managed termination protection is on, Amazon ECS prevents the Amazon EC2 instances in an + * Auto Scaling group that contain tasks from being terminated during a scale-in action. + * The Auto Scaling group and each instance in the Auto Scaling group must have instance + * protection from scale-in actions on. For more information, see Instance Protection in the Auto Scaling User Guide.

      + *

      When managed termination protection is off, your Amazon EC2 instances aren't protected from + * termination when the Auto Scaling group scales in.

      * @public */ - protectedTasks?: ProtectedTask[]; + managedTerminationProtection?: ManagedTerminationProtection; /** - *

      Any failures associated with the call.

      + *

      The managed draining option for the Auto Scaling group capacity provider. When you enable this, Amazon ECS manages and gracefully drains the EC2 container instances that are in the Auto Scaling group capacity provider.

      * @public */ - failures?: Failure[]; + managedDraining?: ManagedDraining; } /** * @public */ -export interface UpdateTaskSetRequest { - /** - *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task - * set is found in.

      - * @public - */ - cluster: string | undefined; - +export interface UpdateCapacityProviderRequest { /** - *

      The short name or full Amazon Resource Name (ARN) of the service that the task set is found in.

      + *

      The name of the capacity provider to update.

      * @public */ - service: string | undefined; + name: string | undefined; /** - *

      The short name or full Amazon Resource Name (ARN) of the task set to update.

      + *

      An object that represent the parameters to update for the Auto Scaling group capacity + * provider.

      * @public */ - taskSet: string | undefined; + autoScalingGroupProvider: AutoScalingGroupProviderUpdate | undefined; +} +/** + * @public + */ +export interface UpdateCapacityProviderResponse { /** - *

      A floating-point percentage of the desired number of tasks to place and keep running - * in the task set.

      + *

      Details about the capacity provider.

      * @public */ - scale: Scale | undefined; + capacityProvider?: CapacityProvider; } /** diff --git a/clients/client-ecs/src/models/models_1.ts b/clients/client-ecs/src/models/models_1.ts index fd0da70788da8..973c75bc10577 100644 --- a/clients/client-ecs/src/models/models_1.ts +++ b/clients/client-ecs/src/models/models_1.ts @@ -1,5 +1,611 @@ // smithy-typescript generated code -import { TaskSet } from "./models_0"; +import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-client"; + +import { ECSServiceException as __BaseException } from "./ECSServiceException"; + +import { + CapacityProviderStrategyItem, + Cluster, + ClusterConfiguration, + ClusterServiceConnectDefaultsRequest, + ClusterSetting, + ContainerInstance, + ContainerInstanceStatus, + DeploymentConfiguration, + Failure, + LoadBalancer, + NetworkConfiguration, + PlacementConstraint, + PlacementStrategy, + PropagateTags, + ProtectedTask, + Scale, + Service, + ServiceConnectConfiguration, + ServiceRegistry, + ServiceVolumeConfiguration, + TaskSet, +} from "./models_0"; + +/** + * @public + */ +export interface UpdateClusterRequest { + /** + *

      The name of the cluster to modify the settings for.

      + * @public + */ + cluster: string | undefined; + + /** + *

      The cluster settings for your cluster.

      + * @public + */ + settings?: ClusterSetting[]; + + /** + *

      The execute command configuration for the cluster.

      + * @public + */ + configuration?: ClusterConfiguration; + + /** + *

      Use this parameter to set a default Service Connect namespace. After you set a default + * Service Connect namespace, any new services with Service Connect turned on that are created in the cluster are added as + * client services in the namespace. This setting only applies to new services that set the enabled parameter to + * true in the ServiceConnectConfiguration. + * You can set the namespace of each service individually in the ServiceConnectConfiguration to override this default + * parameter.

      + *

      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 Service Connect in the Amazon Elastic Container Service Developer Guide.

      + * @public + */ + serviceConnectDefaults?: ClusterServiceConnectDefaultsRequest; +} + +/** + * @public + */ +export interface UpdateClusterResponse { + /** + *

      Details about the cluster.

      + * @public + */ + cluster?: Cluster; +} + +/** + * @public + */ +export interface UpdateClusterSettingsRequest { + /** + *

      The name of the cluster to modify the settings for.

      + * @public + */ + cluster: string | undefined; + + /** + *

      The setting to use by default for a cluster. This parameter is used to turn on CloudWatch + * Container Insights for a cluster. If this value is specified, it overrides the + * containerInsights value set with PutAccountSetting or + * PutAccountSettingDefault.

      + * + *

      Currently, if you delete an existing cluster that does not have Container Insights + * turned on, and then create a new cluster with the same name with Container Insights + * tuned on, Container Insights will not actually be turned on. If you want to preserve + * the same name for your existing cluster and turn on Container Insights, you must + * wait 7 days before you can re-create it.

      + *
      + * @public + */ + settings: ClusterSetting[] | undefined; +} + +/** + * @public + */ +export interface UpdateClusterSettingsResponse { + /** + *

      Details about the cluster

      + * @public + */ + cluster?: Cluster; +} + +/** + *

      Amazon ECS can't determine the current version of the Amazon ECS container agent on the + * container instance and doesn't have enough information to proceed with an update. This + * could be because the agent running on the container instance is a previous or custom + * version that doesn't use our version information.

      + * @public + */ +export class MissingVersionException extends __BaseException { + readonly name: "MissingVersionException" = "MissingVersionException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "MissingVersionException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, MissingVersionException.prototype); + } +} + +/** + *

      There's no update available for this Amazon ECS container agent. This might be because the + * agent is already running the latest version or because it's so old that there's no + * update path to the current version.

      + * @public + */ +export class NoUpdateAvailableException extends __BaseException { + readonly name: "NoUpdateAvailableException" = "NoUpdateAvailableException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "NoUpdateAvailableException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, NoUpdateAvailableException.prototype); + } +} + +/** + * @public + */ +export interface UpdateContainerAgentRequest { + /** + *

      The short name or full Amazon Resource Name (ARN) of the cluster that your container instance is + * running on. If you do not specify a cluster, the default cluster is assumed.

      + * @public + */ + cluster?: string; + + /** + *

      The container instance ID or full ARN entries for the container instance where you + * would like to update the Amazon ECS container agent.

      + * @public + */ + containerInstance: string | undefined; +} + +/** + * @public + */ +export interface UpdateContainerAgentResponse { + /** + *

      The container instance that the container agent was updated for.

      + * @public + */ + containerInstance?: ContainerInstance; +} + +/** + * @public + */ +export interface UpdateContainerInstancesStateRequest { + /** + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the container instance to + * update. If you do not specify a cluster, the default cluster is assumed.

      + * @public + */ + cluster?: string; + + /** + *

      A list of up to 10 container instance IDs or full ARN entries.

      + * @public + */ + containerInstances: string[] | undefined; + + /** + *

      The container instance state to update the container instance with. The only valid + * values for this action are ACTIVE and DRAINING. A container + * instance can only be updated to DRAINING status once it has reached an + * ACTIVE state. If a container instance is in REGISTERING, + * DEREGISTERING, or REGISTRATION_FAILED state you can + * describe the container instance but can't update the container instance state.

      + * @public + */ + status: ContainerInstanceStatus | undefined; +} + +/** + * @public + */ +export interface UpdateContainerInstancesStateResponse { + /** + *

      The list of container instances.

      + * @public + */ + containerInstances?: ContainerInstance[]; + + /** + *

      Any failures associated with the call.

      + * @public + */ + failures?: Failure[]; +} + +/** + * @public + */ +export interface UpdateServiceRequest { + /** + *

      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.

      + * @public + */ + cluster?: string; + + /** + *

      The name of the service to update.

      + * @public + */ + service: string | undefined; + + /** + *

      The number of instantiations of the task to place and keep running in your + * service.

      + * @public + */ + desiredCount?: number; + + /** + *

      The family and revision (family:revision) or + * full ARN of the task definition to run in your service. If a revision is + * not specified, the latest ACTIVE revision is used. If you modify the task + * definition with UpdateService, 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.

      + * @public + */ + taskDefinition?: string; + + /** + *

      The capacity provider strategy to update the service to use.

      + *

      if the service uses the default capacity provider strategy for the cluster, the + * service can be updated to use one or more capacity providers as opposed to the default + * capacity provider strategy. However, when a service is using a capacity provider + * strategy that's not the default capacity provider strategy, the service can't be updated + * to use the cluster's default capacity provider strategy.

      + *

      A capacity provider strategy consists of one or more capacity providers along with the + * base and weight to assign to them. A capacity provider + * must be associated with the cluster to be used in a capacity provider strategy. The + * PutClusterCapacityProviders API is used to associate a capacity + * provider with a cluster. Only capacity providers with an ACTIVE or + * UPDATING status can be used.

      + *

      If specifying a capacity provider that uses an Auto Scaling group, the capacity + * provider must already be created. New capacity providers can be created with the CreateClusterCapacityProvider API operation.

      + *

      To use a Fargate capacity provider, specify either the FARGATE or + * FARGATE_SPOT capacity providers. The Fargate capacity providers are + * available to all accounts and only need to be associated with a cluster to be + * used.

      + *

      The PutClusterCapacityProvidersAPI operation is used to update the + * list of available capacity providers for a cluster after the cluster is created.

      + *

      + * @public + */ + capacityProviderStrategy?: CapacityProviderStrategyItem[]; + + /** + *

      Optional deployment parameters that control how many tasks run during the deployment and the + * failure detection methods.

      + * @public + */ + deploymentConfiguration?: DeploymentConfiguration; + + /** + *

      An object representing the network configuration for the service.

      + * @public + */ + networkConfiguration?: NetworkConfiguration; + + /** + *

      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.

      + *

      You can specify a maximum of 10 constraints for each task. This limit includes + * constraints in the task definition and those specified at runtime.

      + * @public + */ + placementConstraints?: PlacementConstraint[]; + + /** + *

      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.

      + *

      You can specify a maximum of five strategy rules for each service.

      + * @public + */ + placementStrategy?: PlacementStrategy[]; + + /** + *

      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 LATEST platform version is used. For more + * information, see Fargate Platform + * Versions in the Amazon Elastic Container Service Developer Guide.

      + * @public + */ + platformVersion?: string; + + /** + *

      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 (my_image:latest) or to roll + * Fargate tasks onto a newer platform version.

      + * @public + */ + forceNewDeployment?: boolean; + + /** + *

      The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy + * Elastic Load Balancing target health checks after a task has first started. This is only valid if your + * service is configured to use a load balancer. If your service's tasks take a while to + * start and respond to Elastic Load Balancing health checks, you can specify a health check grace period of + * up to 2,147,483,647 seconds. During that time, the Amazon ECS service scheduler ignores + * the Elastic Load Balancing health check status. This grace period can prevent the ECS service scheduler + * from marking tasks as unhealthy and stopping them before they have time to come + * up.

      + * @public + */ + healthCheckGracePeriodSeconds?: number; + + /** + *

      If true, this enables execute command functionality on all task + * containers.

      + *

      If you do not want to override the value that was set when the service was created, + * you can set this to null when performing this action.

      + * @public + */ + enableExecuteCommand?: boolean; + + /** + *

      Determines whether to turn on Amazon ECS managed tags for the tasks in the service. For + * more information, see Tagging Your Amazon ECS + * Resources in the Amazon Elastic Container Service Developer Guide.

      + *

      Only tasks launched after the update will reflect the update. To update the tags on + * all tasks, set forceNewDeployment to true, so that Amazon ECS + * starts new tasks with the updated tags.

      + * @public + */ + enableECSManagedTags?: boolean; + + /** + *

      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.

      + *

      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.

      + *

      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.

      + *

      For services that use blue/green deployments, you can update Elastic Load Balancing target groups by + * using + * CreateDeployment + * through CodeDeploy. Note that multiple target groups + * are not supported for blue/green deployments. For more information see Register + * multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

      + *

      For services that use the external deployment controller, you can add, update, or + * remove load balancers by using CreateTaskSet. + * Note that multiple target groups are not supported for external deployments. For more + * information see Register + * multiple target groups with a service in the Amazon Elastic Container Service Developer Guide.

      + *

      You can remove existing loadBalancers by passing an empty list.

      + * @public + */ + loadBalancers?: LoadBalancer[]; + + /** + *

      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.

      + *

      Only tasks launched after the update will reflect the update. To update the tags on + * all tasks, set forceNewDeployment to true, so that Amazon ECS + * starts new tasks with the updated tags.

      + * @public + */ + propagateTags?: PropagateTags; + + /** + *

      The details for the service discovery registries to assign to this service. For more + * information, see Service + * Discovery.

      + *

      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.

      + *

      You can remove existing serviceRegistries by passing an empty + * list.

      + * @public + */ + serviceRegistries?: ServiceRegistry[]; + + /** + *

      The configuration for this service to discover and connect to + * services, and be discovered by, and connected from, other services within a namespace.

      + *

      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 Service Connect in the Amazon Elastic Container Service Developer Guide.

      + * @public + */ + serviceConnectConfiguration?: ServiceConnectConfiguration; + + /** + *

      The details of the volume that was configuredAtLaunch. You can configure + * the size, volumeType, IOPS, throughput, snapshot and encryption in ServiceManagedEBSVolumeConfiguration. The name of the volume + * must match the name 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.

      + * @public + */ + volumeConfigurations?: ServiceVolumeConfiguration[]; +} + +/** + * @public + */ +export interface UpdateServiceResponse { + /** + *

      The full description of your service following the update call.

      + * @public + */ + service?: Service; +} + +/** + * @public + */ +export interface UpdateServicePrimaryTaskSetRequest { + /** + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task + * set exists in.

      + * @public + */ + cluster: string | undefined; + + /** + *

      The short name or full Amazon Resource Name (ARN) of the service that the task set exists in.

      + * @public + */ + service: string | undefined; + + /** + *

      The short name or full Amazon Resource Name (ARN) of the task set to set as the primary task set in the + * deployment.

      + * @public + */ + primaryTaskSet: string | undefined; +} + +/** + * @public + */ +export interface UpdateServicePrimaryTaskSetResponse { + /** + *

      The details about the task set.

      + * @public + */ + taskSet?: TaskSet; +} + +/** + * @public + */ +export interface UpdateTaskProtectionRequest { + /** + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task + * sets exist in.

      + * @public + */ + cluster: string | undefined; + + /** + *

      A list of up to 10 task IDs or full ARN entries.

      + * @public + */ + tasks: string[] | undefined; + + /** + *

      Specify true to mark a task for protection and false to + * unset protection, making it eligible for termination.

      + * @public + */ + protectionEnabled: boolean | undefined; + + /** + *

      If you set protectionEnabled to true, you can specify the + * duration for task protection in minutes. You can specify a value from 1 minute to up to + * 2,880 minutes (48 hours). During this time, your task will not be terminated by scale-in + * events from Service Auto Scaling or deployments. After this time period lapses, + * protectionEnabled will be reset to false.

      + *

      If you don’t specify the time, then the task is automatically protected for 120 + * minutes (2 hours).

      + * @public + */ + expiresInMinutes?: number; +} + +/** + * @public + */ +export interface UpdateTaskProtectionResponse { + /** + *

      A list of tasks with the following information.

      + *
        + *
      • + *

        + * taskArn: The task ARN.

        + *
      • + *
      • + *

        + * protectionEnabled: The protection status of the task. If scale-in + * protection is turned on for a task, the value is true. Otherwise, + * it is false.

        + *
      • + *
      • + *

        + * expirationDate: The epoch time when protection for the task will + * expire.

        + *
      • + *
      + * @public + */ + protectedTasks?: ProtectedTask[]; + + /** + *

      Any failures associated with the call.

      + * @public + */ + failures?: Failure[]; +} + +/** + * @public + */ +export interface UpdateTaskSetRequest { + /** + *

      The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service that the task + * set is found in.

      + * @public + */ + cluster: string | undefined; + + /** + *

      The short name or full Amazon Resource Name (ARN) of the service that the task set is found in.

      + * @public + */ + service: string | undefined; + + /** + *

      The short name or full Amazon Resource Name (ARN) of the task set to update.

      + * @public + */ + taskSet: string | undefined; + + /** + *

      A floating-point percentage of the desired number of tasks to place and keep running + * in the task set.

      + * @public + */ + scale: Scale | undefined; +} /** * @public diff --git a/clients/client-ecs/src/protocols/Aws_json1_1.ts b/clients/client-ecs/src/protocols/Aws_json1_1.ts index f4104f54aff4d..fcedf68858db0 100644 --- a/clients/client-ecs/src/protocols/Aws_json1_1.ts +++ b/clients/client-ecs/src/protocols/Aws_json1_1.ts @@ -65,6 +65,14 @@ import { DescribeContainerInstancesCommandInput, DescribeContainerInstancesCommandOutput, } from "../commands/DescribeContainerInstancesCommand"; +import { + DescribeServiceDeploymentsCommandInput, + DescribeServiceDeploymentsCommandOutput, +} from "../commands/DescribeServiceDeploymentsCommand"; +import { + DescribeServiceRevisionsCommandInput, + DescribeServiceRevisionsCommandOutput, +} from "../commands/DescribeServiceRevisionsCommand"; import { DescribeServicesCommandInput, DescribeServicesCommandOutput } from "../commands/DescribeServicesCommand"; import { DescribeTaskDefinitionCommandInput, @@ -88,6 +96,10 @@ import { ListContainerInstancesCommandInput, ListContainerInstancesCommandOutput, } from "../commands/ListContainerInstancesCommand"; +import { + ListServiceDeploymentsCommandInput, + ListServiceDeploymentsCommandOutput, +} from "../commands/ListServiceDeploymentsCommand"; import { ListServicesByNamespaceCommandInput, ListServicesByNamespaceCommandOutput, @@ -202,6 +214,7 @@ import { ContainerStateChange, CreateCapacityProviderRequest, CreateClusterRequest, + CreatedAt, CreateServiceRequest, CreateServiceResponse, CreateTaskSetRequest, @@ -229,6 +242,10 @@ import { DescribeClustersRequest, DescribeContainerInstancesRequest, DescribeContainerInstancesResponse, + DescribeServiceDeploymentsRequest, + DescribeServiceDeploymentsResponse, + DescribeServiceRevisionsRequest, + DescribeServiceRevisionsResponse, DescribeServicesRequest, DescribeServicesResponse, DescribeTaskDefinitionRequest, @@ -269,6 +286,8 @@ import { ListAttributesRequest, ListClustersRequest, ListContainerInstancesRequest, + ListServiceDeploymentsRequest, + ListServiceDeploymentsResponse, ListServicesByNamespaceRequest, ListServicesRequest, ListTagsForResourceRequest, @@ -281,12 +300,10 @@ import { ManagedAgentStateChange, ManagedScaling, ManagedStorageConfiguration, - MissingVersionException, MountPoint, NamespaceNotFoundException, NetworkBinding, NetworkConfiguration, - NoUpdateAvailableException, PlacementConstraint, PlacementStrategy, PlatformDevice, @@ -308,6 +325,7 @@ import { ResourceInUseException, ResourceNotFoundException, ResourceRequirement, + Rollback, RunTaskRequest, RunTaskResponse, RuntimePlatform, @@ -320,12 +338,16 @@ import { ServiceConnectService, ServiceConnectTlsCertificateAuthority, ServiceConnectTlsConfiguration, + ServiceDeployment, + ServiceDeploymentBrief, + ServiceDeploymentStatus, ServiceEvent, ServiceField, ServiceManagedEBSVolumeConfiguration, ServiceNotActiveException, ServiceNotFoundException, ServiceRegistry, + ServiceRevision, ServiceVolumeConfiguration, StartTaskRequest, StartTaskResponse, @@ -357,13 +379,20 @@ import { UnsupportedFeatureException, UntagResourceRequest, UpdateCapacityProviderRequest, + UpdateInProgressException, + VersionInfo, + Volume, + VolumeFrom, +} from "../models/models_0"; +import { + MissingVersionException, + NoUpdateAvailableException, UpdateClusterRequest, UpdateClusterSettingsRequest, UpdateContainerAgentRequest, UpdateContainerAgentResponse, UpdateContainerInstancesStateRequest, UpdateContainerInstancesStateResponse, - UpdateInProgressException, UpdateServicePrimaryTaskSetRequest, UpdateServicePrimaryTaskSetResponse, UpdateServiceRequest, @@ -371,11 +400,8 @@ import { UpdateTaskProtectionRequest, UpdateTaskProtectionResponse, UpdateTaskSetRequest, - VersionInfo, - Volume, - VolumeFrom, -} from "../models/models_0"; -import { UpdateTaskSetResponse } from "../models/models_1"; + UpdateTaskSetResponse, +} from "../models/models_1"; /** * serializeAws_json1_1CreateCapacityProviderCommand @@ -585,6 +611,32 @@ export const se_DescribeContainerInstancesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1DescribeServiceDeploymentsCommand + */ +export const se_DescribeServiceDeploymentsCommand = async ( + input: DescribeServiceDeploymentsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DescribeServiceDeployments"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +/** + * serializeAws_json1_1DescribeServiceRevisionsCommand + */ +export const se_DescribeServiceRevisionsCommand = async ( + input: DescribeServiceRevisionsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DescribeServiceRevisions"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1DescribeServicesCommand */ @@ -728,6 +780,19 @@ export const se_ListContainerInstancesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1ListServiceDeploymentsCommand + */ +export const se_ListServiceDeploymentsCommand = async ( + input: ListServiceDeploymentsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("ListServiceDeployments"); + let body: any; + body = JSON.stringify(se_ListServiceDeploymentsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1ListServicesCommand */ @@ -1425,6 +1490,46 @@ export const de_DescribeContainerInstancesCommand = async ( return response; }; +/** + * deserializeAws_json1_1DescribeServiceDeploymentsCommand + */ +export const de_DescribeServiceDeploymentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DescribeServiceDeploymentsResponse(data, context); + const response: DescribeServiceDeploymentsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1DescribeServiceRevisionsCommand + */ +export const de_DescribeServiceRevisionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DescribeServiceRevisionsResponse(data, context); + const response: DescribeServiceRevisionsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + /** * deserializeAws_json1_1DescribeServicesCommand */ @@ -1645,6 +1750,26 @@ export const de_ListContainerInstancesCommand = async ( return response; }; +/** + * deserializeAws_json1_1ListServiceDeploymentsCommand + */ +export const de_ListServiceDeploymentsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_ListServiceDeploymentsResponse(data, context); + const response: ListServiceDeploymentsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + /** * deserializeAws_json1_1ListServicesCommand */ @@ -2783,6 +2908,16 @@ const de_UpdateInProgressExceptionRes = async ( // se_CreateClusterRequest omitted. +/** + * serializeAws_json1_1CreatedAt + */ +const se_CreatedAt = (input: CreatedAt, context: __SerdeContext): any => { + return take(input, { + after: (_) => _.getTime() / 1_000, + before: (_) => _.getTime() / 1_000, + }); +}; + // se_CreateServiceRequest omitted. /** @@ -2838,6 +2973,10 @@ const se_CreateTaskSetRequest = (input: CreateTaskSetRequest, context: __SerdeCo // se_DescribeContainerInstancesRequest omitted. +// se_DescribeServiceDeploymentsRequest omitted. + +// se_DescribeServiceRevisionsRequest omitted. + // se_DescribeServicesRequest omitted. // se_DescribeTaskDefinitionRequest omitted. @@ -2922,6 +3061,20 @@ const se_CreateTaskSetRequest = (input: CreateTaskSetRequest, context: __SerdeCo // se_ListContainerInstancesRequest omitted. +/** + * serializeAws_json1_1ListServiceDeploymentsRequest + */ +const se_ListServiceDeploymentsRequest = (input: ListServiceDeploymentsRequest, context: __SerdeContext): any => { + return take(input, { + cluster: [], + createdAt: (_) => se_CreatedAt(_, context), + maxResults: [], + nextToken: [], + service: [], + status: _json, + }); +}; + // se_ListServicesByNamespaceRequest omitted. // se_ListServicesRequest omitted. @@ -3095,6 +3248,8 @@ const se_Scale = (input: Scale, context: __SerdeContext): any => { // se_ServiceConnectTlsConfiguration omitted. +// se_ServiceDeploymentStatusList omitted. + // se_ServiceFieldList omitted. // se_ServiceManagedEBSVolumeConfiguration omitted. @@ -3306,6 +3461,10 @@ const de_Container = (output: any, context: __SerdeContext): Container => { // de_ContainerDependency omitted. +// de_ContainerImage omitted. + +// de_ContainerImages omitted. + /** * deserializeAws_json1_1ContainerInstance */ @@ -3521,6 +3680,32 @@ const de_DescribeContainerInstancesResponse = ( }) as any; }; +/** + * deserializeAws_json1_1DescribeServiceDeploymentsResponse + */ +const de_DescribeServiceDeploymentsResponse = ( + output: any, + context: __SerdeContext +): DescribeServiceDeploymentsResponse => { + return take(output, { + failures: _json, + serviceDeployments: (_: any) => de_ServiceDeployments(_, context), + }) as any; +}; + +/** + * deserializeAws_json1_1DescribeServiceRevisionsResponse + */ +const de_DescribeServiceRevisionsResponse = ( + output: any, + context: __SerdeContext +): DescribeServiceRevisionsResponse => { + return take(output, { + failures: _json, + serviceRevisions: (_: any) => de_ServiceRevisions(_, context), + }) as any; +}; + /** * deserializeAws_json1_1DescribeServicesResponse */ @@ -3679,6 +3864,16 @@ const de_InstanceHealthCheckResultList = (output: any, context: __SerdeContext): // de_ListContainerInstancesResponse omitted. +/** + * deserializeAws_json1_1ListServiceDeploymentsResponse + */ +const de_ListServiceDeploymentsResponse = (output: any, context: __SerdeContext): ListServiceDeploymentsResponse => { + return take(output, { + nextToken: __expectString, + serviceDeployments: (_: any) => de_ServiceDeploymentsBrief(_, context), + }) as any; +}; + // de_ListServicesByNamespaceResponse omitted. // de_ListServicesResponse omitted. @@ -3860,6 +4055,17 @@ const de_Resources = (output: any, context: __SerdeContext): Resource[] => { return retVal; }; +/** + * deserializeAws_json1_1Rollback + */ +const de_Rollback = (output: any, context: __SerdeContext): Rollback => { + return take(output, { + reason: __expectString, + serviceRevisionArn: __expectString, + startedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + }) as any; +}; + /** * deserializeAws_json1_1RunTaskResponse */ @@ -3945,6 +4151,75 @@ const de_Service = (output: any, context: __SerdeContext): Service => { // de_ServiceConnectTlsConfiguration omitted. +/** + * deserializeAws_json1_1ServiceDeployment + */ +const de_ServiceDeployment = (output: any, context: __SerdeContext): ServiceDeployment => { + return take(output, { + alarms: _json, + clusterArn: __expectString, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + deploymentCircuitBreaker: _json, + deploymentConfiguration: _json, + finishedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + rollback: (_: any) => de_Rollback(_, context), + serviceArn: __expectString, + serviceDeploymentArn: __expectString, + sourceServiceRevisions: _json, + startedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + status: __expectString, + statusReason: __expectString, + stoppedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + targetServiceRevision: _json, + updatedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + }) as any; +}; + +// de_ServiceDeploymentAlarms omitted. + +/** + * deserializeAws_json1_1ServiceDeploymentBrief + */ +const de_ServiceDeploymentBrief = (output: any, context: __SerdeContext): ServiceDeploymentBrief => { + return take(output, { + clusterArn: __expectString, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + finishedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + serviceArn: __expectString, + serviceDeploymentArn: __expectString, + startedAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + status: __expectString, + statusReason: __expectString, + targetServiceRevisionArn: __expectString, + }) as any; +}; + +// de_ServiceDeploymentCircuitBreaker omitted. + +/** + * deserializeAws_json1_1ServiceDeployments + */ +const de_ServiceDeployments = (output: any, context: __SerdeContext): ServiceDeployment[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ServiceDeployment(entry, context); + }); + return retVal; +}; + +/** + * deserializeAws_json1_1ServiceDeploymentsBrief + */ +const de_ServiceDeploymentsBrief = (output: any, context: __SerdeContext): ServiceDeploymentBrief[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ServiceDeploymentBrief(entry, context); + }); + return retVal; +}; + /** * deserializeAws_json1_1ServiceEvent */ @@ -3978,6 +4253,47 @@ const de_ServiceEvents = (output: any, context: __SerdeContext): ServiceEvent[] // de_ServiceRegistry omitted. +/** + * deserializeAws_json1_1ServiceRevision + */ +const de_ServiceRevision = (output: any, context: __SerdeContext): ServiceRevision => { + return take(output, { + capacityProviderStrategy: _json, + clusterArn: __expectString, + containerImages: _json, + createdAt: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + fargateEphemeralStorage: _json, + guardDutyEnabled: __expectBoolean, + launchType: __expectString, + loadBalancers: _json, + networkConfiguration: _json, + platformFamily: __expectString, + platformVersion: __expectString, + serviceArn: __expectString, + serviceConnectConfiguration: _json, + serviceRegistries: _json, + serviceRevisionArn: __expectString, + taskDefinition: __expectString, + volumeConfigurations: _json, + }) as any; +}; + +/** + * deserializeAws_json1_1ServiceRevisions + */ +const de_ServiceRevisions = (output: any, context: __SerdeContext): ServiceRevision[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_ServiceRevision(entry, context); + }); + return retVal; +}; + +// de_ServiceRevisionsSummaryList omitted. + +// de_ServiceRevisionSummary omitted. + /** * deserializeAws_json1_1Services */ diff --git a/codegen/sdk-codegen/aws-models/ecs.json b/codegen/sdk-codegen/aws-models/ecs.json index 02f1b1e2384ef..e0cc8f295772a 100644 --- a/codegen/sdk-codegen/aws-models/ecs.json +++ b/codegen/sdk-codegen/aws-models/ecs.json @@ -137,6 +137,12 @@ { "target": "com.amazonaws.ecs#DescribeContainerInstances" }, + { + "target": "com.amazonaws.ecs#DescribeServiceDeployments" + }, + { + "target": "com.amazonaws.ecs#DescribeServiceRevisions" + }, { "target": "com.amazonaws.ecs#DescribeServices" }, @@ -170,6 +176,9 @@ { "target": "com.amazonaws.ecs#ListContainerInstances" }, + { + "target": "com.amazonaws.ecs#ListServiceDeployments" + }, { "target": "com.amazonaws.ecs#ListServices" }, @@ -1762,7 +1771,7 @@ } }, "traits": { - "smithy.api#documentation": "

      These errors are usually caused by a client action. This client action might be using\n\t\t\tan action or resource on behalf of a user that doesn't have permissions to use the\n\t\t\taction or resource. Or, it might be specifying an identifier that isn't valid.

      \n

      The following list includes additional causes for the error:

      \n
        \n
      • \n

        The RunTask could not be processed because you use managed\n\t\t\t\t\tscaling and there is a capacity error because the quota of tasks in the\n\t\t\t\t\t\tPROVISIONING per cluster has been reached. For information\n\t\t\t\t\tabout the service quotas, see Amazon ECS\n\t\t\t\t\t\tservice quotas.

        \n
      • \n
      ", + "smithy.api#documentation": "

      These errors are usually caused by a client action. This client action might be using\n\t\t\tan action or resource on behalf of a user that doesn't have permissions to use the\n\t\t\taction or resource. Or, it might be specifying an identifier that isn't valid.

      \n

      The following list includes additional causes for the error:

      \n
        \n
      • \n

        The RunTask could not be processed because you use managed\n\t\t\t\t\tscaling and there is a capacity error because the quota of tasks in the\n\t\t\t\t\tPROVISIONING per cluster has been reached. For information\n\t\t\t\t\tabout the service quotas, see Amazon ECS\n\t\t\t\t\t\tservice quotas.

        \n
      • \n
      ", "smithy.api#error": "client" } }, @@ -2562,6 +2571,38 @@ "smithy.api#documentation": "

      The dependencies defined for container startup and shutdown. A container can contain\n\t\t\tmultiple dependencies. When a dependency is defined for container startup, for container\n\t\t\tshutdown it is reversed.

      \n

      Your Amazon ECS container instances require at least version 1.26.0 of the container agent\n\t\t\tto use container dependencies. However, we recommend using the latest container agent\n\t\t\tversion. For information about checking your agent version and updating to the latest\n\t\t\tversion, see Updating the Amazon ECS\n\t\t\t\tContainer Agent in the Amazon Elastic Container Service Developer Guide. If you're using an Amazon ECS-optimized Linux AMI,\n\t\t\tyour instance needs at least version 1.26.0-1 of the ecs-init package. If\n\t\t\tyour container instances are launched from version 20190301 or later, then\n\t\t\tthey contain the required versions of the container agent and ecs-init. For\n\t\t\tmore information, see Amazon ECS-optimized Linux AMI\n\t\t\tin the Amazon Elastic Container Service Developer Guide.

      \n \n

      For tasks that use the Fargate launch type, the task or service\n\t\t\t\trequires the following platforms:

      \n
        \n
      • \n

        Linux platform version 1.3.0 or later.

        \n
      • \n
      • \n

        Windows platform version 1.0.0 or later.

        \n
      • \n
      \n
      \n

      For more information about how to create a container dependency, see Container dependency in the Amazon Elastic Container Service Developer Guide.

      " } }, + "com.amazonaws.ecs#ContainerImage": { + "type": "structure", + "members": { + "containerName": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The name of the container.

      " + } + }, + "imageDigest": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The container image digest.

      " + } + }, + "image": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The container image.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      The details about the container image a service revision uses.

      \n

      To ensure that all tasks in a service use the same container image, Amazon ECS resolves\n\t\t\tcontainer image names and any image tags specified in the task definition to container\n\t\t\timage digests.

      \n

      After the container image digest has been established, Amazon ECS uses the digest to start\n\t\t\tany other desired tasks, and for any future service and service revision updates. This\n\t\t\tleads to all tasks in a service always running identical container images, resulting in\n\t\t\tversion consistency for your software. For more information, see Container image resolution in the Amazon ECS Developer Guide.

      " + } + }, + "com.amazonaws.ecs#ContainerImages": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ContainerImage" + } + }, "com.amazonaws.ecs#ContainerInstance": { "type": "structure", "members": { @@ -3011,7 +3052,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Creates a new Amazon ECS cluster. By default, your account receives a default\n\t\t\tcluster when you launch your first container instance. However, you can create your own\n\t\t\tcluster with a unique name.

      \n \n

      When you call the CreateCluster API operation, Amazon ECS attempts to\n\t\t\t\tcreate the Amazon ECS service-linked role for your account. This is so that it can manage\n\t\t\t\trequired resources in other Amazon Web Services services on your behalf. However, if the user that\n\t\t\t\tmakes the call doesn't have permissions to create the service-linked role, it isn't\n\t\t\t\tcreated. For more information, see Using\n\t\t\t\t\tservice-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

      \n
      ", + "smithy.api#documentation": "

      Creates a new Amazon ECS cluster. By default, your account receives a default\n\t\t\tcluster when you launch your first container instance. However, you can create your own\n\t\t\tcluster with a unique name.

      \n \n

      When you call the CreateCluster API operation, Amazon ECS attempts to\n\t\t\t\tcreate the Amazon ECS service-linked role for your account. This is so that it can manage\n\t\t\t\trequired resources in other Amazon Web Services services on your behalf. However, if the user that\n\t\t\t\tmakes the call doesn't have permissions to create the service-linked role, it isn't\n\t\t\t\tcreated. For more information, see Using\n\t\t\t\t\tservice-linked roles for Amazon ECS in the Amazon Elastic Container Service Developer Guide.

      \n
      ", "smithy.api#examples": [ { "title": "To create a new cluster", @@ -3136,7 +3177,7 @@ } ], "traits": { - "smithy.api#documentation": "

      Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the desiredCount,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, use UpdateService.

      \n \n

      On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

      \n
      \n \n

      Amazon Elastic Inference (EI) is no longer available to customers.

      \n
      \n

      In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

      \n

      You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or\n\t\t\tupdating a service. volumeConfigurations is only supported for REPLICA\n\t\t\tservice and not DAEMON service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

      \n

      Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe RUNNING state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the RUNNING state and are reported as\n\t\t\thealthy by the load balancer.

      \n

      There are two service scheduler strategies available:

      \n
        \n
      • \n

        \n REPLICA - The replica scheduling strategy places and\n\t\t\t\t\tmaintains your desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement decisions. For\n\t\t\t\t\tmore information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

        \n
      • \n
      • \n

        \n DAEMON - The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance that meets all of the task placement\n\t\t\t\t\tconstraints that you specify in your cluster. The service scheduler also\n\t\t\t\t\tevaluates the task placement constraints for running tasks. It also stops tasks\n\t\t\t\t\tthat don't meet the placement constraints. When using this strategy, you don't\n\t\t\t\t\tneed to specify a desired number of tasks, a task placement strategy, or use\n\t\t\t\t\tService Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

        \n
      • \n
      \n

      You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. You can use UpdateService. The default value for a replica service for\n\t\t\t\tminimumHealthyPercent is 100%. The default value for a daemon service\n\t\t\tfor minimumHealthyPercent is 0%.

      \n

      If a service uses the ECS deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe RUNNING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the RUNNING state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\tRUNNING state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that do use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.

      \n

      If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the RUNNING or\n\t\t\t\tPENDING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.

      \n

      If a service uses either the CODE_DEPLOY or EXTERNAL\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\tminimum healthy percent and maximum percent values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the RUNNING state.\n\t\t\tThis is while the container instances are in the DRAINING state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.

      \n

      When creating a service that uses the EXTERNAL deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the CreateTaskSet. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

      \n

      When the service scheduler launches new tasks, it determines task placement. For\n\t\t\tinformation about task placement and task placement strategies, see Amazon ECS\n\t\t\t\ttask placement in the Amazon Elastic Container Service Developer Guide\n

      ", + "smithy.api#documentation": "

      Runs and maintains your desired number of tasks from a specified task definition. If\n\t\t\tthe number of tasks running in a service drops below the desiredCount,\n\t\t\tAmazon ECS runs another copy of the task in the specified cluster. To update an existing\n\t\t\tservice, see the UpdateService action.

      \n \n

      On March 21, 2024, a change was made to resolve the task definition revision before authorization. When a task definition revision is not specified, authorization will occur using the latest revision of a task definition.

      \n
      \n \n

      Amazon Elastic Inference (EI) is no longer available to customers.

      \n
      \n

      In addition to maintaining the desired count of tasks in your service, you can\n\t\t\toptionally run your service behind one or more load balancers. The load balancers\n\t\t\tdistribute traffic across the tasks that are associated with the service. For more\n\t\t\tinformation, see Service load balancing in the Amazon Elastic Container Service Developer Guide.

      \n

      You can attach Amazon EBS volumes to Amazon ECS tasks by configuring the volume when creating or\n\t\t\tupdating a service. volumeConfigurations is only supported for REPLICA\n\t\t\tservice and not DAEMON service. For more infomation, see Amazon EBS volumes in the Amazon Elastic Container Service Developer Guide.

      \n

      Tasks for services that don't use a load balancer are considered healthy if they're in\n\t\t\tthe RUNNING state. Tasks for services that use a load balancer are\n\t\t\tconsidered healthy if they're in the RUNNING state and are reported as\n\t\t\thealthy by the load balancer.

      \n

      There are two service scheduler strategies available:

      \n
        \n
      • \n

        \n REPLICA - The replica scheduling strategy places and\n\t\t\t\t\tmaintains your desired number of tasks across your cluster. By default, the\n\t\t\t\t\tservice scheduler spreads tasks across Availability Zones. You can use task\n\t\t\t\t\tplacement strategies and constraints to customize task placement decisions. For\n\t\t\t\t\tmore information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

        \n
      • \n
      • \n

        \n DAEMON - The daemon scheduling strategy deploys exactly one\n\t\t\t\t\ttask on each active container instance that meets all of the task placement\n\t\t\t\t\tconstraints that you specify in your cluster. The service scheduler also\n\t\t\t\t\tevaluates the task placement constraints for running tasks. It also stops tasks\n\t\t\t\t\tthat don't meet the placement constraints. When using this strategy, you don't\n\t\t\t\t\tneed to specify a desired number of tasks, a task placement strategy, or use\n\t\t\t\t\tService Auto Scaling policies. For more information, see Service scheduler concepts in the Amazon Elastic Container Service Developer Guide.

        \n
      • \n
      \n

      You can optionally specify a deployment configuration for your service. The deployment\n\t\t\tis initiated by changing properties. For example, the deployment might be initiated by\n\t\t\tthe task definition or by your desired count of a service. You can use UpdateService. The default value for a replica service for\n\t\t\t\tminimumHealthyPercent is 100%. The default value for a daemon service\n\t\t\tfor minimumHealthyPercent is 0%.

      \n

      If a service uses the ECS deployment controller, the minimum healthy\n\t\t\tpercent represents a lower limit on the number of tasks in a service that must remain in\n\t\t\tthe RUNNING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of your desired number of tasks (rounded up to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can deploy without using additional cluster capacity. For example, if you\n\t\t\tset your service to have desired number of four tasks and a minimum healthy percent of\n\t\t\t50%, the scheduler might stop two existing tasks to free up cluster capacity before\n\t\t\tstarting two new tasks. If they're in the RUNNING state, tasks for services\n\t\t\tthat don't use a load balancer are considered healthy . If they're in the\n\t\t\t\tRUNNING state and reported as healthy by the load balancer, tasks for\n\t\t\tservices that do use a load balancer are considered healthy . The\n\t\t\tdefault value for minimum healthy percent is 100%.

      \n

      If a service uses the ECS deployment controller, the maximum percent parameter represents an upper limit on the\n\t\t\tnumber of tasks in a service that are allowed in the RUNNING or\n\t\t\t\tPENDING state during a deployment. Specifically, it represents it as a\n\t\t\tpercentage of the desired number of tasks (rounded down to the nearest integer). This\n\t\t\thappens when any of your container instances are in the DRAINING state if\n\t\t\tthe service contains tasks using the EC2 launch type. Using this\n\t\t\tparameter, you can define the deployment batch size. For example, if your service has a\n\t\t\tdesired number of four tasks and a maximum percent value of 200%, the scheduler may\n\t\t\tstart four new tasks before stopping the four older tasks (provided that the cluster\n\t\t\tresources required to do this are available). The default value for maximum percent is\n\t\t\t200%.

      \n

      If a service uses either the CODE_DEPLOY or EXTERNAL\n\t\t\tdeployment controller types and tasks that use the EC2 launch type, the\n\t\t\t\tminimum healthy percent and maximum percent values are used only to define the lower and upper limit\n\t\t\ton the number of the tasks in the service that remain in the RUNNING state.\n\t\t\tThis is while the container instances are in the DRAINING state. If the\n\t\t\ttasks in the service use the Fargate launch type, the minimum healthy\n\t\t\tpercent and maximum percent values aren't used. This is the case even if they're\n\t\t\tcurrently visible when describing your service.

      \n

      When creating a service that uses the EXTERNAL deployment controller, you\n\t\t\tcan specify only parameters that aren't controlled at the task set level. The only\n\t\t\trequired parameter is the service name. You control your services using the CreateTaskSet. For more information, see Amazon ECS deployment types in the Amazon Elastic Container Service Developer Guide.

      \n

      When the service scheduler launches new tasks, it determines task placement. For\n\t\t\tinformation about task placement and task placement strategies, see Amazon ECS\n\t\t\t\ttask placement in the Amazon Elastic Container Service Developer Guide\n

      ", "smithy.api#examples": [ { "title": "To create a new service", @@ -3319,7 +3360,7 @@ "deploymentConfiguration": { "target": "com.amazonaws.ecs#DeploymentConfiguration", "traits": { - "smithy.api#documentation": "

      Optional deployment parameters that control how many tasks run during the deployment\n\t\t\tand the ordering of stopping and starting tasks.

      " + "smithy.api#documentation": "

      Optional deployment parameters that control how many tasks run during the deployment and the\n\t\t\tfailure detection methods.

      " } }, "placementConstraints": { @@ -3343,7 +3384,7 @@ "healthCheckGracePeriodSeconds": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

      The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing target health checks after a task has first started. This is only used when your\n\t\t\tservice is configured to use a load balancer. If your service has a load balancer\n\t\t\tdefined and you don't specify a health check grace period value, the default value of\n\t\t\t\t0 is used.

      \n

      If you do not use an Elastic Load Balancing, we recommend that you use the startPeriod in\n\t\t\tthe task definition health check parameters. For more information, see Health\n\t\t\t\tcheck.

      \n

      If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you\n\t\t\tcan specify a health check grace period of up to 2,147,483,647 seconds (about 69 years).\n\t\t\tDuring that time, the Amazon ECS service scheduler ignores health check status. This grace\n\t\t\tperiod can prevent the service scheduler from marking tasks as unhealthy and stopping\n\t\t\tthem before they have time to come up.

      " + "smithy.api#documentation": "

      The period of time, in seconds, that the Amazon ECS service scheduler ignores unhealthy\n\t\t\tElastic Load Balancing target health checks after a task has first started. This is only used when your\n\t\t\tservice is configured to use a load balancer. If your service has a load balancer\n\t\t\tdefined and you don't specify a health check grace period value, the default value of\n\t\t\t\t0 is used.

      \n

      If you do not use an Elastic Load Balancing, we recommend that you use the startPeriod in\n\t\t\tthe task definition health check parameters. For more information, see Health\n\t\t\t\tcheck.

      \n

      If your service's tasks take a while to start and respond to Elastic Load Balancing health checks, you can\n\t\t\tspecify a health check grace period of up to 2,147,483,647 seconds (about 69 years).\n\t\t\tDuring that time, the Amazon ECS service scheduler ignores health check status. This grace\n\t\t\tperiod can prevent the service scheduler from marking tasks as unhealthy and stopping\n\t\t\tthem before they have time to come up.

      " } }, "schedulingStrategy": { @@ -3565,6 +3606,26 @@ "smithy.api#output": {} } }, + "com.amazonaws.ecs#CreatedAt": { + "type": "structure", + "members": { + "before": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      Include service deployments in the result that were created before this time. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

      " + } + }, + "after": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      Include service deployments in the result that were created after this time. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      The optional filter to narrow the ListServiceDeployment results.

      \n

      If you do not specify a value, service deployments that were created before the current\n\t\t\ttime are included in the result.

      " + } + }, "com.amazonaws.ecs#DeleteAccountSetting": { "type": "operation", "input": { @@ -4224,19 +4285,19 @@ "smithy.api#required": {} } }, - "enable": { + "rollback": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

      Determines whether to use the CloudWatch alarm option in the service deployment\n\t\t\tprocess.

      ", + "smithy.api#documentation": "

      Determines whether to configure Amazon ECS to roll back the service if a service deployment\n\t\t\tfails. If rollback is used, when a service deployment fails, the service is rolled back\n\t\t\tto the last deployment that completed successfully.

      ", "smithy.api#required": {} } }, - "rollback": { + "enable": { "target": "com.amazonaws.ecs#Boolean", "traits": { "smithy.api#default": false, - "smithy.api#documentation": "

      Determines whether to configure Amazon ECS to roll back the service if a service deployment\n\t\t\tfails. If rollback is used, when a service deployment fails, the service is rolled back\n\t\t\tto the last deployment that completed successfully.

      ", + "smithy.api#documentation": "

      Determines whether to use the CloudWatch alarm option in the service deployment\n\t\t\tprocess.

      ", "smithy.api#required": {} } } @@ -4298,7 +4359,7 @@ } }, "traits": { - "smithy.api#documentation": "

      Optional deployment parameters that control how many tasks run during a deployment and\n\t\t\tthe ordering of stopping and starting tasks.

      " + "smithy.api#documentation": "

      Optional deployment parameters that control how many tasks run during the deployment and the\n\t\t\tfailure detection methods.

      " } }, "com.amazonaws.ecs#DeploymentController": { @@ -4345,7 +4406,7 @@ "kmsKeyId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

      Specify an Key Management Service key ID to encrypt the ephemeral storage for\n\t\t\tdeployment.

      " + "smithy.api#documentation": "

      Specify an Amazon Web Services Key Management Service key ID to encrypt the ephemeral storage for\n\t\t\tdeployment.

      " } } }, @@ -4820,6 +4881,146 @@ "smithy.api#output": {} } }, + "com.amazonaws.ecs#DescribeServiceDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeServiceDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeServiceDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "smithy.api#documentation": "

      Describes one or more of your service deployments.

      \n

      A service deployment happens when you release a software update for the service. For more information, see Amazon ECS service deployments.

      " + } + }, + "com.amazonaws.ecs#DescribeServiceDeploymentsRequest": { + "type": "structure", + "members": { + "serviceDeploymentArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

      The ARN of the service deployment.

      \n

      You can specify a maximum of 20 ARNs.

      ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeServiceDeploymentsResponse": { + "type": "structure", + "members": { + "serviceDeployments": { + "target": "com.amazonaws.ecs#ServiceDeployments", + "traits": { + "smithy.api#documentation": "

      The list of service deployments described.

      " + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

      Any failures associated with the call.

      \n

      If you decsribe a deployment with a service revision created before October 25, 2024, the\n\t\t\tcall fails. The failure includes the service revision ARN and the reason set to\n\t\t\t\tMISSING.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, + "com.amazonaws.ecs#DescribeServiceRevisions": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#DescribeServiceRevisionsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#DescribeServiceRevisionsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#ClusterNotFoundException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "smithy.api#documentation": "

      Describes one or more service revisions.

      \n

      A service revision is a version of the service that includes the values for the Amazon ECS\n\t\t\tresources (for example, task definition) and the environment resources (for example,\n\t\t\tload balancers, subnets, and security groups). For more information, see Amazon ECS service revisions.

      \n

      You can't describe a service revision that was created before October 25, 2024.

      " + } + }, + "com.amazonaws.ecs#DescribeServiceRevisionsRequest": { + "type": "structure", + "members": { + "serviceRevisionArns": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

      The ARN of the service revision.

      \n

      You can specify a maximum of 20 ARNs.

      \n

      You can call ListServiceDeployments to\n\t\t\tget the ARNs.

      ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#DescribeServiceRevisionsResponse": { + "type": "structure", + "members": { + "serviceRevisions": { + "target": "com.amazonaws.ecs#ServiceRevisions", + "traits": { + "smithy.api#documentation": "

      The list of service revisions described.

      " + } + }, + "failures": { + "target": "com.amazonaws.ecs#Failures", + "traits": { + "smithy.api#documentation": "

      Any failures associated with the call.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ecs#DescribeServices": { "type": "operation", "input": { @@ -7112,6 +7313,103 @@ "smithy.api#output": {} } }, + "com.amazonaws.ecs#ListServiceDeployments": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#ListServiceDeploymentsRequest" + }, + "output": { + "target": "com.amazonaws.ecs#ListServiceDeploymentsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.ecs#AccessDeniedException" + }, + { + "target": "com.amazonaws.ecs#ClientException" + }, + { + "target": "com.amazonaws.ecs#InvalidParameterException" + }, + { + "target": "com.amazonaws.ecs#ServerException" + }, + { + "target": "com.amazonaws.ecs#ServiceNotFoundException" + }, + { + "target": "com.amazonaws.ecs#UnsupportedFeatureException" + } + ], + "traits": { + "smithy.api#documentation": "

      This operation lists all the service deployments that meet the specified filter criteria.

      \n

      A service deployment happens when you release a softwre update for the service. You\n\t\t\troute traffic from the running service revisions to the new service revison and control\n\t\t\tthe number of running tasks.

      \n

      This API returns the values that you use for the request parameters in DescribeServiceRevisions.

      " + } + }, + "com.amazonaws.ecs#ListServiceDeploymentsRequest": { + "type": "structure", + "members": { + "service": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN or name of the service

      ", + "smithy.api#required": {} + } + }, + "cluster": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      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 performanceIf you don't\n\t\t\tspecify a cluster, deault is used.

      " + } + }, + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatusList", + "traits": { + "smithy.api#documentation": "

      An optional filter you can use to narrow the results. If you do not specify a status, then\n\t\t\tall status values are included in the result.

      " + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#CreatedAt", + "traits": { + "smithy.api#documentation": "

      An optional filter you can use to narrow the results by the service creation date. If you do\n\t\t\tnot specify a value, the result includes all services created before the current\n\t\t\ttime. The\n\t\t\tformat is yyyy-MM-dd HH:mm:ss.SSSSSS.

      " + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The nextToken value returned from a ListServiceDeployments request indicating that more results are available to fulfill the request and further calls are needed. If you provided maxResults, it's possible the number of results is fewer than maxResults.

      " + } + }, + "maxResults": { + "target": "com.amazonaws.ecs#BoxedInteger", + "traits": { + "smithy.api#documentation": "

      The maximum number of service deployment results that ListServiceDeployments\n\t\t\treturned in paginated output. When this parameter is used,\n\t\t\t\tListServiceDeployments only returns maxResults results in\n\t\t\ta single page along with a nextToken response element. The remaining\n\t\t\tresults of the initial request can be seen by sending another\n\t\t\t\tListServiceDeployments request with the returned nextToken\n\t\t\tvalue. This value can be between 1 and 100. If this parameter isn't used, then\n\t\t\t\tListServiceDeployments returns up to 20 results and a\n\t\t\t\tnextToken value if applicable.

      " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.ecs#ListServiceDeploymentsResponse": { + "type": "structure", + "members": { + "serviceDeployments": { + "target": "com.amazonaws.ecs#ServiceDeploymentsBrief", + "traits": { + "smithy.api#documentation": "

      An overview of the service deployment, including the following\n\t\t\tproperties:

      \n
        \n
      • \n

        The ARN of the service deployment.

        \n
      • \n
      • \n

        The ARN of the service being deployed.

        \n
      • \n
      • \n

        The ARN of the cluster that hosts the service in the service deployment.

        \n
      • \n
      • \n

        The time that the service deployment started.

        \n
      • \n
      • \n

        The time that the service deployment completed.

        \n
      • \n
      • \n

        The service deployment status.

        \n
      • \n
      • \n

        Information about why the service deployment is in the current state.

        \n
      • \n
      • \n

        The ARN of the service revision that is being deployed.

        \n
      • \n
      " + } + }, + "nextToken": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The nextToken value to include in a future ListServiceDeployments request. When the results of a ListServiceDeployments request exceed maxResults, this value can be used to retrieve the next page of results. This value is null when there are no more results to return.

      " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.ecs#ListServices": { "type": "operation", "input": { @@ -7735,7 +8033,7 @@ "loadBalancerName": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

      The name of the load balancer to associate with the Amazon ECS service or task set.

      \n

      If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be\n\t\t\tomitted.

      " + "smithy.api#documentation": "

      The name of the load balancer to associate with the service or task set.

      \n

      If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be\n\t\t\tomitted.

      " } }, "containerName": { @@ -7981,7 +8279,7 @@ "minimumScalingStepSize": { "target": "com.amazonaws.ecs#ManagedScalingStepSize", "traits": { - "smithy.api#documentation": "

      The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. The scale\n\t\t\tin process is not affected by this parameter If this parameter is omitted, the default\n\t\t\tvalue of 1 is used.

      \n

      When additional capacity is required, Amazon ECS will scale up the minimum scaling step\n\t\t\tsize even if the actual demand is less than the minimum scaling step size.

      \n

      If you use a capacity provider with an Auto Scaling group configured with more than\n\t\t\tone Amazon EC2 instance type or Availability Zone, Amazon ECS will scale up by the exact minimum\n\t\t\tscaling step size value and will ignore both the maximum scaling step size as well as\n\t\t\tthe capacity demand.

      " + "smithy.api#documentation": "

      The minimum number of Amazon EC2 instances that Amazon ECS will scale out at one time. If this parameter is omitted, the default\n\t\t\tvalue of 1 is used.

      \n

      When additional capacity is required, Amazon ECS will scale up the minimum scaling step\n\t\t\tsize even if the actual demand is less than the minimum scaling step size.

      \n

      If you use a capacity provider with an Auto Scaling group configured with more than\n\t\t\tone Amazon EC2 instance type or Availability Zone, Amazon ECS will scale up by the exact minimum\n\t\t\tscaling step size value and will ignore both the maximum scaling step size as well as\n\t\t\tthe capacity demand.

      " } }, "maximumScalingStepSize": { @@ -8051,7 +8349,7 @@ "kmsKeyId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

      Specify a Key Management Service key ID to encrypt the managed storage.

      " + "smithy.api#documentation": "

      Specify a Amazon Web Services Key Management Service key ID to encrypt the managed storage.

      " } }, "fargateEphemeralStorageKmsKeyId": { @@ -8521,7 +8819,7 @@ "containerPort": { "target": "com.amazonaws.ecs#BoxedInteger", "traits": { - "smithy.api#documentation": "

      The port number on the container that's bound to the user-specified or automatically\n\t\t\tassigned host port.

      \n

      If you use containers in a task with the awsvpc or host\n\t\t\tnetwork mode, specify the exposed ports using containerPort.

      \n

      If you use containers in a task with the bridge network mode and you\n\t\t\tspecify a container port and not a host port, your container automatically receives a\n\t\t\thost port in the ephemeral port range. For more information, see hostPort.\n\t\t\tPort mappings that are automatically assigned in this way do not count toward the 100\n\t\t\treserved ports limit of a container instance.

      " + "smithy.api#documentation": "

      The port number on the container that's bound to the user-specified or automatically\n\t\t\tassigned host port.

      \n

      For tasks that use the Fargate launch type or EC2 tasks that use the\n\t\t\t\tawsvpc network mode, you use containerPort to specify the\n\t\t\texposed ports.

      \n

      For Windows containers on Fargate, you can't use port 3150 for the\n\t\t\t\tcontainerPort. This is because it's reserved.

      \n

      Suppose that you're using containers in a task with the EC2 launch type\n\t\t\tand you specify a container port and not a host port. Then, your container automatically\n\t\t\treceives a host port in the ephemeral port range. For more information, see\n\t\t\t\thostPort. Port mappings that are automatically assigned in this way\n\t\t\tdon't count toward the 100 reserved ports quota of a container instance.

      " } }, "hostPort": { @@ -8556,7 +8854,7 @@ } }, "traits": { - "smithy.api#documentation": "

      Port mappings allow containers to access ports on the host container instance to send\n\t\t\tor receive traffic. Port mappings are specified as part of the container\n\t\t\tdefinition.

      \n

      If you use containers in a task with the awsvpc or host\n\t\t\tnetwork mode, specify the exposed ports using containerPort. The\n\t\t\t\thostPort can be left blank or it must be the same value as the\n\t\t\t\tcontainerPort.

      \n

      Most fields of this parameter (containerPort, hostPort,\n\t\t\tprotocol) maps to PortBindings in the docker container create command and the\n\t\t\t\t--publish option to docker\n\t\t\t\t\trun. If the network mode of a task definition is set to\n\t\t\t\thost, host ports must either be undefined or match the container port\n\t\t\tin the port mapping.

      \n \n

      You can't expose the same container port for multiple protocols. If you attempt\n\t\t\t\tthis, an error is returned.

      \n
      \n

      After a task reaches the RUNNING status, manual and automatic host and\n\t\t\tcontainer port assignments are visible in the networkBindings section of\n\t\t\tDescribeTasks API responses.

      " + "smithy.api#documentation": "

      Port mappings expose your container's network ports to the outside world. this allows\n\t\t\tclients to access your application. It's also used for inter-container communication\n\t\t\twithin the same task.

      \n

      For task definitions (both the Fargate and EC2 launch type) that use the\n\t\t\t\tawsvpc network mode, only specify the containerPort. The\n\t\t\t\thostPort is always ignored, and the container port is automatically\n\t\t\tmapped to a random high-numbered port on the host.

      \n

      Most fields of this parameter (containerPort, hostPort,\n\t\t\tprotocol) maps to PortBindings in the docker container create command and the\n\t\t\t\t--publish option to docker\n\t\t\t\t\trun. If the network mode of a task definition is set to\n\t\t\t\thost, host ports must either be undefined or match the container port\n\t\t\tin the port mapping.

      \n \n

      You can't expose the same container port for multiple protocols. If you attempt\n\t\t\t\tthis, an error is returned.

      \n
      \n

      After a task reaches the RUNNING status, manual and automatic host and\n\t\t\tcontainer port assignments are visible in the networkBindings section of\n\t\t\tDescribeTasks API responses.

      " } }, "com.amazonaws.ecs#PortMappingList": { @@ -9174,7 +9472,7 @@ "networkMode": { "target": "com.amazonaws.ecs#NetworkMode", "traits": { - "smithy.api#documentation": "

      The Docker networking mode to use for the containers in the task. The valid values are\n none, bridge, awsvpc, and host.\n If no network mode is specified, the default is bridge.

      \n

      For Amazon ECS tasks on Fargate, the awsvpc network mode is required. \n For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If the network\n mode is set to none, you cannot specify port mappings in your container\n definitions, and the tasks containers do not have external connectivity. The\n host and awsvpc network modes offer the highest networking\n performance for containers because they use the EC2 network stack instead of the\n virtualized network stack provided by the bridge mode.

      \n

      With the host and awsvpc network modes, exposed container\n ports are mapped directly to the corresponding host port (for the host\n network mode) or the attached elastic network interface port (for the\n awsvpc network mode), so you cannot take advantage of dynamic host port\n mappings.

      \n \n

      When using the host network mode, you should not run\n containers using the root user (UID 0). It is considered best practice\n to use a non-root user.

      \n
      \n

      If the network mode is awsvpc, the task is allocated an elastic network\n interface, and you must specify a NetworkConfiguration value when you create\n a service or run a task with the task definition. For more information, see Task Networking in the\n Amazon Elastic Container Service Developer Guide.

      \n

      If the network mode is host, you cannot run multiple instantiations of the\n same task on a single container instance when port mappings are used.

      " + "smithy.api#documentation": "

      The Docker networking mode to use for the containers in the task. The valid values are\n none, bridge, awsvpc, and host.\n If no network mode is specified, the default is bridge.

      \n

      For Amazon ECS tasks on Fargate, the awsvpc network mode is required. \n For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If the network\n mode is set to none, you cannot specify port mappings in your container\n definitions, and the tasks containers do not have external connectivity. The\n host and awsvpc network modes offer the highest networking\n performance for containers because they use the EC2 network stack instead of the\n virtualized network stack provided by the bridge mode.

      \n

      With the host and awsvpc network modes, exposed container\n ports are mapped directly to the corresponding host port (for the host\n network mode) or the attached elastic network interface port (for the\n awsvpc network mode), so you cannot take advantage of dynamic host port\n mappings.

      \n \n

      When using the host network mode, you should not run\n containers using the root user (UID 0). It is considered best practice\n to use a non-root user.

      \n
      \n

      If the network mode is awsvpc, the task is allocated an elastic network\n interface, and you must specify a NetworkConfiguration value when you create\n a service or run a task with the task definition. For more information, see Task Networking in the\n Amazon Elastic Container Service Developer Guide.

      \n

      If the network mode is host, you cannot run multiple instantiations of the\n same task on a single container instance when port mappings are used.

      \n

      For more information, see Network\n settings in the Docker run reference.

      " } }, "containerDefinitions": { @@ -9223,13 +9521,13 @@ "pidMode": { "target": "com.amazonaws.ecs#PidMode", "traits": { - "smithy.api#documentation": "

      The process namespace to use for the containers in the task. The valid\n values are host or task. On Fargate for\n Linux containers, the only valid value is task. For\n example, monitoring sidecars might need pidMode to access\n information about other containers running in the same task.

      \n

      If host is specified, all containers within the tasks\n that specified the host PID mode on the same container\n instance share the same process namespace with the host Amazon EC2\n instance.

      \n

      If task is specified, all containers within the specified\n task share the same process namespace.

      \n

      If no value is specified, the\n default is a private namespace for each container.

      \n

      If the host PID mode is used, there's a heightened risk\n of undesired process namespace exposure.

      \n \n

      This parameter is not supported for Windows containers.

      \n
      \n \n

      This parameter is only supported for tasks that are hosted on\n Fargate if the tasks are using platform version 1.4.0 or later\n (Linux). This isn't supported for Windows containers on\n Fargate.

      \n
      " + "smithy.api#documentation": "

      The process namespace to use for the containers in the task. The valid\n values are host or task. On Fargate for\n Linux containers, the only valid value is task. For\n example, monitoring sidecars might need pidMode to access\n information about other containers running in the same task.

      \n

      If host is specified, all containers within the tasks\n that specified the host PID mode on the same container\n instance share the same process namespace with the host Amazon EC2\n instance.

      \n

      If task is specified, all containers within the specified\n task share the same process namespace.

      \n

      If no value is specified, the\n default is a private namespace for each container. For more information,\n see PID settings in the Docker run\n reference.

      \n

      If the host PID mode is used, there's a heightened risk\n of undesired process namespace exposure. For more information, see\n Docker security.

      \n \n

      This parameter is not supported for Windows containers.

      \n
      \n \n

      This parameter is only supported for tasks that are hosted on\n Fargate if the tasks are using platform version 1.4.0 or later\n (Linux). This isn't supported for Windows containers on\n Fargate.

      \n
      " } }, "ipcMode": { "target": "com.amazonaws.ecs#IpcMode", "traits": { - "smithy.api#documentation": "

      The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none. If host is\n specified, then all containers within the tasks that specified the host IPC\n mode on the same container instance share the same IPC resources with the host Amazon EC2\n instance. If task is specified, all containers within the specified task\n share the same IPC resources. If none is specified, then IPC resources\n within the containers of a task are private and not shared with other containers in a\n task or on the container instance. If no value is specified, then the IPC resource\n namespace sharing depends on the Docker daemon setting on the container instance.

      \n

      If the host IPC mode is used, be aware that there is a heightened risk of\n undesired IPC namespace expose.

      \n

      If you are setting namespaced kernel parameters using systemControls for\n the containers in the task, the following will apply to your IPC resource namespace. For\n more information, see System\n Controls in the Amazon Elastic Container Service Developer Guide.

      \n
        \n
      • \n

        For tasks that use the host IPC mode, IPC namespace related\n systemControls are not supported.

        \n
      • \n
      • \n

        For tasks that use the task IPC mode, IPC namespace related\n systemControls will apply to all containers within a\n task.

        \n
      • \n
      \n \n

      This parameter is not supported for Windows containers or tasks run on Fargate.

      \n
      " + "smithy.api#documentation": "

      The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none. If host is\n specified, then all containers within the tasks that specified the host IPC\n mode on the same container instance share the same IPC resources with the host Amazon EC2\n instance. If task is specified, all containers within the specified task\n share the same IPC resources. If none is specified, then IPC resources\n within the containers of a task are private and not shared with other containers in a\n task or on the container instance. If no value is specified, then the IPC resource\n namespace sharing depends on the Docker daemon setting on the container instance. For\n more information, see IPC\n settings in the Docker run reference.

      \n

      If the host IPC mode is used, be aware that there is a heightened risk of\n undesired IPC namespace expose. For more information, see Docker\n security.

      \n

      If you are setting namespaced kernel parameters using systemControls for\n the containers in the task, the following will apply to your IPC resource namespace. For\n more information, see System\n Controls in the Amazon Elastic Container Service Developer Guide.

      \n
        \n
      • \n

        For tasks that use the host IPC mode, IPC namespace related\n systemControls are not supported.

        \n
      • \n
      • \n

        For tasks that use the task IPC mode, IPC namespace related\n systemControls will apply to all containers within a\n task.

        \n
      • \n
      \n \n

      This parameter is not supported for Windows containers or tasks run on Fargate.

      \n
      " } }, "proxyConfiguration": { @@ -9391,7 +9689,7 @@ "value": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

      The value for the specified resource type.

      \n

      When the type is GPU, the value is the number of physical\n\t\t\t\tGPUs the Amazon ECS container agent reserves for the container. The number\n\t\t\tof GPUs that's reserved for all containers in a task can't exceed the number of\n\t\t\tavailable GPUs on the container instance that the task is launched on.

      \n

      When the type is InferenceAccelerator, the value matches the\n\t\t\t\tdeviceName for an InferenceAccelerator specified in a task definition.

      ", + "smithy.api#documentation": "

      The value for the specified resource type.

      \n

      When the type is GPU, the value is the number of physical GPUs the\n\t\t\tAmazon ECS container agent reserves for the container. The number of GPUs that's reserved for\n\t\t\tall containers in a task can't exceed the number of available GPUs on the container\n\t\t\tinstance that the task is launched on.

      \n

      When the type is InferenceAccelerator, the value matches\n\t\t\tthe deviceName for an InferenceAccelerator specified in a task definition.

      ", "smithy.api#required": {} } }, @@ -9436,11 +9734,37 @@ "target": "com.amazonaws.ecs#Resource" } }, - "com.amazonaws.ecs#RunTask": { - "type": "operation", - "input": { - "target": "com.amazonaws.ecs#RunTaskRequest" - }, + "com.amazonaws.ecs#Rollback": { + "type": "structure", + "members": { + "reason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The reason the rollback happened. For example, the circuit breaker initiated the rollback operation.

      " + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      Time time that the rollback started. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      " + } + }, + "serviceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service revision deployed as part of the rollback.

      \n

      When the type is GPU, the value is the number of physical\n\t\t\t\tGPUs the Amazon ECS container agent reserves for the container. The number\n\t\t\tof GPUs that's reserved for all containers in a task can't exceed the number of\n\t\t\tavailable GPUs on the container instance that the task is launched on.

      \n

      When the type is InferenceAccelerator, the value matches the\n\t\t\t\tdeviceName for an InferenceAccelerator specified in a task definition.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      Information about the service deployment rollback.

      " + } + }, + "com.amazonaws.ecs#RunTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.ecs#RunTaskRequest" + }, "output": { "target": "com.amazonaws.ecs#RunTaskResponse" }, @@ -9668,13 +9992,13 @@ "cpuArchitecture": { "target": "com.amazonaws.ecs#CPUArchitecture", "traits": { - "smithy.api#documentation": "

      The CPU architecture.

      \n

      You can run your Linux tasks on an ARM-based platform by setting the value to\n\t\t\t\tARM64. This option is available for tasks that run on Linux Amazon EC2\n\t\t\tinstance or Linux containers on Fargate.

      " + "smithy.api#documentation": "

      The CPU architecture.

      \n

      You can run your Linux tasks on an ARM-based platform by setting the value to\n\t\t\t\tARM64. This option is available for tasks that run on Linux Amazon EC2\n\t\t\tinstance or Linux containers on Fargate.

      \n

      The default is X86_64.

      " } }, "operatingSystemFamily": { "target": "com.amazonaws.ecs#OSFamily", "traits": { - "smithy.api#documentation": "

      The operating system.

      " + "smithy.api#documentation": "

      The operating system.

      \n

      The default is Linux.

      " } } }, @@ -9866,7 +10190,7 @@ "capacityProviderStrategy": { "target": "com.amazonaws.ecs#CapacityProviderStrategy", "traits": { - "smithy.api#documentation": "

      The capacity provider strategy the service uses. When using the DescribeServices API,\n\t\t\tthis field is omitted if the service was created using a launch type.

      " + "smithy.api#documentation": "

      The capacity provider strategy the service uses. When using DescribeServices,\n\t\t\tthis field is omitted if the service was created using a launch type.

      " } }, "platformVersion": { @@ -9962,7 +10286,7 @@ "tags": { "target": "com.amazonaws.ecs#Tags", "traits": { - "smithy.api#documentation": "

      The metadata that you apply to the service to help you categorize and organize them.\n\t\t\tEach tag consists of a key and an optional value. You define bot the key and\n\t\t\tvalue.

      \n

      The following basic restrictions apply to tags:

      \n
        \n
      • \n

        Maximum number of tags per resource - 50

        \n
      • \n
      • \n

        For each resource, each tag key must be unique, and each tag key can have only\n one value.

        \n
      • \n
      • \n

        Maximum key length - 128 Unicode characters in UTF-8

        \n
      • \n
      • \n

        Maximum value length - 256 Unicode characters in UTF-8

        \n
      • \n
      • \n

        If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

        \n
      • \n
      • \n

        Tag keys and values are case-sensitive.

        \n
      • \n
      • \n

        Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

        \n
      • \n
      " + "smithy.api#documentation": "

      The metadata that you apply to the service to help you categorize and organize them. Each\n\t\t\ttag consists of a key and an optional value. You define both the key and value.

      \n

      The following basic restrictions apply to tags:

      \n
        \n
      • \n

        Maximum number of tags per resource - 50

        \n
      • \n
      • \n

        For each resource, each tag key must be unique, and each tag key can have only\n one value.

        \n
      • \n
      • \n

        Maximum key length - 128 Unicode characters in UTF-8

        \n
      • \n
      • \n

        Maximum value length - 256 Unicode characters in UTF-8

        \n
      • \n
      • \n

        If your tagging schema is used across multiple services and resources,\n remember that other services may have restrictions on allowed characters.\n Generally allowed characters are: letters, numbers, and spaces representable in\n UTF-8, and the following characters: + - = . _ : / @.

        \n
      • \n
      • \n

        Tag keys and values are case-sensitive.

        \n
      • \n
      • \n

        Do not use aws:, AWS:, or any upper or lowercase\n combination of such as a prefix for either keys or values as it is reserved for\n Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with\n this prefix do not count against your tags per resource limit.

        \n
      • \n
      " } }, "createdBy": { @@ -10172,6 +10496,323 @@ "smithy.api#documentation": "

      The key that encrypts and decrypts your resources for Service Connect TLS.

      " } }, + "com.amazonaws.ecs#ServiceDeployment": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service deployment.

      " + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service for this service deployment.

      " + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the cluster that hosts the service.

      " + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time the service deployment was created. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      " + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time the service deployment statred. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      " + } + }, + "finishedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time the service deployment finished. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      " + } + }, + "stoppedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time the service deployment stopped. The format is yyyy-MM-dd HH:mm:ss.SSSSSS.

      \n

      The service deployment stops when any of the following actions happen:

      \n
        \n
      • \n

        A user manually stops the deployment

        \n
      • \n
      • \n

        The rollback option is not in use for the failure detection mechanism (the\n\t\t\t\t\tcircuit breaker or alarm-based) and the service fails.

        \n
      • \n
      " + } + }, + "updatedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time that the service deployment was last updated. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

      " + } + }, + "sourceServiceRevisions": { + "target": "com.amazonaws.ecs#ServiceRevisionsSummaryList", + "traits": { + "smithy.api#documentation": "

      The currently deployed workload configuration.

      " + } + }, + "targetServiceRevision": { + "target": "com.amazonaws.ecs#ServiceRevisionSummary", + "traits": { + "smithy.api#documentation": "

      The workload configuration being deployed.

      " + } + }, + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatus", + "traits": { + "smithy.api#documentation": "

      The service deployment state.

      " + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      Information about why the service deployment is in the current status. For example, the circuit breaker detected a failure.

      " + } + }, + "deploymentConfiguration": { + "target": "com.amazonaws.ecs#DeploymentConfiguration" + }, + "rollback": { + "target": "com.amazonaws.ecs#Rollback", + "traits": { + "smithy.api#documentation": "

      The rollback options the service deployment uses when the deployment fails.

      " + } + }, + "deploymentCircuitBreaker": { + "target": "com.amazonaws.ecs#ServiceDeploymentCircuitBreaker", + "traits": { + "smithy.api#documentation": "

      The circuit breaker configuration that determines a service deployment failed.

      " + } + }, + "alarms": { + "target": "com.amazonaws.ecs#ServiceDeploymentAlarms", + "traits": { + "smithy.api#documentation": "

      The CloudWatch alarms that determine when a service deployment fails.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      Information about the service deployment.

      \n

      Service deployments provide a comprehensive view of your deployments. For information\n\t\t\tabout service deployments, see View service history using Amazon ECS service deployments\n\t\t\tin the \n Amazon Elastic Container Service Developer Guide\n .

      " + } + }, + "com.amazonaws.ecs#ServiceDeploymentAlarms": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus", + "traits": { + "smithy.api#documentation": "

      The status of the alarms check. Amazon ECS is not using alarms for service deployment failures when the status is DISABLED.

      " + } + }, + "alarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

      The name of the CloudWatch alarms that determine when a service deployment failed. A \",\" separates the alarms.

      " + } + }, + "triggeredAlarmNames": { + "target": "com.amazonaws.ecs#StringList", + "traits": { + "smithy.api#documentation": "

      One or more CloudWatch alarm names that have been triggered during the service deployment. A \",\"\n\t\t\tseparates the alarm names.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      The CloudWatch alarms used to determine a service deployment failed.

      \n

      Amazon ECS considers the service deployment as failed when any of the alarms move to the ALARM state. For more information, see How CloudWatch alarms detect Amazon ECS deployment failures in the Amazon ECS Developer Guide.

      " + } + }, + "com.amazonaws.ecs#ServiceDeploymentBrief": { + "type": "structure", + "members": { + "serviceDeploymentArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service deployment.

      " + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service for this service deployment.

      " + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the cluster that hosts the service.

      " + } + }, + "startedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time that the service deployment statred. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

      " + } + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time that the service deployment was created. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

      " + } + }, + "finishedAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time that the service deployment completed. The format is yyyy-MM-dd\n\t\t\tHH:mm:ss.SSSSSS.

      " + } + }, + "targetServiceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service revision being deplyed.

      " + } + }, + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatus", + "traits": { + "smithy.api#documentation": "

      The status of the service deployment

      " + } + }, + "statusReason": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      Information about why the service deployment is in the current status. For example, the circuit breaker detected a deployment failure.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      The service deployment properties that are retured when you call ListServiceDeployments.

      \n

      This provides a high-level overview of the service deployment.

      " + } + }, + "com.amazonaws.ecs#ServiceDeploymentCircuitBreaker": { + "type": "structure", + "members": { + "status": { + "target": "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus", + "traits": { + "smithy.api#documentation": "

      The circuit breaker status. Amazon ECS is not using the circuit breaker for service deployment failures when the status is DISABLED.

      " + } + }, + "failureCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The number of times the circuit breaker detected a service deploymeny failure.

      " + } + }, + "threshold": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The threshhold which determines that the service deployment failed.

      \n

      The deployment circuit breaker calculates the threshold value, and then uses the value to\n\t\t\tdetermine when to move the deployment to a FAILED state. The deployment circuit breaker\n\t\t\thas a minimum threshold of 3 and a maximum threshold of 200. and uses the values in the\n\t\t\tfollowing formula to determine the deployment failure.

      \n

      \n 0.5 * desired task count\n

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      Information about the circuit breaker used to determine when a service deployment has\n\t\t\tfailed.

      \n

      The deployment circuit breaker is the rolling update mechanism that determines if the\n\t\t\ttasks reach a steady state. The deployment circuit breaker has an option that will\n\t\t\tautomatically roll back a failed deployment to the last cpompleted service\n\t\t\trevision. For more information, see How the Amazon ECS\n\t\t\tdeployment circuit breaker detects failures in the Amazon ECS Developer\n\t\t\t\tGuide.

      " + } + }, + "com.amazonaws.ecs#ServiceDeploymentRollbackMonitorsStatus": { + "type": "enum", + "members": { + "TRIGGERED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "TRIGGERED" + } + }, + "MONITORING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONITORING" + } + }, + "MONITORING_COMPLETE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "MONITORING_COMPLETE" + } + }, + "DISABLED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "DISABLED" + } + } + } + }, + "com.amazonaws.ecs#ServiceDeploymentStatus": { + "type": "enum", + "members": { + "PENDING": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "PENDING" + } + }, + "SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SUCCESSFUL" + } + }, + "STOPPED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOPPED" + } + }, + "STOP_REQUESTED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "STOP_REQUESTED" + } + }, + "IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "IN_PROGRESS" + } + }, + "ROLLBACK_IN_PROGRESS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_IN_PROGRESS" + } + }, + "ROLLBACK_SUCCESSFUL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_SUCCESSFUL" + } + }, + "ROLLBACK_FAILED": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ROLLBACK_FAILED" + } + } + } + }, + "com.amazonaws.ecs#ServiceDeploymentStatusList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceDeploymentStatus" + } + }, + "com.amazonaws.ecs#ServiceDeployments": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceDeployment" + } + }, + "com.amazonaws.ecs#ServiceDeploymentsBrief": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceDeploymentBrief" + } + }, "com.amazonaws.ecs#ServiceEvent": { "type": "structure", "members": { @@ -10358,6 +10999,155 @@ "smithy.api#documentation": "

      The details for the service registry.

      \n

      Each service may be associated with one service registry. Multiple service registries\n\t\t\tfor each service are not supported.

      \n

      When you add, update, or remove the service registries configuration, Amazon ECS starts a\n\t\t\tnew deployment. New tasks are registered and deregistered to the updated service\n\t\t\tregistry configuration.

      " } }, + "com.amazonaws.ecs#ServiceRevision": { + "type": "structure", + "members": { + "serviceRevisionArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service revision.

      " + } + }, + "serviceArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service for the service revision.

      " + } + }, + "clusterArn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the cluster that hosts the service.

      " + } + }, + "taskDefinition": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The task definition the service revision uses.

      " + } + }, + "capacityProviderStrategy": { + "target": "com.amazonaws.ecs#CapacityProviderStrategy", + "traits": { + "smithy.api#documentation": "

      The capacity provider strategy the service revision uses.

      " + } + }, + "launchType": { + "target": "com.amazonaws.ecs#LaunchType", + "traits": { + "smithy.api#documentation": "

      The launch type the service revision uses.

      " + } + }, + "platformVersion": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      For the Fargate launch type, the platform version the service revision uses.

      " + } + }, + "platformFamily": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The platform family the service revision uses.

      " + } + }, + "loadBalancers": { + "target": "com.amazonaws.ecs#LoadBalancers", + "traits": { + "smithy.api#documentation": "

      The load balancers the service revision uses.

      " + } + }, + "serviceRegistries": { + "target": "com.amazonaws.ecs#ServiceRegistries", + "traits": { + "smithy.api#documentation": "

      The service registries (for Service Discovery) the service revision uses.

      " + } + }, + "networkConfiguration": { + "target": "com.amazonaws.ecs#NetworkConfiguration" + }, + "containerImages": { + "target": "com.amazonaws.ecs#ContainerImages", + "traits": { + "smithy.api#documentation": "

      The container images the service revision uses.

      " + } + }, + "guardDutyEnabled": { + "target": "com.amazonaws.ecs#Boolean", + "traits": { + "smithy.api#default": false, + "smithy.api#documentation": "

      Indicates whether Runtime Monitoring is turned on.

      " + } + }, + "serviceConnectConfiguration": { + "target": "com.amazonaws.ecs#ServiceConnectConfiguration" + }, + "volumeConfigurations": { + "target": "com.amazonaws.ecs#ServiceVolumeConfigurations", + "traits": { + "smithy.api#documentation": "

      The volumes that are configured at deployment that the service revision uses.

      " + } + }, + "fargateEphemeralStorage": { + "target": "com.amazonaws.ecs#DeploymentEphemeralStorage" + }, + "createdAt": { + "target": "com.amazonaws.ecs#Timestamp", + "traits": { + "smithy.api#documentation": "

      The time that the service revision was created. The format is yyyy-mm-dd HH:mm:ss.SSSSS.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      Information about the service revision.

      \n

      A service revision contains a record of the workload configuration Amazon ECS is attempting to deploy. Whenever you create or deploy a service, Amazon ECS automatically creates and captures the configuration that you're trying to deploy in the service revision. For information\n\t\t\tabout service revisions, see Amazon ECS service revisions\n\t\t\tin the \n Amazon Elastic Container Service Developer Guide\n .

      " + } + }, + "com.amazonaws.ecs#ServiceRevisionSummary": { + "type": "structure", + "members": { + "arn": { + "target": "com.amazonaws.ecs#String", + "traits": { + "smithy.api#documentation": "

      The ARN of the service revision.

      " + } + }, + "requestedTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The number of requested tasks for the service revision.

      " + } + }, + "runningTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The number of running tasks for the service revision.

      " + } + }, + "pendingTaskCount": { + "target": "com.amazonaws.ecs#Integer", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

      The number of pending tasks for the service revision.

      " + } + } + }, + "traits": { + "smithy.api#documentation": "

      The information about the number of requested, pending, and running tasks for a service revision.

      " + } + }, + "com.amazonaws.ecs#ServiceRevisions": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRevision" + } + }, + "com.amazonaws.ecs#ServiceRevisionsSummaryList": { + "type": "list", + "member": { + "target": "com.amazonaws.ecs#ServiceRevisionSummary" + } + }, "com.amazonaws.ecs#ServiceVolumeConfiguration": { "type": "structure", "members": { @@ -11524,7 +12314,7 @@ "networkMode": { "target": "com.amazonaws.ecs#NetworkMode", "traits": { - "smithy.api#documentation": "

      The Docker networking mode to use for the containers in the task. The valid values are\n none, bridge, awsvpc, and host.\n If no network mode is specified, the default is bridge.

      \n

      For Amazon ECS tasks on Fargate, the awsvpc network mode is required. \n For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If the network\n mode is set to none, you cannot specify port mappings in your container\n definitions, and the tasks containers do not have external connectivity. The\n host and awsvpc network modes offer the highest networking\n performance for containers because they use the EC2 network stack instead of the\n virtualized network stack provided by the bridge mode.

      \n

      With the host and awsvpc network modes, exposed container\n ports are mapped directly to the corresponding host port (for the host\n network mode) or the attached elastic network interface port (for the\n awsvpc network mode), so you cannot take advantage of dynamic host port\n mappings.

      \n \n

      When using the host network mode, you should not run\n containers using the root user (UID 0). It is considered best practice\n to use a non-root user.

      \n
      \n

      If the network mode is awsvpc, the task is allocated an elastic network\n interface, and you must specify a NetworkConfiguration value when you create\n a service or run a task with the task definition. For more information, see Task Networking in the\n Amazon Elastic Container Service Developer Guide.

      \n

      If the network mode is host, you cannot run multiple instantiations of the\n same task on a single container instance when port mappings are used.

      " + "smithy.api#documentation": "

      The Docker networking mode to use for the containers in the task. The valid values are\n none, bridge, awsvpc, and host.\n If no network mode is specified, the default is bridge.

      \n

      For Amazon ECS tasks on Fargate, the awsvpc network mode is required. \n For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If the network\n mode is set to none, you cannot specify port mappings in your container\n definitions, and the tasks containers do not have external connectivity. The\n host and awsvpc network modes offer the highest networking\n performance for containers because they use the EC2 network stack instead of the\n virtualized network stack provided by the bridge mode.

      \n

      With the host and awsvpc network modes, exposed container\n ports are mapped directly to the corresponding host port (for the host\n network mode) or the attached elastic network interface port (for the\n awsvpc network mode), so you cannot take advantage of dynamic host port\n mappings.

      \n \n

      When using the host network mode, you should not run\n containers using the root user (UID 0). It is considered best practice\n to use a non-root user.

      \n
      \n

      If the network mode is awsvpc, the task is allocated an elastic network\n interface, and you must specify a NetworkConfiguration value when you create\n a service or run a task with the task definition. For more information, see Task Networking in the\n Amazon Elastic Container Service Developer Guide.

      \n

      If the network mode is host, you cannot run multiple instantiations of the\n same task on a single container instance when port mappings are used.

      \n

      For more information, see Network\n settings in the Docker run reference.

      " } }, "revision": { @@ -11597,13 +12387,13 @@ "pidMode": { "target": "com.amazonaws.ecs#PidMode", "traits": { - "smithy.api#documentation": "

      The process namespace to use for the containers in the task. The valid\n values are host or task. On Fargate for\n Linux containers, the only valid value is task. For\n example, monitoring sidecars might need pidMode to access\n information about other containers running in the same task.

      \n

      If host is specified, all containers within the tasks\n that specified the host PID mode on the same container\n instance share the same process namespace with the host Amazon EC2\n instance.

      \n

      If task is specified, all containers within the specified\n task share the same process namespace.

      \n

      If no value is specified, the\n default is a private namespace for each container.

      \n

      If the host PID mode is used, there's a heightened risk\n of undesired process namespace exposure.

      \n \n

      This parameter is not supported for Windows containers.

      \n
      \n \n

      This parameter is only supported for tasks that are hosted on\n Fargate if the tasks are using platform version 1.4.0 or later\n (Linux). This isn't supported for Windows containers on\n Fargate.

      \n
      " + "smithy.api#documentation": "

      The process namespace to use for the containers in the task. The valid\n values are host or task. On Fargate for\n Linux containers, the only valid value is task. For\n example, monitoring sidecars might need pidMode to access\n information about other containers running in the same task.

      \n

      If host is specified, all containers within the tasks\n that specified the host PID mode on the same container\n instance share the same process namespace with the host Amazon EC2\n instance.

      \n

      If task is specified, all containers within the specified\n task share the same process namespace.

      \n

      If no value is specified, the\n default is a private namespace for each container. For more information,\n see PID settings in the Docker run\n reference.

      \n

      If the host PID mode is used, there's a heightened risk\n of undesired process namespace exposure. For more information, see\n Docker security.

      \n \n

      This parameter is not supported for Windows containers.

      \n
      \n \n

      This parameter is only supported for tasks that are hosted on\n Fargate if the tasks are using platform version 1.4.0 or later\n (Linux). This isn't supported for Windows containers on\n Fargate.

      \n
      " } }, "ipcMode": { "target": "com.amazonaws.ecs#IpcMode", "traits": { - "smithy.api#documentation": "

      The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none. If host is\n specified, then all containers within the tasks that specified the host IPC\n mode on the same container instance share the same IPC resources with the host Amazon EC2\n instance. If task is specified, all containers within the specified task\n share the same IPC resources. If none is specified, then IPC resources\n within the containers of a task are private and not shared with other containers in a\n task or on the container instance. If no value is specified, then the IPC resource\n namespace sharing depends on the Docker daemon setting on the container instance.

      \n

      If the host IPC mode is used, be aware that there is a heightened risk of\n undesired IPC namespace expose.

      \n

      If you are setting namespaced kernel parameters using systemControls for\n the containers in the task, the following will apply to your IPC resource namespace. For\n more information, see System\n Controls in the Amazon Elastic Container Service Developer Guide.

      \n
        \n
      • \n

        For tasks that use the host IPC mode, IPC namespace related\n systemControls are not supported.

        \n
      • \n
      • \n

        For tasks that use the task IPC mode, IPC namespace related\n systemControls will apply to all containers within a\n task.

        \n
      • \n
      \n \n

      This parameter is not supported for Windows containers or tasks run on Fargate.

      \n
      " + "smithy.api#documentation": "

      The IPC resource namespace to use for the containers in the task. The valid values are\n host, task, or none. If host is\n specified, then all containers within the tasks that specified the host IPC\n mode on the same container instance share the same IPC resources with the host Amazon EC2\n instance. If task is specified, all containers within the specified task\n share the same IPC resources. If none is specified, then IPC resources\n within the containers of a task are private and not shared with other containers in a\n task or on the container instance. If no value is specified, then the IPC resource\n namespace sharing depends on the Docker daemon setting on the container instance. For\n more information, see IPC\n settings in the Docker run reference.

      \n

      If the host IPC mode is used, be aware that there is a heightened risk of\n undesired IPC namespace expose. For more information, see Docker\n security.

      \n

      If you are setting namespaced kernel parameters using systemControls for\n the containers in the task, the following will apply to your IPC resource namespace. For\n more information, see System\n Controls in the Amazon Elastic Container Service Developer Guide.

      \n
        \n
      • \n

        For tasks that use the host IPC mode, IPC namespace related\n systemControls are not supported.

        \n
      • \n
      • \n

        For tasks that use the task IPC mode, IPC namespace related\n systemControls will apply to all containers within a\n task.

        \n
      • \n
      \n \n

      This parameter is not supported for Windows containers or tasks run on Fargate.

      \n
      " } }, "proxyConfiguration": { @@ -11760,7 +12550,7 @@ "kmsKeyId": { "target": "com.amazonaws.ecs#String", "traits": { - "smithy.api#documentation": "

      Specify an Key Management Service key ID to encrypt the ephemeral storage for the\n\t\t\ttask.

      " + "smithy.api#documentation": "

      Specify an Amazon Web Services Key Management Service key ID to encrypt the ephemeral storage for the\n\t\t\ttask.

      " } } }, @@ -13062,7 +13852,7 @@ "deploymentConfiguration": { "target": "com.amazonaws.ecs#DeploymentConfiguration", "traits": { - "smithy.api#documentation": "

      Optional deployment parameters that control how many tasks run during the deployment\n\t\t\tand the ordering of stopping and starting tasks.

      " + "smithy.api#documentation": "

      Optional deployment parameters that control how many tasks run during the deployment and the\n\t\t\tfailure detection methods.

      " } }, "networkConfiguration": {