canonical: https://jentic.com/apis/amazonaws.com/aws-opsworks

# AWS OpsWorks

Jentic publishes the only available OpenAPI specification for AWS OpsWorks, keeping it validated and agent-ready. AWS OpsWorks Stacks is a Chef-based configuration-management service for application stacks on EC2 - Stacks group Layers (web, app, db), each Layer hosts Instances, and Apps deploy code via Chef recipes. The 74 endpoints cover CRUD on Stacks, Layers, Instances and Apps, Deployments and lifecycle commands (start/stop/restart), Elastic IPs, Volumes, RDS instance attachment, ECS cluster registration, plus user permissions, time/load-based instance scaling and stack summaries.

## For AI agents

Manage Chef-based application stacks on EC2 - provision stacks, layers, instances, deploy apps, run Chef recipes, and orchestrate time- and load-based scaling.

## Scope

Does not handle source-code building, container orchestration, or serverless deployment - use for Chef-driven OpsWorks Stacks lifecycle, deployments, and instance scaling only.

## Capabilities

- Provision Stacks on top of a VPC and define Layers (web, app, db, custom) with per-layer Chef recipes
- Add EC2 instances to layers and manage their lifecycle with start, stop, restart and reboot calls
- Deploy Apps to a stack via Deployments that run setup, configure, deploy and shutdown Chef recipes
- Attach Elastic IPs, EBS volumes, RDS instances, and ECS clusters to a stack as managed resources
- Configure time-based and load-based auto-scaling for instances inside a layer
- Manage stack-level IAM users and per-stack permissions for SSH and sudo access
- Query stack summaries, deployment history, and per-instance Chef run output for audit

## Use cases

### Manage Long-Running Chef-Based Application Stacks

Operations teams that already run Chef cookbooks for their applications can use OpsWorks Stacks as the managed orchestrator. CreateStack, CreateLayer, CreateInstance, and CreateApp wire up a full deployment topology with built-in recipes for Rails, Node.js, PHP, Java and static layers, plus support for arbitrary custom recipes referenced from S3 or git. The agent can then call CreateDeployment to roll out new app versions through the standard Chef lifecycle.

Example prompt: Call CreateStack with a VpcId and Chef configuration, CreateLayer with Type=rails-app, CreateInstance and CreateApp, then CreateDeployment with Command.Name=deploy

### Lifecycle Control for Instances Across a Stack

Cost and reliability work needs the ability to stop and restart whole environments out-of-hours or after configuration changes. OpsWorks exposes per-instance and stack-level lifecycle commands - StartStack, StopStack, RebootInstance, RestartInstance - and surfaces the resulting Chef run state via DescribeInstances. An agent can pause non-production stacks at end of day and bring them back up the following morning to save EC2 costs.

Example prompt: Call StopStack on the dev stack at 19:00, then StartStack at 07:00 the next morning, polling DescribeInstances until Status=online

### Automate Migration Off OpsWorks Stacks

AWS has announced End-of-Life for OpsWorks Stacks, so existing customers need an inventory and migration path. The DescribeStacks, DescribeLayers, DescribeInstances and DescribeApps endpoints give a full inventory that an agent can read, transform into Systems Manager or CloudFormation equivalents, and use to drive a phased migration. The same endpoints support audit reporting on what is still running on the OpsWorks platform.

Example prompt: Call DescribeStacks, then for each stack call DescribeLayers, DescribeInstances and DescribeApps, and write a CSV mapping each component to its target replacement service

### AI Agent Integration for Stack Operations

Through Jentic, an agent can drive OpsWorks Stacks from natural-language intents - provision, deploy, lifecycle, audit - without learning the per-resource layout of the API. Jentic returns each operation's input schema and brokers SigV4 credentials, so legacy Chef-based estates can be inventoried, paused and migrated with LLM tool calls.

Example prompt: Resolve the intent 'deploy an app to an OpsWorks stack' via Jentic search, load CreateDeployment, and execute it with stackId, appId and Command.Name=deploy

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /#X-Amz-Target=OpsWorks_20130218.CreateStack | Create a new OpsWorks stack |
| POST | /#X-Amz-Target=OpsWorks_20130218.CreateLayer | Add a layer to a stack |
| POST | /#X-Amz-Target=OpsWorks_20130218.CreateInstance | Register an EC2 instance under a layer |
| POST | /#X-Amz-Target=OpsWorks_20130218.CreateApp | Define an app to deploy to a stack |
| POST | /#X-Amz-Target=OpsWorks_20130218.CreateDeployment | Run a Chef command across a stack |
| POST | /#X-Amz-Target=OpsWorks_20130218.StartStack | Start all instances in a stack |
| POST | /#X-Amz-Target=OpsWorks_20130218.StopStack | Stop all instances in a stack |
| POST | /#X-Amz-Target=OpsWorks_20130218.DescribeInstances | Describe instances by stack, layer, or id |

