Amazon ECR · Arazzo Workflow

Amazon ECR Image Inventory

Version 1.0.0

Describe a repository, list its image IDs with pagination, and fetch image detail.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub Amazon Web ServicesContainer ImagesContainer RegistryContainersDockerECROCIArazzoWorkflows

Provider

amazon-ecr

Workflows

image-inventory
Paginate a repository's image IDs and resolve their detailed manifests.
Confirms the repository exists, walks the ListImages pagination loop to gather image IDs, and resolves detailed manifests through BatchGetImage.
4 steps inputs: maxResults, repositoryName, tagStatus outputs: imageIds, images, repositories
1
confirmRepository
Describe the repository to confirm it is registered before listing its images.
2
listImages
List the image IDs for the repository, applying the optional tag-status filter and page size.
3
listMoreImages
Request the next page of image IDs using the pagination token returned by the previous ListImages call, looping until no token remains.
4
resolveImages
Resolve detailed manifests for the discovered image IDs through BatchGetImage.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Amazon ECR Image Inventory
  summary: Describe a repository, list its image IDs with pagination, and fetch image detail.
  description: >-
    Builds a detailed image inventory for a single Amazon ECR repository. The
    flow describes the repository to confirm it exists, lists its image IDs and
    follows the nextToken pagination loop until every page has been read, and
    then fetches detailed manifests for the discovered images through
    BatchGetImage. The pagination loop branches on the presence of a nextToken to
    decide whether to request another page. Every step spells out its AWS JSON
    request inline, including the documented X-Amz-Target header, so the flow can
    be read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: batchgetimageApi
  url: ../openapi/amazon-ecr-batchgetimage-api-openapi.yml
  type: openapi
- name: describerepositoriesApi
  url: ../openapi/amazon-ecr-describerepositories-api-openapi.yml
  type: openapi
- name: listimagesApi
  url: ../openapi/amazon-ecr-listimages-api-openapi.yml
  type: openapi
workflows:
- workflowId: image-inventory
  summary: Paginate a repository's image IDs and resolve their detailed manifests.
  description: >-
    Confirms the repository exists, walks the ListImages pagination loop to
    gather image IDs, and resolves detailed manifests through BatchGetImage.
  inputs:
    type: object
    required:
    - repositoryName
    properties:
      repositoryName:
        type: string
        description: The repository whose images should be inventoried.
      tagStatus:
        type: string
        enum:
        - TAGGED
        - UNTAGGED
        - ANY
        description: Optional filter limiting the listed images by tag status.
      maxResults:
        type: integer
        description: The maximum number of image results to return per page.
  steps:
  - stepId: confirmRepository
    description: >-
      Describe the repository to confirm it is registered before listing its
      images.
    operationId: describeRepositories
    parameters:
    - name: X-Amz-Target
      in: header
      value: AmazonEC2ContainerRegistry_V20150921.DescribeRepositories
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        repositoryNames:
        - $inputs.repositoryName
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      repositories: $response.body#/repositories
  - stepId: listImages
    description: >-
      List the image IDs for the repository, applying the optional tag-status
      filter and page size.
    operationId: listImages
    parameters:
    - name: X-Amz-Target
      in: header
      value: AmazonEC2ContainerRegistry_V20150921.ListImages
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        repositoryName: $inputs.repositoryName
        maxResults: $inputs.maxResults
        filter:
          tagStatus: $inputs.tagStatus
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      imageIds: $response.body#/imageIds
      nextToken: $response.body#/nextToken
    onSuccess:
    - name: morePages
      type: goto
      stepId: listMoreImages
      criteria:
      - context: $response.body
        condition: $.nextToken != null
        type: jsonpath
    - name: noMorePages
      type: goto
      stepId: resolveImages
      criteria:
      - context: $response.body
        condition: $.nextToken == null
        type: jsonpath
  - stepId: listMoreImages
    description: >-
      Request the next page of image IDs using the pagination token returned by
      the previous ListImages call, looping until no token remains.
    operationId: listImages
    parameters:
    - name: X-Amz-Target
      in: header
      value: AmazonEC2ContainerRegistry_V20150921.ListImages
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        repositoryName: $inputs.repositoryName
        maxResults: $inputs.maxResults
        nextToken: $steps.listImages.outputs.nextToken
        filter:
          tagStatus: $inputs.tagStatus
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      imageIds: $response.body#/imageIds
      nextToken: $response.body#/nextToken
    onSuccess:
    - name: stillMorePages
      type: goto
      stepId: listMoreImages
      criteria:
      - context: $response.body
        condition: $.nextToken != null
        type: jsonpath
    - name: pagesComplete
      type: goto
      stepId: resolveImages
      criteria:
      - context: $response.body
        condition: $.nextToken == null
        type: jsonpath
  - stepId: resolveImages
    description: >-
      Resolve detailed manifests for the discovered image IDs through
      BatchGetImage.
    operationId: batchGetImage
    parameters:
    - name: X-Amz-Target
      in: header
      value: AmazonEC2ContainerRegistry_V20150921.BatchGetImage
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        repositoryName: $inputs.repositoryName
        imageIds: $steps.listImages.outputs.imageIds
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      images: $response.body#/images
      failures: $response.body#/failures
  outputs:
    repositories: $steps.confirmRepository.outputs.repositories
    imageIds: $steps.listImages.outputs.imageIds
    images: $steps.resolveImages.outputs.images

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/amazon-ecr-image-inventory-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.