# AWS CodePipeline

> Run, approve, retry and roll back AWS CodePipeline pipelines, and create, update and inspect them.

App · 20 actions. Web page: https://docs.lodol.com/docs/integrations/aws-codepipeline

## Actions

### Approve or reject

Approve or reject a manual approval that is waiting. The approval token is looked up for you; set 'Wait up to' to wait for a run to reach the approval.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Stage (`stage_name`, text, required): Pick one of the pipeline's stages (names are case-sensitive).
- Approval action (`action_name`, text, required): The manual approval action in that stage.
- Decision (`status`, text, required): Approve, or reject (which fails the stage). One of: `Approved` (Approve), `Rejected` (Reject). Default: `Approved`.
- Comment (`summary`, text): A comment recorded with the decision (up to 512 characters).
- Approval token (`token`, text): Leave empty to use the approval waiting now. Only needed in PARALLEL mode: the approval's external execution id from List action executions.
- Wait up to (seconds) (`wait_seconds`, number): Wait up to this many seconds (0-120). Leave empty not to wait. From 0 to 120.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "action_name": "Approval",
    "approved_at": "2026-10-12T09:04:00Z",
    "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
    "pipeline_name": "my-app-release",
    "stage_name": "Approve",
    "status": "Approved",
    "token": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
  }
}
```

### Create pipeline

Create a pipeline from a declaration - for example a copy of another pipeline's, from Get pipeline. AWS starts its first run straight away. The service role and the S3 artifact bucket must already exist in this region.

**Inputs**

- Pipeline declaration (`pipeline`, object, required): The pipeline declaration as JSON: name, roleArn, artifactStore and stages, in AWS's own format. The easiest source is the 'pipeline' field of Get pipeline.
- Name (`pipeline_name`, text): A name for the new pipeline, overriding the declaration's. Letters, digits and . @ - _ only.
- Pipeline type (`pipeline_type`, text): V2 supports variables, triggers, rollback and the queued and parallel modes. Leave empty for V2 unless the declaration says otherwise. One of: `V2` (V2 (recommended)), `V1` (V1 (legacy)).
- Execution mode (`execution_mode`, text): How runs that overlap are handled. Leave empty to keep the declaration's. One of: `SUPERSEDED` (Superseded - a newer run replaces a waiting one), `QUEUED` (Queued - runs wait their turn (V2)), `PARALLEL` (Parallel - runs never wait for each other (V2)).
- Tags (`tags`, object): Tags for the pipeline, as key: value.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "arn": null,
    "artifact_store_location": "codepipeline-us-east-1-artifacts",
    "created": null,
    "execution_mode": "SUPERSEDED",
    "name": "my-app-release",
    "pipeline": {
      "artifactStore": {
        "location": "codepipeline-us-east-1-artifacts",
        "type": "S3"
      },
      "executionMode": "SUPERSEDED",
      "name": "my-app-release",
      "pipelineType": "V2",
      "roleArn": "arn:aws:iam::123456789012:role/service-role/AWSCodePipelineServiceRole-us-east-1-my-app-release",
      "stages": [
        {
          "actions": [
            {
              "actionTypeId": {
                "category": "Source",
                "owner": "AWS",
                "provider": "S3",
                "version": "1"
              },
              "configuration": {
                "PollForSourceChanges": "false",
                "S3Bucket": "my-app-source",
                "S3ObjectKey": "release.zip"
              },
              "name": "Source",
              "outputArtifacts": [
                {
                  "name": "SourceOutput"
                }
              ]
            }
          ],
          "name": "Source"
        },
        {
          "actions": [
            {
              "actionTypeId": {
                "category": "Approval",
                "owner": "AWS",
                "provider": "Manual",
                "version": "1"
              },
              "name": "Approval"
            }
          ],
          "name": "Approve"
        }
      ],
      "version": 1
    },
    "pipeline_type": "V2",
    "polling_disabled_at": null,
    "role_arn": "arn:aws:iam::123456789012:role/service-role/AWSCodePipelineServiceRole-us-east-1-my-app-release",
    "stage_count": 2,
    "stage_names": [
      "Source",
      "Approve"
    ],
    "tags": {
      "team": "release"
    },
    "updated": null,
    "variable_names": [],
    "version": 1
  }
}
```

