Apigee Registry API

API for tracking and managing machine-readable descriptions of APIs, including specifications, versions, deployments, and related metadata. This is a legacy API and Google recommends using the Apigee API Hub APIs instead.

Documentation

Specifications

Other Resources

OpenAPI Specification

apigee-registry-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Apigee Registry API
  description: >-
    API for tracking and managing machine-readable descriptions of APIs,
    including specifications, versions, deployments, and related metadata.
    This is a legacy API and Google recommends using the Apigee API Hub
    APIs instead.
  version: 1.0.0
  contact:
    name: Google Cloud Apigee
    url: https://cloud.google.com/apigee/docs/reference/apis/apigeeregistry/rest
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  termsOfService: https://cloud.google.com/terms
externalDocs:
  description: Apigee Registry API Reference Documentation
  url: https://cloud.google.com/apigee/docs/reference/apis/apigeeregistry/rest
servers:
- url: https://apigeeregistry.googleapis.com/v1
  description: Apigee Registry API Production Server
security:
- oauth2: []
tags:
- name: API Deployments
  description: Track API deployment records
- name: API Specs
  description: Manage API specification documents
- name: API Versions
  description: Manage API version records
- name: Artifacts
  description: Manage metadata artifacts
- name: Instances
  description: Manage Registry instances
