canonical: https://jentic.com/apis/amazonaws.com/codepipeline

# AWS CodePipeline

Jentic publishes the only available OpenAPI specification for AWS CodePipeline, keeping it validated and agent-ready. CodePipeline orchestrates multi-stage release pipelines with source, build, test, deploy, and approval actions, integrating with CodeCommit, GitHub, S3, ECR, CodeBuild, CodeDeploy, ECS, Lambda, and CloudFormation. The API covers pipelines, stages, executions, action types, webhooks, and manual approvals, so an agent can create pipelines, start executions, retry failed stages, and approve gated transitions.

## For AI agents

Create and operate AWS CodePipeline release pipelines, start executions, retry failed stages, and approve gated transitions. Backed by 39 endpoints covering pipelines, executions, action types, and webhooks.

## Scope

Does not handle source compilation, container builds, or deployment execution itself - use for pipeline definition, execution, and stage approval orchestration only.

## Capabilities

- Create and update CodePipeline pipelines with source, build, test, deploy, and approval actions
- Start, list, and inspect pipeline executions and per-action execution details
- Retry failed stages with RetryStageExecution and approve manual approval actions
- Enable and disable stage transitions to pause or resume pipeline flow
- Register and deregister webhooks that trigger pipelines from external sources
- Define custom action types and put job results from custom action workers
- Tag pipelines for cost allocation and ownership

## Use cases

### End-to-End Release Pipeline Creation

Platform teams use CreatePipeline to define a YAML-style structure of stages and actions that pulls from CodeCommit or GitHub, builds with CodeBuild, runs tests, and deploys via CodeDeploy or CloudFormation. The single API call provisions the full pipeline. UpdatePipeline applies subsequent edits, and GetPipeline returns the current definition for diffing against version control.

Example prompt: Create a pipeline named web-release with three stages: Source from CodeCommit, Build with CodeBuild project web-build, and Deploy with CodeDeploy application web-svc

### Manual Approval Gate Automation

Many production pipelines pause at a manual approval action so a human approves before deployment. PutApprovalResult lets an agent submit the approval (or rejection) along with a comment once external checks pass - for example, a Jira ticket transition, a successful canary, or a security scan result. ListPipelineExecutions and GetPipelineState reveal which approvals are pending so the agent knows where to act.

Example prompt: Approve the manual approval action ProdGate in stage Production of pipeline web-release with comment 'Canary metrics OK'

### Failure Recovery and Stage Retry

When a stage fails on a transient infrastructure issue, RetryStageExecution restarts only the failed actions in that stage without re-running upstream stages. ListActionExecutions returns per-action status with errorDetails so an agent can decide whether retry, skip, or rollback is appropriate. DisableStageTransition pauses the pipeline at a known-good point during incidents.

Example prompt: Retry the failed stage Deploy in pipeline web-release for execution exec-abc with retryMode FAILED_ACTIONS

### AI Agent Integration via Jentic

Through Jentic, an AI agent uses CodePipeline by searching for an intent like 'start a CodePipeline execution', loading the StartPipelineExecution schema, and executing it with a pipeline name. Jentic signs the SigV4 request server-side using IAM credentials in your Jentic One instance.

Example prompt: Search Jentic for 'start a CodePipeline execution', load the StartPipelineExecution schema, and execute it for pipeline web-release

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /#X-Amz-Target=CodePipeline_20150709.CreatePipeline | Create a release pipeline |
| POST | /#X-Amz-Target=CodePipeline_20150709.GetPipeline | Get a pipeline definition |
| POST | /#X-Amz-Target=CodePipeline_20150709.GetPipelineState | Get the current state of every stage |
| POST | /#X-Amz-Target=CodePipeline_20150709.ListPipelineExecutions | List recent executions for a pipeline |
| POST | /#X-Amz-Target=CodePipeline_20150709.GetPipelineExecution | Get details of a single execution |
| POST | /#X-Amz-Target=CodePipeline_20150709.DisableStageTransition | Pause a stage transition |
| POST | /#X-Amz-Target=CodePipeline_20150709.EnableStageTransition | Resume a paused stage transition |
| POST | /#X-Amz-Target=CodePipeline_20150709.ListPipelines | List pipelines in the account |

