
<!-- BEGIN overcast:capabilities -->

# ECS operations

40 of 48 listed operations are implemented. Back to [ECS](/docs/services/ecs/index.md).

## Summary

| Category | ✅ Supported | ❌ Unsupported |
| --- | --- | --- |
| General | 40 | 8 |

---

## Endpoints

### General

| Operation                       | Status         | Notes                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | AWS Docs                                                                                                 |
| --- | --- | --- | --- |
| `CreateCapacityProvider` | ✅ Supported | FARGATE and FARGATE_SPOT built-ins seeded automatically; rejects FARGATE\* prefix for custom providers | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html) |
| `CreateCluster` | ✅ Supported | Defaults name to "default" if empty | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCluster.html) |
| `CreateService` | ✅ Supported | Validates cluster + task def; creates PRIMARY deployment with rolloutState; scheduler starts Docker-backed tasks carrying the service networkConfiguration, ENI attachment and deployment ID in startedBy; networkConfiguration required when the task definition's networkMode is awsvpc; deploymentController defaults to ECS; failed placements are recorded as service events and a FAILED rollout when a deploymentCircuitBreaker is enabled | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html) |
| `CreateTaskSet` | ✅ Supported | Requires CODE_DEPLOY or EXTERNAL deployment controller; Scale defaults to 100%; ComputedDesiredCount calculated from scale | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateTaskSet.html) |
| `DeleteAccountSetting` | ✅ Supported | Removes override; subsequent reads return the hardcoded default | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAccountSetting.html) |
| `DeleteAttributes` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteAttributes.html) |
| `DeleteCluster` | ✅ Supported | Sets status INACTIVE | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteCluster.html) |
| `DeleteService` | ✅ Supported | Sets DRAINING, desired=0; reconciler stops excess tasks | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteService.html) |
| `DeleteTaskSet` | ✅ Supported | Returns DRAINING status; removes from service task set list | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeleteTaskSet.html) |
| `DeregisterContainerInstance` | ✅ Supported | Removes from store; returns INACTIVE instance | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterContainerInstance.html) |
| `DeregisterTaskDefinition` | ✅ Supported | Marks INACTIVE | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DeregisterTaskDefinition.html) |
| `DescribeCapacityProviders` | ✅ Supported | Filter by name or return all; failures array for missing providers | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeCapacityProviders.html) |
| `DescribeClusters` | ✅ Supported | By name or ARN; returns failures for missing | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeClusters.html) |
| `DescribeContainerInstances` | ✅ Supported | By ARN; failures array for missing | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeContainerInstances.html) |
| `DescribeServices` | ✅ Supported | By name or ARN; recounts task state; returns failures for missing | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeServices.html) |
| `DescribeTaskDefinition` | ✅ Supported | By family, family:rev, or ARN | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskDefinition.html) |
| `DescribeTaskSets` | ✅ Supported | Filter by task set ID or ARN; returns failures for missing | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTaskSets.html) |
| `DescribeTasks` | ✅ Supported | By task ID or ARN; returns failures for missing | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html) |
| `DiscoverPollEndpoint` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DiscoverPollEndpoint.html) |
| `ExecuteCommand` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ExecuteCommand.html) |
| `ListAccountSettings` | ✅ Supported | Returns all known settings with effective values; filter by name; hardcoded defaults | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAccountSettings.html) |
| `ListAttributes` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAttributes.html) |
| `ListClusters` | ✅ Supported |  | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListClusters.html) |
| `ListContainerInstances` | ✅ Supported | Filter by cluster and optional status | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListContainerInstances.html) |
| `ListServices` | ✅ Supported | Filter by cluster; optional launchType filter | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListServices.html) |
| `ListTagsForResource` | ✅ Supported | List tags for an ECS resource | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTagsForResource.html) |
| `ListTaskDefinitionFamilies` | ✅ Supported | Optional familyPrefix filter | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitionFamilies.html) |
| `ListTaskDefinitions` | ✅ Supported | Optional familyPrefix filter | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTaskDefinitions.html) |
| `ListTasks` | ✅ Supported | Filter by cluster, desiredStatus, family | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListTasks.html) |
| `PutAccountSetting` | ✅ Supported | Stores override for the caller; no per-principal scoping in emulator | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) |
| `PutAccountSettingDefault` | ✅ Supported | Identical to PutAccountSetting in emulator (no principal distinction) | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html) |
| `PutAttributes` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAttributes.html) |
| `PutClusterCapacityProviders` | ✅ Supported | Associates providers and default strategy with a cluster | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutClusterCapacityProviders.html) |
| `RegisterContainerInstance` | ✅ Supported | Metadata-only; auto-generates ARN; status ACTIVE; agentConnected true | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterContainerInstance.html) |
| `RegisterTaskDefinition` | ✅ Supported | Family:revision versioning; Fargate: validates awsvpc networkMode, cpu/memory required with valid combos, rejects host.sourcePath and dockerVolumeConfiguration as AWS does; all four volume shapes honoured at placement (EFS, host.sourcePath binds, dockerVolumeConfiguration, name-only scratch); tags stored against the revision's ARN, including overcast:hot-reload-path | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RegisterTaskDefinition.html) |
| `RunTask` | ✅ Supported | Docker-backed when available, metadata-only when no container runtime is wired; a task whose containers fail to start is STOPPED with stopCode TaskFailedToStart rather than reported RUNNING; async state transitions; networkConfiguration required when the task definition's networkMode is awsvpc, synthetic ENI attachment returned, platformVersion defaults to LATEST; awsvpc task containers share one network namespace and address; each lastStatus transition emits an ECS Task State Change event to the default EventBridge bus; emulator-only and off by default, a task definition tagged overcast:debug=true (or overcast:debug/<container>=true) under OVERCAST_ECS_DEBUGGER=true gets a step debugger port per named container, published on the task's network namespace and released when the task stops — never observable on the AWS API, and a second running task of the same definition runs undebugged (#1939) | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html) |
| `StartTask` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StartTask.html) |
| `StopTask` | ✅ Supported | Stops Docker containers; sets STOPPED with stopCode UserInitiated; cancels pending transitions; emits an ECS Task State Change event to the default EventBridge bus | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_StopTask.html) |
| `TagResource` | ✅ Supported | Add tags to any ECS resource by ARN | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_TagResource.html) |
| `UntagResource` | ✅ Supported | Remove tags by key | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UntagResource.html) |
| `UpdateCapacityProvider` | ✅ Supported | Rejects updates to built-in FARGATE/FARGATE_SPOT providers | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateCapacityProvider.html) |
| `UpdateCluster` | ✅ Supported | Validates cluster exists; returns current state | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateCluster.html) |
| `UpdateClusterSettings` | ✅ Supported | Accepts settings array (metadata only) | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateClusterSettings.html) |
| `UpdateContainerAgent` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateContainerAgent.html) |
| `UpdateContainerInstancesState` | ❌ Unsupported | stub; returns 501 | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateContainerInstancesState.html) |
| `UpdateService` | ✅ Supported | Update desiredCount and/or taskDefinition; task definition changes and forceNewDeployment start a new deployment whose tasks refresh launch-time secrets and mutable image tags; propagates networkConfiguration/platformVersion; the rollout honours deploymentConfiguration maximumPercent/minimumHealthyPercent | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) |
| `UpdateServicePrimaryTaskSet` | ✅ Supported | Promotes target to PRIMARY; demotes all other task sets to ACTIVE | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateServicePrimaryTaskSet.html) |
| `UpdateTaskSet` | ✅ Supported | Updates Scale and recalculates ComputedDesiredCount | [docs](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateTaskSet.html) |

## Related

- [ECS](/docs/services/ecs/index.md) — quick start, what works, and the differences from AWS
- [All service pages](/docs/services/index.md)

<!-- END overcast:capabilities -->
