canonical: https://jentic.com/apis/azure.com/container-service-client

# Microsoft Azure ContainerServiceClient

Jentic publishes the only available OpenAPI specification for ContainerServiceClient, keeping it validated and agent-ready. The 2017-01-31 Container Service Client manages classic Azure Container Service (ACS) clusters - the pre-AKS managed cluster product that supported DC/OS, Kubernetes, and Docker Swarm orchestrators. Its 5 endpoints cover listing container services in a subscription or resource group, getting a single cluster, and creating, updating, or deleting one. Treat this API as the legacy entry point; new clusters should target AKS via the Container Service (Managed) API.

## For AI agents

Manage classic Azure Container Service clusters across DC/OS, Kubernetes, and Docker Swarm orchestrators - list, get, create, update, and delete.

## Scope

Does not manage AKS clusters, deploy Kubernetes manifests, or run individual containers - use for classic Azure Container Service (pre-AKS) cluster inventory and lifecycle only.

## Capabilities

- List all classic ACS container service clusters in a subscription or resource group
- Get a specific container service cluster by name to inspect orchestrator and agent pool configuration
- Create or update a container service cluster with a chosen orchestrator (DC/OS, Kubernetes, or Swarm)
- Delete an obsolete classic ACS cluster from a resource group
- Audit existing classic clusters before migrating them to AKS

## Use cases

### Audit classic ACS clusters before AKS migration

Teams running pre-AKS Azure Container Service clusters need to know exactly what they have before migrating to AKS. Listing classic container services in each subscription returns orchestrator type (DC/OS, Kubernetes, Swarm), agent pool sizes, and master configuration. The output feeds a migration plan that pairs each legacy cluster with an AKS replacement.

Example prompt: GET /subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/containerServices and emit a CSV of cluster name, orchestrator, and agent pool count.

### Inspect a specific cluster's configuration

Operators investigating an incident or planning a change on a classic ACS cluster fetch its full configuration via the per-cluster GET. The response covers orchestrator profile, master and agent pool VM sizes, custom DNS, SSH keys, and provisioning state - enough to reproduce the cluster on AKS with the same shape.

Example prompt: GET /subscriptions/{subscriptionId}/resourceGroups/ops-rg/providers/Microsoft.ContainerService/containerServices/legacy-cluster and return the orchestratorProfile and agentPoolProfiles.

### Decommission obsolete clusters

After a successful AKS cutover, the classic ACS cluster needs to be deleted to stop billing for its VMs and storage. Issuing DELETE on the container service tears down the master, agent pools, and associated network resources in a single ARM operation. Operators typically chain this after confirming workloads have been redeployed.

Example prompt: DELETE /subscriptions/{subscriptionId}/resourceGroups/ops-rg/providers/Microsoft.ContainerService/containerServices/legacy-cluster and confirm provisioningState becomes Deleted.

### Agent-driven cluster inventory through Jentic

An AI agent integrated through Jentic can walk every subscription, list classic container services, group them by orchestrator type, and emit a migration backlog. Jentic's intent search exposes the right Container Service operation and the AAD token is held in the vault so the agent never sees raw credentials.

Example prompt: Across all subscriptions, list every Microsoft.ContainerService container service and produce a backlog grouped by orchestratorType with each cluster's resourceGroup.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/containerServices | List container services in a subscription |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices | List container services in a resource group |
| GET | /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices/{containerServiceName} | Get a single container service by name |

## Key resources

- **ContainerServices** — List, get, create or update, and delete classic Azure Container Service clusters

## Why Jentic

- **Setup:** Wiring the classic Container Service client by hand means an Azure AD app registration for the OAuth implicit flow against management.azure.com, Reader on the subscription plus Contributor on the resource group, and parsing the legacy per-cluster orchestrator shape yourself. Through Jentic you install once, import ContainerServiceClient from the API Directory, store the Azure AD credential once, and your agent calls it.
- **Permission scoping:** The subscription, resource group, and container service name are all URL path parameters (/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/containerServices/{containerServiceName}), so a rule can pin the agent to one resource group and its classic clusters. You choose the operations it may call, so destructive ones like deleting a cluster or creating a new one are not included unless you add them.
- **Credential handling:** Your Azure AD token for the user_impersonation scope is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list classic Azure Container Service clusters' or 'inspect an ACS cluster configuration', and Jentic returns the matching containerServices operation with its input schema so the agent calls the right endpoint without navigating the Microsoft.ContainerService ARM paths.

## Related APIs

- **Container Instance Management Client** — Serverless container groups for one-shot workloads that don't need a full cluster
- **Container Registry Management Client** — Stores and builds the images that classic ACS clusters pull from
- **Compute Management Client** — Manages the VMs that back the ACS master and agent pools

## FAQ

### Why is there no official OpenAPI spec for ContainerServiceClient?

Microsoft Azure deprecated the classic ACS surface in favour of AKS and does not publish a maintained OpenAPI specification for the 2017-01-31 Container Service Client. Jentic generates and maintains this spec so that AI agents and developers can call ContainerServiceClient via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the ContainerServiceClient use?

It uses Azure Active Directory OAuth 2.0 with the implicit flow at https://login.microsoftonline.com/common/oauth2/authorize and the user_impersonation scope. The caller needs at least Reader on the subscription to list and Contributor on the resource group to create or delete. Through Jentic the AAD token is held in the encrypted vault.

### Can I create new clusters with the ContainerServiceClient?

The 2017-01-31 surface still exposes create-or-update PUT semantics on /providers/Microsoft.ContainerService/containerServices/{name}, but Microsoft has retired classic ACS for new deployments. For new clusters use the AKS-flavoured Container Service Managed Client; use this API only for inventory and decommissioning of existing classic clusters.

### What are the rate limits for the ContainerServiceClient?

ARM applies subscription-level read and write throttling (typically 12,000 reads and 1,200 writes per hour per subscription). Classic ACS clusters do not have separate rate-limit headers beyond the standard ARM 429 behaviour.

### How do I audit classic ACS clusters through Jentic?

Search Jentic for 'list azure container services', load the schema for GET /subscriptions/{subscriptionId}/providers/Microsoft.ContainerService/containerServices, and execute it. Run pip install jentic to get the SDK and pipe the output into your migration backlog.

### Is the ContainerServiceClient free?

Calling the management API itself is free. Costs come from the master and agent pool VMs, attached storage, and load balancers each cluster runs - billing continues until the cluster is deleted.

### Can I limit what my agent is allowed to do with the Azure Container Service API?

Yes. Because you run Jentic One yourself, your own rules decide which Container Service operations the agent may call, so you can expose only the read-only list and get operations and leave out the create-or-update and delete operations unless you add them. The subscription, resource group, and container service name are all URL path parameters, so a rule can pin the agent to a single resource group and its classic clusters. Your Azure AD token is injected at execution time and never enters the agent's prompt or logs.