## Key resources

- **Stacks** — Top-level grouping that holds layers, instances, and apps for a single application environment
- **Layers** — Role-based groupings (web, app, db, custom) with per-layer Chef recipes and security settings
- **Instances** — EC2 instances assigned to a layer, with lifecycle commands and Chef run history
- **Apps** — Application code deployed to a stack via Chef-driven deployments
- **Deployments** — Per-stack runs of Chef commands (deploy, undeploy, configure, restart)
- **Volumes and Elastic IPs** — EBS volumes and Elastic IPs registered to and managed by a stack
- **RDS Database Instances** — External RDS instances attached to a stack and exposed to apps
- **User Profiles and Permissions** — IAM-linked users and per-stack permissions for SSH and sudo access
- **Time- and Load-Based Auto Scaling** — Schedule-driven and metric-driven scaling rules per layer

## Why Jentic

- **Setup:** Wiring OpsWorks by hand means implementing AWS SigV4 signing, targeting the regional host such as opsworks.us-east-1.amazonaws.com, and polling DescribeInstances while Chef runs converge rather than retrying the create call. Through Jentic you install once, import AWS OpsWorks from the API Directory, store the AWS access key once, and your agent calls it.
- **Permission scoping:** OpsWorks carries stack, layer, and instance ids in the request body rather than the URL path, so scoping is by operation, not by path prefix. Limit the agent to the operations it needs, such as DescribeStacks and CreateDeployment, so ones like DeleteStack or DeleteInstance are not included unless you add them.
- **Credential handling:** Your AWS access key is stored once, encrypted, by your own Jentic One instance and used to sign each OpsWorks request with SigV4 at execution time. The raw secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'deploy an app to an OpsWorks stack' or 'stop an OpsWorks stack overnight', and Jentic returns the matching OpsWorks operation such as CreateDeployment with its input schema so the agent calls the right endpoint without browsing the AWS reference.

## Related APIs

- **AWS OpsWorks for Chef Automate / Puppet Enterprise** — OpsWorks CM hosts managed Chef Automate or Puppet Enterprise servers rather than the OpsWorks Stacks abstraction
- **Amazon EC2** — EC2 hosts the underlying instances that an OpsWorks stack registers and lifecycles
- **AWS CodeDeploy** — CodeDeploy is AWS's modern application-deployment service for EC2, Lambda, and ECS targets
- **Amazon EC2 Auto Scaling** — EC2 Auto Scaling provides modern scaling primitives that replace OpsWorks time- and load-based scaling

## FAQ

### Why is there no official OpenAPI spec for AWS OpsWorks?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call AWS OpsWorks 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 AWS OpsWorks API use?

OpsWorks is signed with AWS Signature Version 4 using IAM access keys. Each stack additionally has its own permissions model - SetPermission grants a user SSH and sudo access on instances inside a stack. Through Jentic, AWS credentials live in your Jentic One instance and are used to sign each control-plane call on the agent's behalf.

### Can I deploy an app across all instances with a single API call?

Yes. CreateDeployment takes a stackId, an optional appId, an optional list of instanceIds, and a Command (Name=deploy, undeploy, configure, restart, execute_recipes, etc.). If you omit instanceIds, OpsWorks runs the command across the whole stack and returns a deploymentId you can poll with DescribeDeployments.

### What are the rate limits for OpsWorks?

OpsWorks applies per-account throttling on the control plane. Long-running operations like CreateInstance + StartInstance run Chef recipes that can take several minutes per instance, so always poll DescribeInstances rather than retrying the create call.

### How do I deploy an app through Jentic?

Use the Jentic search query 'deploy an OpsWorks app', load CreateDeployment, and execute it with stackId, appId and Command.Name=deploy. Jentic signs the request with SigV4 against your stored AWS credentials and returns the deploymentId, which the agent can then check with DescribeDeployments.

### Is AWS OpsWorks Stacks being deprecated?

AWS has communicated that OpsWorks Stacks will reach End-of-Life. The control-plane API remains available for existing customers, but new workloads should target Systems Manager, CloudFormation, or container-based services. The Describe* endpoints are particularly useful for inventorying existing stacks ahead of migration.

### Can I limit what my agent is allowed to do with the AWS OpsWorks API?

Yes. Jentic One is self-hosted, so the rules you set on your own instance decide which OpsWorks operations and AWS credentials your agent can use. Because OpsWorks carries stack, layer, and instance ids in the request body rather than the URL path, scoping is done per operation rather than by path prefix. You can allow only the operations the agent needs, such as DescribeStacks and CreateDeployment, and leave destructive ones like DeleteStack and DeleteInstance out unless you explicitly add them.