### Delete pipeline

Delete a pipeline. There is no undo; its artifacts in S3 are left in place.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "deleted": true,
    "pipeline_name": "my-app-release"
  }
}
```

### Disable stage transition

Hold executions before (Inbound) or after (Outbound) a stage until the transition is enabled again.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Stage (`stage_name`, text, required): Pick one of the pipeline's stages (names are case-sensitive).
- Transition (`transition_type`, text, required): Which side of the stage: into it, or out of it. One of: `Inbound` (Inbound - into the stage), `Outbound` (Outbound - out of the stage). Default: `Inbound`.
- Reason (`reason`, text, required): Why, shown in the console (up to 300 characters). Letters, digits, spaces and ! @ ( ) . * ? - only - no commas, colons or apostrophes.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "enabled": false,
    "pipeline_name": "my-app-release",
    "reason": "Release freeze",
    "stage_name": "Approve",
    "transition_type": "Inbound"
  }
}
```

### Enable stage transition

Let executions flow into or out of a stage again.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Stage (`stage_name`, text, required): Pick one of the pipeline's stages (names are case-sensitive).
- Transition (`transition_type`, text, required): Which side of the stage: into it, or out of it. One of: `Inbound` (Inbound - into the stage), `Outbound` (Outbound - out of the stage). Default: `Inbound`.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "enabled": true,
    "pipeline_name": "my-app-release",
    "stage_name": "Approve",
    "transition_type": "Inbound"
  }
}
```

### Get pipeline

Read a pipeline's structure - its stages, actions, role and artifact store - plus its ARN. The 'pipeline' field can be edited and passed to Update pipeline.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Version (`version`, number): An earlier version to read. Leave empty for the current one. At least 1.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "arn": "arn:aws:codepipeline:us-east-1:123456789012:my-app-release",
    "artifact_store_location": "codepipeline-us-east-1-artifacts",
    "created": "2026-10-12T09:00:00Z",
    "execution_mode": "SUPERSEDED",
    "name": "my-app-release",
    "pipeline": {
      "artifactStore": {
        "location": "codepipeline-us-east-1-artifacts",
        "type": "S3"
      },
      "executionMode": "SUPERSEDED",
      "name": "my-app-release",
      "pipelineType": "V2",
      "roleArn": "arn:aws:iam::123456789012:role/service-role/AWSCodePipelineServiceRole-us-east-1-my-app-release",
      "stages": [
        {
          "actions": [
            {
              "actionTypeId": {
                "category": "Source",
                "owner": "AWS",
                "provider": "S3",
                "version": "1"
              },
              "configuration": {
                "PollForSourceChanges": "false",
                "S3Bucket": "my-app-source",
                "S3ObjectKey": "release.zip"
              },
              "name": "Source",
              "outputArtifacts": [
                {
                  "name": "SourceOutput"
                }
              ]
            }
          ],
          "name": "Source"
        },
        {
          "actions": [
            {
              "actionTypeId": {
                "category": "Approval",
                "owner": "AWS",
                "provider": "Manual",
                "version": "1"
              },
              "name": "Approval"
            }
          ],
          "name": "Approve"
        }
      ],
      "version": 1
    },
    "pipeline_type": "V2",
    "polling_disabled_at": null,
    "role_arn": "arn:aws:iam::123456789012:role/service-role/AWSCodePipelineServiceRole-us-east-1-my-app-release",
    "stage_count": 2,
    "stage_names": [
      "Source",
      "Approve"
    ],
    "updated": "2026-10-12T09:00:00Z",
    "variable_names": [],
    "version": 1
  }
}
```

### Get pipeline execution