## Key resources

- **Pipeline** — Create, update, get, delete, and list CodePipeline pipelines
- **Pipeline Execution** — Start and list executions and inspect their per-stage state
- **Stage Transition** — Enable, disable, and retry transitions between stages
- **Approval Action** — Submit approval results for manual approval actions
- **Action Type** — Create, list, and delete custom action types and put job results
- **Webhook** — Register, list, and deregister webhooks from external sources

## Why Jentic

- **Setup:** Wiring AWS CodePipeline by hand means signing every request with AWS Signature v4 HMAC, picking the correct regional host like codepipeline.{region}.amazonaws.com, and dispatching each operation through the X-Amz-Target header instead of a REST path. Through Jentic you install once, import AWS CodePipeline from the API Directory, store the AWS access key and secret once, and your agent calls it.
- **Permission scoping:** CodePipeline routes operations through the X-Amz-Target header and carries the pipeline name in the request body, not the URL path, so scoping is by operation. You limit the agent to the operations it needs, such as StartPipelineExecution or GetPipelineState, so destructive ones like DeletePipeline or DisableStageTransition are not included unless you add them.
- **Credential handling:** Your AWS access key and secret are stored once, encrypted, by your own Jentic One instance and injected at execution time when the request is signed. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start a CodePipeline execution' or 'approve a pipeline action', and Jentic returns the matching CodePipeline operation with its input schema, so the agent calls StartPipelineExecution or PutApprovalResult directly without browsing AWS docs.

## Related APIs

- **AWS CodeDeploy** — CodeDeploy is the deploy action invoked from CodePipeline stages
- **AWS CodeCommit** — CodeCommit is a common source action provider for CodePipeline pipelines
- **CircleCI** — CircleCI provides hosted pipelines with strong GitHub/GitLab integration outside AWS

## FAQ

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

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

CodePipeline uses AWS Signature Version 4 (HMAC) signed requests with an IAM access key and secret. Through Jentic, IAM credentials live encrypted in your Jentic One instance and the SigV4 signature is computed server-side, so the agent context never holds the raw secret.

### Can I approve a manual approval action through the API?

Yes. Call PutApprovalResult with pipelineName, stageName, actionName, the token from GetPipelineState, and a result object containing status (Approved or Rejected) and a summary. The pipeline immediately resumes or terminates based on the status.

### How do I retry a failed stage in a CodePipeline execution?

Call RetryStageExecution with the pipelineName, stageName, pipelineExecutionId, and retryMode FAILED_ACTIONS. CodePipeline restarts only the failed actions in that stage and continues forward when they succeed.

### What are the rate limits for the AWS CodePipeline API?

AWS enforces per-account, per-region throttling on CodePipeline; ListPipelineExecutions and similar list calls are rate-limited per account. Throttled requests return ThrottlingException - the AWS SDKs that Jentic wraps implement exponential backoff automatically.

### How do I start a CodePipeline release through Jentic with an AI agent?

Run pip install jentic, then have the agent search for 'start a CodePipeline execution', load the StartPipelineExecution schema, and execute it with the pipeline name. Poll GetPipelineState for stage status and use PutApprovalResult to clear manual approval gates as criteria are met.

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

Yes. Because CodePipeline routes every operation through the X-Amz-Target header rather than a URL path, your self-hosted Jentic One instance scopes access by operation, and your own rules decide which operations and credentials the agent may use. You can allow only the calls the agent needs, such as StartPipelineExecution or GetPipelineState, so destructive operations like DeletePipeline or DisableStageTransition stay off limits unless you add them. The AWS access key and secret sit encrypted in your instance and are injected only when the signed request runs, so the agent never handles the raw secret.
