openapi: 3.2.0 info: title: APIHUB Registry – External Operation groups API description: 'Public-facing API contract for APIHUB. This API is intended for external and integration clients and covers package/catalog operations, publication workflows, search, user/profile actions, and selected administration capabilities secured by APIHUB authentication schemes. ' contact: name: Netcracker Opensource Group email: opensourcegroup@netcracker.com license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: '2026.1' x-api-kind: BWC servers: - url: https://{apihub}.qubership.org description: Primary APIHUB server endpoint (use the apihub variable to select production, development, or staging). variables: apihub: description: APIHUB subdomain/environment selector (apihub=production, dev.apihub=development, staging.apihub=staging). enum: - apihub - dev.apihub - staging.apihub default: apihub security: - BearerAuth: [] - CookieAuth: [] - api-key: [] - PersonalAccessToken: [] tags: - name: Operation groups description: Operation groups paths: /api/v3/packages/{packageId}/versions/{version}/{apiType}/build/groups/{groupName}/buildType/{buildType}: parameters: - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - name: apiType description: Type of the API. in: path required: true schema: type: string enum: - rest - name: buildType description: 'Type of the build process for OpeanAPI specification tranformation. Available options are: - **reducedSourceSpecifications** - proccess that finds source specifications for all operations from operation group and removes from these specifications operations other than those that are included into operation group. - **mergedSpecification** - process the merges all operations from an operation group into one specification. ' in: path required: true schema: type: string enum: - reducedSourceSpecifications - mergedSpecification - name: groupName in: path required: true description: Name of the operation group schema: type: string post: deprecated: true x-deprecation-reason: POST /api/v1/export shall be used instead of the current operation. tags: - Operation groups summary: Async document transformation description: 'Async task for document transformation. Document transformation is required for exporting operations group. * **200 Documents transformation completed successfully** if documents were already transformed. * **202 Accepted** will be returned after starting process for documents transformation. ' operationId: postGenerateDocumentV3 parameters: - name: clientBuild in: query description: Client-side package build will be used. required: false schema: type: boolean default: false - name: builderId in: query required: false description: Builder identifier. **Required** if clientBuild=true. schema: type: string - name: reCalculate in: query description: 'Flag for the force document re-calculation. May be used after the previous API call with **error** status. ' schema: type: boolean default: false - name: format in: query description: 'Format of the exported file.\ If buidType = reducedSourceSpecifications, then format can be yaml, json or html.\ If buidType = mergedspecification, then format can be yaml or json; html is not supported for this buildType. ' schema: type: string enum: - yaml - json - html default: json responses: '200': description: Documents transformation completed successfully '201': description: Created content: application/json: schema: type: object description: build config properties: packageId: description: Package unique identifier (full alias). type: string example: QS.CQSS.CPQ.TMF version: description: 'Package version. The mask @ will be used for return in a specific revision. If the @ was not transmitted in the request - it won''t be returned in response. Consider the version as the latest one. ' type: string example: 2022.3@3 apiType: description: Document transformation is available only for apiType = REST type: string enum: - rest groupName: description: Name of the group type: string example: v1 buildType: description: 'Type of the build process for OpeanAPI specification tranformation. Available options are: - **reducedSourceSpecifications** - proccess that finds source specifications for all operations from operation group and removes from these specifications operations other than those that are included into operation group. - **mergedSpecification** - process the merges all operations from an operation group into one specification. ' type: string enum: - reducedSourceSpecifications - mergedSpecification format: type: string enum: - yaml - json - html createdBy: description: The user who created the object type: string buildId: description: Id of the created build. type: string '202': description: Accepted content: application/json: schema: type: object properties: status: description: Calculation process status. type: string enum: - running - error message: description: The message for **error** status. type: string '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v3/packages/{packageId}/versions/{version}/{apiType}/export/groups/{groupName}/buildType/{buildType}: parameters: - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - name: apiType description: Type of the API. in: path required: true schema: type: string enum: - rest - name: buildType description: 'Type of the build process for OpeanAPI specification tranformation. Available options are: - **reducedSourceSpecifications** - proccess that finds source specifications for all operations from operation group and removes from these specifications operations other than those that are included into operation group. - **mergedSpecification** - process the merges all operations from an operation group into one specification. ' in: path required: true schema: type: string enum: - reducedSourceSpecifications - mergedSpecification - name: groupName in: path required: true description: Name of the operation group schema: type: string get: deprecated: true x-deprecation-reason: POST /api/v1/export shall be used instead of the current operation. tags: - Operation groups summary: Export operations group as OpenAPI documents description: 'Export all operations from an operations group (with apiType = REST API) as OpenAPI specification(s). ' operationId: getPackagesIdVersionsIdExportGroupNameV3 parameters: - name: format in: query required: true description: 'Format of the exported file.\ If buidType = reducedSourceSpecifications, then format can be yaml, json or html.\ If buidType = mergedspecification, then format can be yaml or json; html is not supported for this buildType. ' schema: type: string enum: - yaml - json - html default: json responses: '200': description: Success content: application/zip: schema: type: string format: binary description: ZIP file to download. ZIP will be returned if buildType = reducedSourceSpecifications application/json: schema: type: string format: binary description: JSON file to download. JSON will be returned if buidType = mergedspecification and format = json application/yaml: schema: type: string format: binary description: YAML file to download. YAML will be returned if buidType = mergedspecification and format = yaml headers: Content-Disposition: schema: type: string description: File name example: attachment; filename="__.zip" '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v3/packages/{packageId}/versions/{version}/{apiType}/groups: post: tags: - Operation groups summary: Create manual operation group description: 'Create manual operation group.\ Manual groups can be created for both packages and dashboards. One group can contain operations of one API type only. ' operationId: PostPackageIdVersionApiTypeGroupsV3 parameters: - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - $ref: '#/components/parameters/apiType' requestBody: description: New version group content: multipart/form-data: schema: type: object required: - groupName properties: groupName: description: Name of new group. Name must be unique within one API type. type: string description: description: Description of created group. type: string template: description: 'OpenAPI specification template that will be used to export operations from an operation group with buildType = mergedSpecification.\ Template can only be specified for the group with apiType = rest.\ Both YAML and JSON file formats are supported. ' type: string format: binary responses: '201': description: Created '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v2/packages/{packageId}/versions/{version}/{apiType}/groups/{groupName}: get: tags: - Operation groups summary: Get list of operations for operation group operationId: getPackagesIdVersionsIdApiTypeGroupsGroupName description: 'Get list of operations from operation group. The result list depends on the API type. ' parameters: - $ref: '#/components/parameters/apiType' - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - $ref: '#/components/parameters/groupName' - $ref: '#/components/parameters/apiAudience' - $ref: '#/components/parameters/asyncapiChannel' - $ref: '#/components/parameters/asyncapiProtocol' - name: textFilter in: query description: 'Filter by title/path/method. For AsyncAPI: searches by message title(or messageId), channel title(or channelId) or operation action. ' schema: type: string - name: documentSlug in: query description: Filter by document schema: type: string example: billing-rating-catalog-integration-service1-json - name: tag in: query description: 'Name of the tag for filtering/grouping. A full match is required. To get the list of available tags use GET /tags API. ' schema: type: string example: RestControllerV5 - name: emptyTag in: query description: 'Flag, filtering the operations without tags at all. In response will be returned the list of operations, on what the tag is not filled in. This attribute has a higher priority than the **tag**. In case, then **emptyTag: true**, it will override the **tag** filter. ' schema: type: boolean default: false - name: onlyAddable in: query description: 'Flag for filtering operations that are not included in this group true - will return all operations from version except operations that are already included in this group false - will return all operations that are included in this group ' schema: type: boolean default: false - name: kind description: 'Operation kind. * bwc - API with backward compatibility support (a.k.a. public). * no-bwc - API without backward compatibility support (a.k.a. internal). * experimental - APIs for feature testing. Usage is not recommended. ' in: query schema: type: string enum: - all - bwc - no-bwc - experimental default: all - name: deprecated description: Filter operations by 'deprecated' status. in: query schema: type: string enum: - all - 'true' - 'false' default: all - name: refPackageId description: Filter by package id of ref package, shall be used in case of dashboard. in: query schema: type: string - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/page' responses: '200': description: Success content: application/json: schema: description: List of group operations. type: object properties: operations: type: array description: 'List of grouped operations that were present in the previous revision and are deleted in the current revision. ' items: allOf: - oneOf: - $ref: '#/components/schemas/RestOperation' - $ref: '#/components/schemas/GraphQLOperation' - $ref: '#/components/schemas/ProtobufOperation' - $ref: '#/components/schemas/AsyncAPIOperation' - type: object properties: packageRef: description: 'Parent package and version link. Created by the concatenation of the packageId and version name with At sign. ' type: string example: QS.CloudQSS.CPQ.Q-TMF@2023.2 packages: $ref: '#/components/schemas/PackagesMap' '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' delete: tags: - Operation groups summary: Delete operation group description: 'Delete version group. ' operationId: getPackagesIdVersionsIdApiTypeGroups parameters: - $ref: '#/components/parameters/apiType' - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - $ref: '#/components/parameters/groupName' responses: '204': description: No content content: {} '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v3/packages/{packageId}/versions/{version}/{apiType}/groups/{groupName}: patch: tags: - Operation groups summary: Update parameters of operation group description: 'Update parameters of operations group. ' operationId: patchPackageIdVersionApiTypeGroupName parameters: - name: groupName description: Old groupName in: path required: true schema: type: string - $ref: '#/components/parameters/apiType' - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' requestBody: description: Version group update parameters content: multipart/form-data: schema: type: object properties: groupName: description: 'Name of new group. Name must be unique within one API type.\ Group name can be changed only for manual group. ' type: string description: description: Description of the operation group (can be update for the manual or rest path prefix group) type: string template: description: 'OpenAPI specification template that will be used to export operations from an operation group with buildType = mergedSpecification.\ Template can be specified for the manual or rest path prefix group, but only with apiType = rest.\ Both YAML and JSON file formats are supported. ' type: string format: binary operations: type: array description: Operations in the group. One group can contain no more than 200 operations. items: type: object required: - operationId properties: packageId: description: 'ID of package.\ PackageId and version shall be specified in case of dashboard to identify source package. If packageId and version are not specified, this will mean that the source of the operation is the current package version. ' type: string example: QS.CloudQSS.CPQ.Q-TMF version: description: Version and revision of the package. type: string example: 2023.3@3 operationId: description: Operation unique identifier. type: string example: get-quoteManagement-v5-quote responses: '204': description: No content content: {} '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v1/packages/{packageId}/versions/{version}/{apiType}/groups/{groupName}/template: get: tags: - Operation groups summary: Get export template of operation group description: 'Export OpenAPI specification template from an operation group (manual or rest path prefix). This feature is supported only for apiType = rest. ' operationId: getPackageIdVersionApiTypeGroupNameTemplate parameters: - $ref: '#/components/parameters/apiType' - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - $ref: '#/components/parameters/groupName' responses: '200': description: Success content: application/octet-stream: schema: type: string format: binary description: template headers: Content-Disposition: schema: type: string description: file name example: attachment; filename=".xlsx" '301': description: Moved Permanently headers: Location: schema: type: string description: Current ednpoint with new packageId of moved package X-New-Package-Id: schema: type: string description: New packageId of moved package '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v3/packages/{packageId}/versions/{version}/{apiType}/groups/{groupName}/publish: parameters: - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - name: apiType description: Type of the API. in: path required: true schema: type: string enum: - rest - graphql - asyncapi - name: groupName in: path required: true description: Name of the operation group schema: type: string post: tags: - Operation groups summary: Start operation group publication description: 'Start operation group publish process.\ In this process all operations from operation group will be published to the selected package version. ' operationId: postOperationGroupPublish requestBody: content: application/json: schema: type: object required: - packageId - version - status properties: packageId: description: Package unique identifier (full alias). type: string example: QS.CQSS.CPQ.TMF version: description: Version name for publication in package. type: string example: '2022.3' previousVersion: description: Name of the previous published version in package. type: string example: '2022.2' previousVersionPackageId: description: Package id of the previous version. The parameter may be empty if the value is equal to the packageId. type: string example: QS.CloudQSS.CPQ.Q-TMF status: $ref: '#/components/schemas/VersionStatusEnum' versionLabels: description: List of version labels in package. type: array items: type: string example: - part-of:CloudQSS-CPQBE responses: '202': description: Publish process started content: application/json: schema: type: object properties: publishId: type: string description: Publish process Id format: uuid example: 9c8e9045-dd9c-4946-b9e4-e05e3f41c4cc '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: IncorrectInputParams: $ref: '#/components/examples/IncorrectInputParameters' PreviousVersionNotRelease: $ref: '#/components/examples/PreviousVersionNotRelease' VersionReferencedAsPreviousByRelease: $ref: '#/components/examples/VersionReferencedAsPreviousByRelease' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: PackageNotFound: $ref: '#/components/examples/PackageNotFound' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' /api/v3/packages/{packageId}/versions/{version}/{apiType}/groups/{groupName}/publish/{publishId}/status: parameters: - $ref: '#/components/parameters/packageId' - $ref: '#/components/parameters/version' - name: apiType description: Type of the API. in: path required: true schema: type: string enum: - rest - graphql - asyncapi - name: groupName in: path required: true description: Name of the operation group schema: type: string - name: publishId description: Publish Id in: path required: true schema: type: string format: uuid example: 9c8e9045-dd9c-4946-b9e4-e05e3f41c4cc get: tags: - Operation groups summary: Get operation group publication status description: 'Get operation group publish status. ' operationId: getOperationGroupPublishStatus responses: '200': description: Success content: application/json: schema: type: object properties: status: description: Publish process status. type: string enum: - running - error - complete - none message: description: The message for **error** status. type: string '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: {} '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: PackageNotFound: $ref: '#/components/examples/PackageNotFound' '500': description: Internal Server Error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: InternalServerError: $ref: '#/components/examples/InternalServerError' components: schemas: VersionStatusEnum: description: Package version status type: string enum: - draft - release - archived Operation: description: Operation object title: Operation type: object required: - operationId - documentId - title - apiType - apiAudience - apiKind - versionInternalDocumentId properties: operationId: description: 'Operation unique identifier (slug). Not the same as operationId tag from the OpenAPI file. For AsyncAPI 3.0: operationId = normalized_operation_id + "-" + normalized_message_id, where operation_id is the key in the root operations map and message_id is the key in the channel''s messages map. ' type: string example: get-quoteManagement-v5-quote documentId: description: Unique string identifier of the document from which the operation is originated type: string pattern: ^[a-z0-9-] example: qitmf-v5-11-json title: description: 'Operation summary/title. For AsyncAPI 3.0: message.title. If the message has no title, the messageId (key in the channel''s messages map) is used. ' type: string apiType: $ref: '#/components/schemas/ApiType' externalMetadata: description: External operation metadata. type: object deprecated: description: 'Operation deprecate flag. For AsyncAPI 3.0: derived from x-deprecated extension on Message Object (message-deprecated) or Channel Object (channel-deprecated). Native deprecated: true/false exists only for Schema Object in AsyncAPI 3.0. ' type: boolean default: false apiAudience: description: 'Operation''s target audience. * internal - APIs are available for integration within product application. * external - APIs exposed outside the boundary of product application: solution delivery integrations, 3rd party integrations, customer integrations. * unknown - If any value other than internal or external is used, the API is considered as unknown. For AsyncAPI 3.0: derived from x-api-audience extension. Channel-level is the default; operation-level overrides when present. If neither defines the extension, the audience is external. ' type: string enum: - internal - external - unknown apiKind: description: 'Operation API kind. * bwc - API with backward compatibility support (a.k.a. public). * no-bwc - API without backward compatibility support (a.k.a. internal). * experimental - APIs for feature testing. Usage is not recommended. For AsyncAPI 3.0: derived from x-api-kind extension. Channel-level is the default; operation-level overrides when present. If neither defines the extension, API Kind is bwc. ' type: string enum: - bwc - no-bwc - experimental default: bwc tags: description: 'List of operation tags. * in rest, tag is OpenAPI tag. * in graphql, tag is root schema type - query, mutation, subscription. * in protobuf, tag is service of method. ' type: array items: type: string example: - RestControllerV5 versionInternalDocumentId: description: 'Unique string identifier of the preprocessed (validated, references resolved) internal document, where the operation is present. Corresponds to `id` field for the document in `version-internal-documents.json` ' type: string pattern: ^[a-z0-9-] example: qitmf-v5-11-ref-resolved-json ApiType: title: apiType type: string enum: - rest - graphql - protobuf - asyncapi PackagesMap: description: 'A map of referenced package versions to the package version objects. The key is `packageId@version@revision` — three `@`-separated segments (note: the `version` field of each value is `version@revision`, only two segments). ' type: object additionalProperties: $ref: '#/components/schemas/PackageVersionRef' example: QS.CloudQSS.CPQ.Q-TMF@2023.2@3: refId: QS.CloudQSS.CPQ.Q-TMF kind: package name: Quote Management TMF648 version: 2023.2@3 status: release parentPackages: - qubership - Qubership JSS - Sample Management deletedAt: '2023-05-30T17:17:11.755146Z' deletedBy: user1221 notLatestRevision: true ProtobufOperation: description: Protobuf operation object. title: ProtobufOperation allOf: - $ref: '#/components/schemas/Operation' - $ref: '#/components/schemas/ProtobufOperationMeta' ErrorResponse: description: Standard error response returned for failed requests. Includes HTTP status, internal error code, human-readable message, optional message parameters, and optional debug details (non-production only). type: object properties: status: description: HTTP status code as an integer; expected to match the actual HTTP response status. type: number code: description: Internal string error code. Mandatory in response. type: string message: description: Human-readable error message describing what went wrong; intended for diagnostics and safe client display. type: string params: type: object description: Optional key/value parameters used to format or contextualize the error message (for example, identifiers or field names). example: id: 12345 type: string debug: description: Optional debug details (for example, stack traces). Returned only in development/test environments when verbose logging is enabled; do not rely on this field in production because it may contain sensitive data. type: string required: - status - code - message RestOperationMeta: description: Specific parameters for REST operation. title: RestOperationMeta required: - path - method type: object properties: path: description: Operation endpoint path. type: string example: /quoteManagement/v5/quote method: description: Operation method. type: string enum: - post - get - put - patch - delete - head - options - connect - trace title: description: Operation summary/title. type: string customTags: description: Custom tags. type: object PackageVersionRef: description: Package version reference type: object title: Referenced package version required: - refId - kind - name - version - status properties: refId: description: Referenced package Id. type: string example: QS.CloudQSS.CPQ.CORE kind: description: Package kind type: string enum: - package - dashboard name: description: Name of the referenced package type: string example: Quote Management TMF648 version: description: Referenced package version number. The @ mask is used to return the revision number. type: string example: 2022.2@5 status: $ref: '#/components/schemas/VersionStatusEnum' parentPackages: description: Array of parent package names type: array items: type: string deletedAt: description: date when package version was deleted package version type: string format: date-type example: '2023-05-30T17:17:11.755146Z' deletedBy: description: user who deleted package version type: string example: user1221 notLatestRevision: type: boolean default: false GraphQLOperation: description: GraphQL operation object. title: GraphQLOperation allOf: - $ref: '#/components/schemas/Operation' - $ref: '#/components/schemas/GraphQLOperationMeta' ProtobufOperationMeta: description: Specific parameters for Protobuf operation. title: GraphQLOperationMeta required: - type - method type: object properties: type: description: Operation type type: string enum: - unary - serverStreaming - clientStreaming - bidirectionalStreaming method: description: Protobuf method name. type: string example: ListActionLogItems title: description: Operation title (same as method name but with adding spaces between capital letters) type: string example: List Action Log Items customTags: description: Custom tags. type: object AsyncAPIOperationMeta: description: 'Specific parameters for AsyncAPI 3.0 operation. An APIHUB Operation for AsyncAPI is the triple (channel, operation, message). ' title: AsyncAPIOperationMeta required: - action - channel - protocol - asyncOperationId - messageId type: object properties: action: description: 'AsyncAPI operation action: send or receive.' type: string enum: - send - receive channel: description: 'AsyncAPI channel identifier. Uses channel.title if available; otherwise uses channelId (key in the document''s root channels map). ' type: string example: User Signup Channel protocol: description: 'Communication protocol derived from the channel''s first server. Expected values: kafka, amqp. Any other protocol value from the spec is displayed as-is. If the channel has no server references or the protocol cannot be resolved, the value is "Unknown". ' type: string example: kafka asyncOperationId: description: 'AsyncAPI operationId as defined in the AsyncAPI specification. The key in the root operations map that identifies the operation. ' type: string example: onUserSignUp messageId: description: 'AsyncAPI messageId as defined in the AsyncAPI specification. The key in the channel''s messages map that identifies the message. ' type: string example: userSignedUp customTags: description: Custom tags. type: object GraphQLOperationMeta: description: Specific parameters for GraphQL operation. title: GraphQLOperationMeta required: - type - method type: object properties: type: description: Operation type type: string enum: - query - mutation - subscription method: description: GraphQL operation method. type: string example: getPaymentMethodSpecificationCore title: description: Operation summary/title. type: string customTags: description: Custom tags. type: object RestOperation: description: REST operation object. title: RestOperation allOf: - $ref: '#/components/schemas/Operation' - $ref: '#/components/schemas/RestOperationMeta' AsyncAPIOperation: description: AsyncAPI operation object. title: AsyncAPIOperation allOf: - $ref: '#/components/schemas/Operation' - $ref: '#/components/schemas/AsyncAPIOperationMeta' parameters: packageId: name: packageId in: path description: Package unique identifier (full alias) required: true schema: type: string example: QS.CloudQSS.CPQ.Q-TMF apiType: name: apiType description: Type of the API. in: path required: true schema: type: string enum: - rest - graphql - protobuf - asyncapi version: name: version in: path description: Package version required: true schema: type: string example: '2022.3' asyncapiProtocol: name: asyncapiProtocol in: query description: 'Filter operations by communication protocol. Applicable only when apiType = asyncapi; ignored for other API types. The value is the protocol string from the channel''s server (e.g. kafka, amqp). Use "Unknown" for operations where the protocol could not be resolved. ' schema: type: string example: kafka apiAudience: name: apiAudience in: query description: 'Filter operations by apiAudience. * internal - APIs are available for integration within product application. * external - APIs exposed outside the boundary of the product application: solution delivery integrations, 3rd party integrations, customer integrations. * unknown - If any value other than internal or external is used, the API is considered as unknown. ' schema: type: string enum: - all - internal - external - unknown default: all page: name: page in: query description: Page number schema: type: number default: 0 limit: name: limit in: query description: Requested number of resources to be provided in response. schema: type: number default: 100 maximum: 100 minimum: 1 asyncapiChannel: name: asyncapiChannel in: query description: 'Filter operations by AsyncAPI channel identifier (comma-separated). Applicable only when apiType = asyncapi; ignored for other API types. ' schema: type: string example: userSignup,orderCreated groupName: name: groupName in: path description: Version Group required: true schema: type: string examples: VersionReferencedAsPreviousByRelease: description: Version cannot be changed to 'draft' because a released version uses it as its previous version value: status: 400 code: '8600' message: 'Version 2024.1 for package QS.group.my-package cannot be changed to the ''draft'' status because it is the previous version of released versions: QS.group.other-package|2024.2@1' params: version: '2024.1' packageId: QS.group.my-package releaseVersions: QS.group.other-package|2024.2@1 InternalServerError: description: 'Example: default internal server error response' value: status: 500 code: APIHUB-8000 reason: InternalServerError message: InternalServerError PreviousVersionNotRelease: description: A release version cannot reference a draft previous version value: status: 400 code: '8600' message: Version 2024.2 for package QS.group.my-package cannot be published with the 'release' status because previous version 2024.1 for package QS.group.previous-package is in the 'draft' status. Change the previous version to 'release', or publish this version as a draft. params: version: '2024.2' packageId: QS.group.my-package previousVersion: '2024.1' previousVersionPackageId: QS.group.previous-package PackageNotFound: description: Package not found by ID. Response for the 404 error value: status: 404 code: APIHUB-3020 message: package with packageId = $packageId not found IncorrectInputParameters: description: Incorrect input parameters value: status: 400 code: APIHUB-COMMON-4001 message: Incorrect input parameters securitySchemes: BearerAuth: type: http description: 'Bearer token authentication (JWT). Default security scheme for API usage. Provide Authorization: Bearer .' scheme: bearer bearerFormat: JWT CookieAuth: type: apiKey in: cookie name: apihub-access-token description: Authentication via the `apihub-access-token` cookie. api-key: type: apiKey description: API key authentication. Send the key in the api-key header. name: api-key in: header BasicAuth: type: http description: Login/password authentication. scheme: basic PersonalAccessToken: type: apiKey description: Personal access token authentication. Send the token in the X-Personal-Access-Token header; use for user-issued/script access. name: X-Personal-Access-Token in: header RefreshTokenAuth: type: apiKey in: cookie name: apihub-refresh-token description: Authentication via refresh token cookie externalDocs: description: Find out more about this project and repository documentation url: https://github.com/Netcracker/qubership-apihub