Read one execution's status, trigger, source revisions and variables. Optionally wait (up to two minutes) for it to finish.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Execution id (`pipeline_execution_id`, text, required): The execution's id, from Start pipeline execution or List pipeline executions.
- Wait up to (seconds) (`wait_seconds`, number): Wait up to this many seconds (0-120). Leave empty not to wait. From 0 to 120.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "artifact_revisions": [
      {
        "created": "2026-10-12T08:55:00Z",
        "name": "SourceOutput",
        "revision_change_identifier": null,
        "revision_id": "3sLkYxFq1bS0Qd5u2vKcTz7mWnE8pRaG",
        "revision_summary": null,
        "revision_url": null
      }
    ],
    "execution_mode": "SUPERSEDED",
    "execution_type": "STANDARD",
    "finished": true,
    "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
    "pipeline_name": "my-app-release",
    "pipeline_version": 1,
    "rollback_target_pipeline_execution_id": null,
    "status": "Succeeded",
    "status_summary": null,
    "trigger_detail": "arn:aws:iam::123456789012:user/lodol",
    "trigger_type": "StartPipelineExecution",
    "variables": {}
  }
}
```

### Get pipeline state

Read the live status of every stage and action, which transitions are disabled, and any manual approvals waiting.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "created": "2026-10-12T09:00:00Z",
    "pending_approvals": [
      {
        "action_name": "Approval",
        "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
        "since": "2026-10-12T09:01:00Z",
        "stage_name": "Approve",
        "token": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
      }
    ],
    "pipeline_name": "my-app-release",
    "pipeline_version": 1,
    "stages": [
      {
        "actions": [
          {
            "action_execution_id": "9d8c7b6a-5f4e-4d3c-2b1a-0f9e8d7c6b5a",
            "action_name": "Approval",
            "current_revision_id": null,
            "entity_url": null,
            "error_code": null,
            "error_message": null,
            "external_execution_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
            "external_execution_url": null,
            "last_status_change": "2026-10-12T09:01:00Z",
            "last_updated_by": null,
            "log_stream_arn": null,
            "percent_complete": null,
            "revision_url": null,
            "status": "InProgress",
            "summary": null,
            "token": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
          }
        ],
        "conditions": {
          "before_entry": null,
          "on_failure": null,
          "on_success": null
        },
        "execution_type": "STANDARD",
        "inbound_execution_ids": [],
        "inbound_transition_disabled_reason": null,
        "inbound_transition_enabled": true,
        "inbound_transition_last_changed_at": null,
        "inbound_transition_last_changed_by": null,
        "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
        "retry": null,
        "stage_name": "Approve",
        "status": "InProgress"
      }
    ],
    "updated": "2026-10-12T09:00:00Z"
  }
}
```

### List action executions

List each action's runs in a pipeline - inputs, outputs, errors and log links - optionally for one execution.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Execution id (`pipeline_execution_id`, text): Only this execution's action runs. Leave empty for all.
- Page size (`max_results`, number): At most this many per page (1-100). From 1 to 100.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "action_executions": [
      {
        "action_execution_id": "9d8c7b6a-5f4e-4d3c-2b1a-0f9e8d7c6b5a",
        "action_name": "Approval",
        "category": "Approval",
        "configuration": {},
        "error_code": null,
        "error_message": null,
        "external_execution_id": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
        "external_execution_summary": "Approved by lodol",
        "external_execution_url": null,
        "input_artifacts": [],
        "last_update_time": "2026-10-12T09:04:00Z",
        "log_stream_arn": null,
        "namespace": null,
        "output_artifacts": [],
        "output_variables": {},
        "owner": "AWS",
        "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
        "pipeline_version": 1,
        "provider": "Manual",
        "provider_version": "1",
        "region": "us-east-1",
        "resolved_configuration": {},
        "role_arn": null,
        "stage_name": "Approve",
        "start_time": "2026-10-12T09:01:00Z",
        "status": "Succeeded",
        "updated_by": "arn:aws:iam::123456789012:user/lodol"
      }
    ],
    "count": 1,
    "has_more": false,
    "next_token": null
  }
}
```

### List action types

List the action providers a pipeline can use (S3, CodeBuild, Manual ...) with the configuration keys each takes.

**Inputs**

- Owner (`action_owner_filter`, text): Only action types from this owner. One of: `AWS`, `ThirdParty` (Third party), `Custom`.
- Region (`region_filter`, text): Only action types available in this region, e.g. us-west-2. Leave empty for the connected region.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "action_types": [
      {
        "category": "Approval",
        "configuration_properties": [],
        "entity_url_template": null,
        "execution_url_template": null,
        "input_artifacts_maximum": 0,
        "input_artifacts_minimum": 0,
        "output_artifacts_maximum": 0,
        "output_artifacts_minimum": 0,
        "owner": "AWS",
        "provider": "Manual",
        "revision_url_template": null,
        "third_party_configuration_url": null,
        "version": "1"
      }
    ],
    "count": 1,
    "has_more": false,
    "next_token": null
  }
}
```