paths:
  /projects/{projectId}/locations/{locationId}/apis:
    get:
      operationId: listApis
      summary: Apigee List APIs
      description: >-
        Lists all APIs in the specified project and location. Returns
        API metadata including name, display name, description, and labels.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      - name: filter
        in: query
        description: Filter expression to narrow the results.
        schema:
          type: string
      - name: orderBy
        in: query
        description: Field to order results by.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with list of APIs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApisResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createApi
      summary: Apigee Create an API
      description: >-
        Creates a new API entry in the registry. An API represents a
        logical grouping of related API versions.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: apiId
        in: query
        description: Required. The ID to use for the API.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Api'
      responses:
        '200':
          description: Successful response with the created API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Api'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '409':
          $ref: '#/components/responses/Conflict'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}:
    get:
      operationId: getApi
      summary: Apigee Get an API
      description: >-
        Gets the details of a specific API entry in the registry.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      responses:
        '200':
          description: Successful response with API details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Api'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateApi
      summary: Apigee Update an API
      description: >-
        Updates an existing API entry. Use updateMask to specify fields.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - name: updateMask
        in: query
        description: Required. Comma-separated list of fields to update.
        required: true
        schema:
          type: string
      - name: allowMissing
        in: query
        description: If true, create the API if it does not exist.
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Api'
      responses:
        '200':
          description: Successful response with updated API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Api'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteApi
      summary: Apigee Delete an API
      description: >-
        Deletes an API and all of its owned resources (versions, specs,
        deployments, artifacts).
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - name: force
        in: query
        description: If true, delete child resources as well.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/versions:
    get:
      operationId: listApiVersions
      summary: Apigee List API Versions
      description: >-
        Lists all versions of an API in the registry.
      tags:
      - API Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      - name: filter
        in: query
        description: Filter expression.
        schema:
          type: string
      - name: orderBy
        in: query
        description: Field to order results by.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with list of API versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiVersionsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createApiVersion
      summary: Apigee Create an API Version
      description: >-
        Creates a new version for an API in the registry.
      tags:
      - API Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - name: apiVersionId
        in: query
        description: Required. The ID to use for the version.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiVersion'
      responses:
        '200':
          description: Successful response with the created version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersion'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/versions/{versionId}:
    get:
      operationId: getApiVersion
      summary: Apigee Get an API Version
      description: >-
        Gets the details of a specific API version.
      tags:
      - API Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      responses:
        '200':
          description: Successful response with version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersion'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateApiVersion
      summary: Apigee Update an API Version
      description: >-
        Updates an existing API version.
      tags:
      - API Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - name: updateMask
        in: query
        description: Required. Comma-separated list of fields to update.
        required: true
        schema:
          type: string
      - name: allowMissing
        in: query
        description: If true, create if it does not exist.
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiVersion'
      responses:
        '200':
          description: Successful response with updated version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiVersion'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteApiVersion
      summary: Apigee Delete an API Version
      description: >-
        Deletes an API version and all its owned resources.
      tags:
      - API Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - name: force
        in: query
        description: If true, delete child resources as well.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/versions/{versionId}/specs:
    get:
      operationId: listApiSpecs
      summary: Apigee List API Specs
      description: >-
        Lists all specs for an API version.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      - name: filter
        in: query
        description: Filter expression.
        schema:
          type: string
      - name: orderBy
        in: query
        description: Field to order results by.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with list of specs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiSpecsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createApiSpec
      summary: Apigee Create an API Spec
      description: >-
        Creates a new specification for an API version in the registry.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - name: apiSpecId
        in: query
        description: Required. The ID to use for the spec.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSpec'
      responses:
        '200':
          description: Successful response with the created spec
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSpec'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/versions/{versionId}/specs/{specId}:
    get:
      operationId: getApiSpec
      summary: Apigee Get an API Spec
      description: >-
        Gets details about a specific API specification.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - $ref: '#/components/parameters/specId'
      responses:
        '200':
          description: Successful response with spec details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSpec'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateApiSpec
      summary: Apigee Update an API Spec
      description: >-
        Updates an existing API spec. A new revision is created if
        the spec content changes.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - $ref: '#/components/parameters/specId'
      - name: updateMask
        in: query
        description: Required. Comma-separated list of fields to update.
        required: true
        schema:
          type: string
      - name: allowMissing
        in: query
        description: If true, create if it does not exist.
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSpec'
      responses:
        '200':
          description: Successful response with updated spec
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSpec'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteApiSpec
      summary: Apigee Delete an API Spec
      description: >-
        Deletes an API spec and all its revisions and child resources.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - $ref: '#/components/parameters/specId'
      - name: force
        in: query
        description: If true, delete child resources as well.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/versions/{versionId}/specs/{specId}:getContents:
    get:
      operationId: getApiSpecContents
      summary: Apigee Get API Spec Contents
      description: >-
        Retrieves the raw content of an API specification.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - $ref: '#/components/parameters/specId'
      responses:
        '200':
          description: Successful response with spec contents
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpBody'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/versions/{versionId}/specs/{specId}:rollback:
    post:
      operationId: rollbackApiSpec
      summary: Apigee Rollback an API Spec
      description: >-
        Rolls back an API spec to a previous revision.
      tags:
      - API Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - $ref: '#/components/parameters/specId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                revisionId:
                  type: string
                  description: Required. Revision ID to roll back to.
              required:
              - revisionId
      responses:
        '200':
          description: Successful response with rolled-back spec
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSpec'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/deployments:
    get:
      operationId: listApiDeployments
      summary: Apigee List API Deployments
      description: >-
        Lists all deployment records for an API.
      tags:
      - API Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      - name: filter
        in: query
        description: Filter expression.
        schema:
          type: string
      - name: orderBy
        in: query
        description: Field to order results by.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with list of deployments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListApiDeploymentsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createApiDeployment
      summary: Apigee Create an API Deployment
      description: >-
        Creates a new deployment record for an API, tracking where
        a version is deployed.
      tags:
      - API Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - name: apiDeploymentId
        in: query
        description: Required. The ID to use for the deployment.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiDeployment'
      responses:
        '200':
          description: Successful response with the created deployment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeployment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/deployments/{deploymentId}:
    get:
      operationId: getApiDeployment
      summary: Apigee Get an API Deployment
      description: >-
        Gets the details of a specific API deployment record.
      tags:
      - API Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/deploymentId'
      responses:
        '200':
          description: Successful response with deployment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeployment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateApiDeployment
      summary: Apigee Update an API Deployment
      description: >-
        Updates an existing API deployment record.
      tags:
      - API Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/deploymentId'
      - name: updateMask
        in: query
        description: Required. Comma-separated list of fields to update.
        required: true
        schema:
          type: string
      - name: allowMissing
        in: query
        description: If true, create if it does not exist.
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiDeployment'
      responses:
        '200':
          description: Successful response with updated deployment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeployment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteApiDeployment
      summary: Apigee Delete an API Deployment
      description: >-
        Deletes an API deployment record.
      tags:
      - API Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/deploymentId'
      - name: force
        in: query
        description: If true, force delete.
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/apis/{apiId}/deployments/{deploymentId}:rollback:
    post:
      operationId: rollbackApiDeployment
      summary: Apigee Rollback an API Deployment
      description: >-
        Rolls back an API deployment to a previous revision.
      tags:
      - API Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/deploymentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                revisionId:
                  type: string
                  description: Required. Revision ID to roll back to.
              required:
              - revisionId
      responses:
        '200':
          description: Successful response with rolled-back deployment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiDeployment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/artifacts:
    get:
      operationId: listArtifacts
      summary: Apigee List Artifacts
      description: >-
        Lists all artifacts at the specified project/location level.
      tags:
      - Artifacts
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      - name: filter
        in: query
        description: Filter expression.
        schema:
          type: string
      - name: orderBy
        in: query
        description: Field to order results by.
        schema:
          type: string
      responses:
        '200':
          description: Successful response with list of artifacts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListArtifactsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createArtifact
      summary: Apigee Create an Artifact
      description: >-
        Creates a new artifact at the project/location level.
      tags:
      - Artifacts
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: artifactId
        in: query
        description: Required. The ID to use for the artifact.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Artifact'
      responses:
        '200':
          description: Successful response with the created artifact
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artifact'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/artifacts/{artifactId}:
    get:
      operationId: getArtifact
      summary: Apigee Get an Artifact
      description: >-
        Gets details about a specific artifact.
      tags:
      - Artifacts
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/artifactId'
      responses:
        '200':
          description: Successful response with artifact details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artifact'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: replaceArtifact
      summary: Apigee Replace an Artifact
      description: >-
        Replaces the contents of an existing artifact.
      tags:
      - Artifacts
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/artifactId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Artifact'
      responses:
        '200':
          description: Successful response with replaced artifact
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Artifact'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteArtifact
      summary: Apigee Delete an Artifact
      description: >-
        Deletes an artifact from the registry.
      tags:
      - Artifacts
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/artifactId'
      responses:
        '200':
          description: Successful response confirming deletion
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/artifacts/{artifactId}:getContents:
    get:
      operationId: getArtifactContents
      summary: Apigee Get Artifact Contents
      description: >-
        Retrieves the raw content of an artifact.
      tags:
      - Artifacts
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/artifactId'
      responses:
        '200':
          description: Successful response with artifact contents
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpBody'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/com

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/openapi/apigee-registry-openapi.yml