openapi: 3.1.0 info: title: Apigee API Hub Analytics Target Servers 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 servers: - url: https://apihub.googleapis.com/v1 description: Apigee API Hub Production Server security: - oauth2: [] tags: - name: Target Servers description: Configure backend target server endpoints paths: /organizations/{organizationId}/environments/{environmentId}/targetservers: get: operationId: listTargetServers summary: Apigee List Target Servers description: Lists all target servers in the specified environment of an organization. Target servers define backend service endpoints. tags: - Target Servers parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/environmentId' responses: '200': description: Successful response with list of target servers content: application/json: schema: type: array items: type: string '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: operationId: createTargetServer summary: Apigee Create a Target Server description: Creates a target server in the specified environment. Target servers decouple TargetEndpoint configurations from concrete backend URLs. tags: - Target Servers parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/environmentId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TargetServer' responses: '200': description: Successful response with the created target server content: application/json: schema: $ref: '#/components/schemas/TargetServer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /organizations/{organizationId}/environments/{environmentId}/targetservers/{targetServerId}: get: operationId: getTargetServer summary: Apigee Get a Target Server description: Gets the configuration of a target server in the specified environment. tags: - Target Servers parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/targetServerId' responses: '200': description: Successful response with target server details content: application/json: schema: $ref: '#/components/schemas/TargetServer' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' put: operationId: updateTargetServer summary: Apigee Update a Target Server description: Updates an existing target server in the specified environment. The full target server object must be included in the request body. tags: - Target Servers parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/targetServerId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TargetServer' responses: '200': description: Successful response with updated target server content: application/json: schema: $ref: '#/components/schemas/TargetServer' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteTargetServer summary: Apigee Delete a Target Server description: Deletes a target server from an environment. tags: - Target Servers parameters: - $ref: '#/components/parameters/organizationId' - $ref: '#/components/parameters/environmentId' - $ref: '#/components/parameters/targetServerId' responses: '200': description: Successful response confirming deletion content: application/json: schema: $ref: '#/components/schemas/TargetServer' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' components: parameters: organizationId: name: organizationId in: path description: Name of the Apigee organization. required: true schema: type: string environmentId: name: environmentId in: path description: Name of the environment. required: true schema: type: string targetServerId: name: targetServerId in: path description: Name of the target server. required: true schema: type: string schemas: Error: type: object description: Error response from the Apigee API. properties: error: type: object properties: code: type: integer format: int32 description: HTTP error code. message: type: string description: Error message. status: type: string description: Error status string. TargetServer: type: object description: Configuration for a backend target server. properties: name: type: string description: Required. Name of the target server. host: type: string description: Required. Hostname or IP address of the backend service. port: type: integer format: int32 description: Required. Port number of the backend service. isEnabled: type: boolean description: Whether the target server is enabled. protocol: type: string description: Protocol used to communicate with the target. enum: - HTTP - HTTP2 - GRPC_TARGET - GRPC - EXTERNAL_CALLOUT sSLInfo: $ref: '#/components/schemas/TlsInfo' description: type: string description: Optional description of the target server. required: - name - host - port TlsInfo: type: object description: TLS configuration for a target server. properties: enabled: type: boolean description: Whether TLS is enabled. clientAuthEnabled: type: boolean description: Whether client authentication is required. keyStore: type: string description: Name of the keystore. keyAlias: type: string description: Name of the key alias. trustStore: type: string description: Name of the truststore. protocols: type: array description: Supported TLS protocols. items: type: string ciphers: type: array description: Supported cipher suites. items: type: string commonName: type: object description: Common name configuration. properties: value: type: string wildcardMatch: type: boolean responses: Unauthorized: description: Unauthorized. Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad request. The request body or parameters are invalid. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Not found. The specified resource does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' Forbidden: description: Forbidden. The caller does not have permission to perform this operation. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: oauth2: type: oauth2 description: Google OAuth 2.0 authentication flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/cloud-platform: Full access to Google Cloud Platform resources externalDocs: description: Apigee API Hub API Reference Documentation url: https://cloud.google.com/apigee/docs/reference/apis/apihub/rest