### List pipeline executions

List a pipeline's executions, newest first (the last 12 months), optionally only those that succeeded in a stage.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Succeeded in stage (`succeeded_in_stage`, text): Only executions that succeeded in this stage (V2; useful to find a rollback target).
- Page size (`max_results`, number): At most this many per page (1-100). From 1 to 100.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "executions": [
      {
        "execution_mode": "SUPERSEDED",
        "execution_type": "STANDARD",
        "last_update_time": "2026-10-12T09:05:00Z",
        "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
        "rollback_target_pipeline_execution_id": null,
        "source_revisions": [],
        "start_time": "2026-10-12T09:00:00Z",
        "status": "Succeeded",
        "status_summary": null,
        "stop_reason": null,
        "trigger_detail": "arn:aws:iam::123456789012:user/lodol",
        "trigger_type": "StartPipelineExecution"
      }
    ],
    "has_more": false,
    "next_token": null
  }
}
```

### List pipeline tags

Read a pipeline's tags.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name or paste its ARN.
- Page size (`max_results`, number): At most this many per page (1-100). From 1 to 100.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "has_more": false,
    "next_token": null,
    "resource_arn": "arn:aws:codepipeline:us-east-1:123456789012:my-app-release",
    "tags": {
      "team": "release"
    }
  }
}
```

### List pipelines

List the pipelines in the connected region.

**Inputs**

- Page size (`max_results`, number): At most this many per page (1-1000). From 1 to 1000.
- Next token (`next_token`, text): The 'next_token' from a previous page, to read the next one.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "has_more": false,
    "next_token": null,
    "pipelines": [
      {
        "created": "2026-10-12T09:00:00Z",
        "execution_mode": "SUPERSEDED",
        "name": "my-app-release",
        "pipeline_type": "V2",
        "updated": "2026-10-12T09:00:00Z",
        "version": 1
      }
    ]
  }
}
```

### Remove pipeline tags

Remove tags from a pipeline by key.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name or paste its ARN.
- Tag keys (`tag_keys`, list, required): The tag keys to remove.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "resource_arn": "arn:aws:codepipeline:us-east-1:123456789012:my-app-release",
    "tag_keys": [
      "team"
    ]
  }
}
```

### Retry stage

Re-run a stage whose latest run failed, without starting the pipeline again.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Stage (`stage_name`, text, required): Pick one of the pipeline's stages (names are case-sensitive).
- Retry (`retry_mode`, text, required): Re-run only the failed actions, or the whole stage. A rejected manual approval is only retryable with 'Every action in the stage'. One of: `FAILED_ACTIONS` (Only the failed actions), `ALL_ACTIONS` (Every action in the stage). Default: `FAILED_ACTIONS`.
- Execution id (`pipeline_execution_id`, text): The stage's execution to retry. Leave empty for its latest one - the only one AWS lets you retry.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
    "pipeline_name": "my-app-release",
    "retry_mode": "FAILED_ACTIONS",
    "stage_name": "Deploy"
  }
}
```

### Roll back stage

Re-run a stage with the artifacts of an earlier execution that succeeded in it (V2 pipelines; not source stages). List pipeline executions with 'Succeeded in stage' finds one.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Stage (`stage_name`, text, required): Pick one of the pipeline's stages (names are case-sensitive).
- Roll back to execution (`target_pipeline_execution_id`, text, required): The earlier execution to roll back to. It must have succeeded in this stage on the current pipeline version.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "pipeline_execution_id": "0f1e2d3c-4b5a-4968-8776-655443322110",
    "pipeline_name": "my-app-release",
    "stage_name": "Deploy",
    "target_pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab"
  }
}
```

### Start pipeline execution

