Apigee API Hub API

API for cataloging, organizing, and governing APIs across an organization. Enables API discovery, metadata management, dependency mapping, deployment tracking, and AI-powered specification boost.

Documentation

Specifications

Other Resources

🔗
ReleaseNotes
https://cloud.google.com/apigee/docs/apihub/release-notes
🔗
Pricing
https://cloud.google.com/apigee/pricing
🔗
Support
https://cloud.google.com/apigee/support
🔗
TermsOfService
https://cloud.google.com/terms
🔗
PrivacyPolicy
https://cloud.google.com/terms/cloud-privacy-notice
🔗
SDKs
https://cloud.google.com/apigee/docs/apihub/libraries
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-general.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-attributes.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-dependencies.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-deployments.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-external-apis.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-locations.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-runtime-project-attachments.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-specs.yaml
🔗
NaftikoCapability
https://raw.githubusercontent.com/api-evangelist/apigee/refs/heads/main/capabilities/api-hub-versions.yaml

OpenAPI Specification

apigee-api-hub-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Apigee API Hub API
  description: >-
    API for cataloging, organizing, and governing APIs across an organization.
    Enables API discovery, metadata management, dependency mapping, deployment
    tracking, and AI-powered specification boost.
  version: 1.0.0
  contact:
    name: Google Cloud Apigee
    url: https://cloud.google.com/apigee/docs/apihub/what-is-api-hub
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  termsOfService: https://cloud.google.com/terms
externalDocs:
  description: Apigee API Hub API Reference Documentation
  url: https://cloud.google.com/apigee/docs/reference/apis/apihub/rest
servers:
- url: https://apihub.googleapis.com/v1
  description: Apigee API Hub Production Server
security:
- oauth2: []
tags:
- name: Attributes
  description: Manage custom attributes
- name: Dependencies
  description: Track API dependencies
- name: Deployments
  description: Manage API deployments
- name: External APIs
  description: Manage external API references
- name: Locations
  description: Manage project locations and search resources
- name: Runtime Project Attachments
  description: Manage runtime project attachments
- name: Specs
  description: Manage API specifications