Run a pipeline with the latest source, or with a pinned source revision. Variables and pinned revisions need a V2 pipeline.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Variables (`variables`, object): Values for the pipeline's variables, as name: value (V2 only). Values cannot be empty.
- Source action (`source_action_name`, text): To pin a revision: the source action to pin, for example 'Source'.
- Revision type (`revision_type`, text): To pin a revision: what kind of revision it is. One of: `COMMIT_ID` (Commit id), `IMAGE_DIGEST` (Container image digest), `S3_OBJECT_VERSION_ID` (S3 object version id), `S3_OBJECT_KEY` (S3 object key).
- Revision (`revision_value`, text): To pin a revision: the commit id, digest or S3 value.
- Idempotency token (`client_request_token`, text): Optional: a unique value (letters, digits, '-') so a retried step does not start a second run.

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
    "pipeline_name": "my-app-release"
  }
}
```

### Stop pipeline execution

Stop a running execution. By default running actions finish first; Abandon stops at once, which can leave work half done.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name.
- Execution id (`pipeline_execution_id`, text, required): The execution's id, from Start pipeline execution or List pipeline executions.
- Abandon (`abandon`, true/false): Stop immediately without waiting for running actions. This can lead to failed or out-of-sequence tasks. Default: `false`.
- Reason (`reason`, text): Why it was stopped (up to 200 characters).

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "abandoned": false,
    "pipeline_execution_id": "c2e4b4a6-1f2d-4c6e-9e1a-0123456789ab",
    "pipeline_name": "my-app-release",
    "stop_requested": true
  }
}
```

### Tag pipeline

Add tags to a pipeline. A key it already has gets the new value.

**Inputs**

- Pipeline (`pipeline_name`, text, required): Pick a pipeline, or type its name or paste its ARN.
- Tags (`tags`, object, required): The tags to add, as key: value (up to 50).

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "count": 1,
    "resource_arn": "arn:aws:codepipeline:us-east-1:123456789012:my-app-release",
    "tags": {
      "team": "release"
    }
  }
}
```

### Update pipeline

Replace a pipeline's whole structure with the declaration given; its version goes up by one. Start from the 'pipeline' field of Get pipeline and change what you need.

**Inputs**

- Pipeline declaration (`pipeline`, object, required): The pipeline declaration as JSON: name, roleArn, artifactStore and stages, in AWS's own format. The easiest source is the 'pipeline' field of Get pipeline.
- Pipeline type (`pipeline_type`, text): Change the pipeline type. Leave empty to keep the declaration's. One of: `V2` (V2 (recommended)), `V1` (V1 (legacy)).
- Execution mode (`execution_mode`, text): How runs that overlap are handled. Leave empty to keep the declaration's. One of: `SUPERSEDED` (Superseded - a newer run replaces a waiting one), `QUEUED` (Queued - runs wait their turn (V2)), `PARALLEL` (Parallel - runs never wait for each other (V2)).

**Outputs**

- `result` (object)

**Example output**

```json
{
  "result": {
    "arn": null,
    "artifact_store_location": "codepipeline-us-east-1-artifacts",
    "created": null,
    "execution_mode": "SUPERSEDED",
    "name": "my-app-release",
    "pipeline": {
      "artifactStore": {
        "location": "codepipeline-us-east-1-artifacts",
        "type": "S3"
      },
      "executionMode": "SUPERSEDED",
      "name": "my-app-release",
      "pipelineType": "V2",
      "roleArn": "arn:aws:iam::123456789012:role/service-role/AWSCodePipelineServiceRole-us-east-1-my-app-release",
      "stages": [
        {
          "actions": [
            {
              "actionTypeId": {
                "category": "Source",
                "owner": "AWS",
                "provider": "S3",
                "version": "1"
              },
              "configuration": {
                "PollForSourceChanges": "false",
                "S3Bucket": "my-app-source",
                "S3ObjectKey": "release.zip"
              },
              "name": "Source",
              "outputArtifacts": [
                {
                  "name": "SourceOutput"
                }
              ]
            }
          ],
          "name": "Source"
        },
        {
          "actions": [
            {
              "actionTypeId": {
                "category": "Approval",
                "owner": "AWS",
                "provider": "Manual",
                "version": "1"
              },
              "name": "Approval"
            }
          ],
          "name": "Approve"
        }
      ],
      "version": 2
    },
    "pipeline_type": "V2",
    "polling_disabled_at": null,
    "role_arn": "arn:aws:iam::123456789012:role/service-role/AWSCodePipelineServiceRole-us-east-1-my-app-release",
    "stage_count": 2,
    "stage_names": [
      "Source",
      "Approve"
    ],
    "updated": null,
    "variable_names": [],
    "version": 2
  }
}
```