- name: Versions
  description: Manage API versions
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, and description.
      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
      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 resource in the API Hub. The API represents a
        logical grouping of related API versions and specifications.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: apiId
        in: query
        description: >-
          Required. The ID to use for the API resource, which will become
          the final component of the API's resource name.
        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: >-
        Retrieves details of a specific API resource, including its
        display name, description, owner, and associated metadata.
      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 resource in the API Hub. Use the updateMask
        field to specify which fields to update.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - name: updateMask
        in: query
        description: >-
          Required. The list of fields to update. Use comma-separated field names.
        required: true
        schema:
          type: string
      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 resource and all its child resources (versions,
        specs, operations) from the API Hub.
      tags: []
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      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 API Hub. Versions represent
        different releases or iterations of an API.
      tags:
      - 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 to narrow the results.
        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 API Hub. A version
        represents a specific release of the API.
      tags:
      - Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - name: versionId
        in: query
        description: >-
          Required. The ID to use for the version, which will become the
          final component of the version's resource name.
        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 details about a specific API version, including its display
        name, description, lifecycle state, and compliance status.
      tags:
      - 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. Use updateMask to specify fields.
      tags:
      - 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
      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 child resources (specs, operations).
      tags:
      - Versions
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      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 Specifications
      description: >-
        Lists all specifications for an API version. Specs are machine-readable
        API definitions such as OpenAPI or Protocol Buffer files.
      tags:
      - 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 to narrow the results.
        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 Specification
      description: >-
        Creates a new specification for an API version. Specifications
        are machine-readable definitions of the API.
      tags:
      - Specs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/apiId'
      - $ref: '#/components/parameters/versionId'
      - name: specId
        in: query
        description: Required. The ID to use for the spec resource.
        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 Specification
      description: >-
        Gets details about a specific API specification, including metadata
        about the spec type, parsing mode, and lint results.
      tags:
      - 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 Specification
      description: >-
        Updates an existing API specification. Use updateMask to specify fields.
      tags:
      - 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
      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 Specification
      description: >-
        Deletes an API specification from the API Hub.
      tags:
      - 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 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 Specification Contents
      description: >-
        Retrieves the raw contents of an API specification file such as
        an OpenAPI document or Protocol Buffer definition.
      tags:
      - 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}:lint:
    post:
      operationId: lintApiSpec
      summary: Apigee Lint an API Specification
      description: >-
        Validates an API specification against style and correctness rules.
        Returns linting results with warnings and errors.
      tags:
      - 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 lint operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /projects/{projectId}/locations/{locationId}/deployments:
    get:
      operationId: listDeployments
      summary: Apigee List Deployments
      description: >-
        Lists all API deployments in the specified project and location.
      tags:
      - Deployments
      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
      responses:
        '200':
          description: Successful response with list of deployments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDeploymentsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createDeployment
      summary: Apigee Create a Deployment
      description: >-
        Creates a new deployment record in the API Hub to track where
        an API version is deployed.
      tags:
      - Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: deploymentId
        in: query
        description: Required. The ID to use for the deployment resource.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Deployment'
      responses:
        '200':
          description: Successful response with the created deployment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/deployments/{deploymentId}:
    get:
      operationId: getDeployment
      summary: Apigee Get a Deployment
      description: >-
        Retrieves details about a specific API deployment.
      tags:
      - Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/deploymentId'
      responses:
        '200':
          description: Successful response with deployment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateDeployment
      summary: Apigee Update a Deployment
      description: >-
        Updates an existing deployment record.
      tags:
      - Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/deploymentId'
      - name: updateMask
        in: query
        description: Required. Comma-separated list of fields to update.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Deployment'
      responses:
        '200':
          description: Successful response with updated deployment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDeployment
      summary: Apigee Delete a Deployment
      description: >-
        Deletes a deployment record from the API Hub.
      tags:
      - Deployments
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/deploymentId'
      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}/dependencies:
    get:
      operationId: listDependencies
      summary: Apigee List Dependencies
      description: >-
        Lists all API dependencies in the specified project and location.
        Dependencies represent relationships between APIs.
      tags:
      - Dependencies
      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
      responses:
        '200':
          description: Successful response with list of dependencies
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDependenciesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createDependency
      summary: Apigee Create a Dependency
      description: >-
        Creates a new dependency between APIs in the API Hub.
      tags:
      - Dependencies
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: dependencyId
        in: query
        description: Required. The ID to use for the dependency resource.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dependency'
      responses:
        '200':
          description: Successful response with the created dependency
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dependency'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/dependencies/{dependencyId}:
    get:
      operationId: getDependency
      summary: Apigee Get a Dependency
      description: >-
        Retrieves details about a specific API dependency.
      tags:
      - Dependencies
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: dependencyId
        in: path
        description: ID of the dependency resource.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successful response with dependency details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dependency'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateDependency
      summary: Apigee Update a Dependency
      description: >-
        Updates an existing API dependency.
      tags:
      - Dependencies
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: dependencyId
        in: path
        description: ID of the dependency resource.
        required: true
        schema:
          type: string
      - name: updateMask
        in: query
        description: Required. Comma-separated list of fields to update.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Dependency'
      responses:
        '200':
          description: Successful response with updated dependency
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dependency'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteDependency
      summary: Apigee Delete a Dependency
      description: >-
        Deletes an API dependency from the API Hub.
      tags:
      - Dependencies
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: dependencyId
        in: path
        description: ID of the dependency resource.
        required: true
        schema:
          type: string
      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}/attributes:
    get:
      operationId: listAttributes
      summary: Apigee List Attributes
      description: >-
        Lists all custom attributes defined in the specified project and location.
      tags:
      - Attributes
      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
      responses:
        '200':
          description: Successful response with list of attributes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAttributesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createAttribute
      summary: Apigee Create an Attribute
      description: >-
        Creates a new custom attribute definition in the API Hub.
      tags:
      - Attributes
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - name: attributeId
        in: query
        description: Required. The ID to use for the attribute resource.
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Attribute'
      responses:
        '200':
          description: Successful response with the created attribute
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attribute'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}/locations/{locationId}/externalApis:
    get:
      operationId: listExternalApis
      summary: Apigee List External APIs
      description: >-
        Lists all external API references in the specified project and location.
      tags:
      - External APIs
      parameters:
      - $ref: '#/components/parameters/projectId'
      - $ref: '#/components/parameters/locationId'
      - $ref: '#/components/parameters/pageSize'
      - $ref: '#/components/parameters/pageToken'
      responses:
        '200':
          description: Successful response with list of external APIs
          content:
            applicatio

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