Apicurio Versions API

The Versions API from Apicurio — 11 operation(s) for versions.

OpenAPI Specification

apicurio-versions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Apicurio Registry Admin Versions API
  version: 3.1.x
  description: Apicurio Registry is a high-performance, runtime registry for schemas and API designs. It stores and manages OpenAPI, AsyncAPI, Avro, JSON Schema, Protobuf, and other artifact types, providing a REST API for schema management with compatibility checking and content versioning.
  contact:
    name: Apicurio
    url: https://www.apicur.io/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8080/apis/registry/v3
  description: Local Apicurio Registry
tags:
- name: Versions
paths:
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}:
    summary: Manage a single version of a single artifact in the registry.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
      schema:
        type: string
      in: path
      required: true
    delete:
      tags:
      - Versions
      responses:
        '204':
          description: The artifact version was successfully deleted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: deleteArtifactVersion
      summary: Delete artifact version
      description: "Deletes a single version of the artifact. Parameters `groupId`, `artifactId` and the unique `version`\nare needed. If this is the only version of the artifact, this operation is the same as \ndeleting the entire artifact.\n\nThis feature is disabled by default and it's discouraged for normal usage. To enable it, set the `registry.rest.artifact.deletion.enabled` property to true. This operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n * Feature is disabled (HTTP error `405`)\n * A server error occurred (HTTP error `500`)\n"
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/references:
    summary: Manage the references for a single version of an artifact in the registry.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
      schema:
        type: string
      in: path
      required: true
    - name: refType
      description: Determines the type of reference to return, either INBOUND or OUTBOUND.  Defaults to OUTBOUND.
      schema:
        $ref: '#/components/schemas/ReferenceType'
      in: query
      required: false
    get:
      tags:
      - Versions
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ArtifactReference'
          description: List of all the artifact references for this artifact.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getArtifactVersionReferences
      summary: Get artifact version references
      description: 'Retrieves all references for a single version of an artifact.  Both the `artifactId` and the

        unique `version` number must be provided.  Using the `refType` query parameter, it is possible

        to retrieve an array of either the inbound or outbound references.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * No version with this `version` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/references/graph:
    summary: Get a graph representation of artifact references.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: An expression resolvable to a specific version ID within the given group and artifact.
      schema:
        type: string
      in: path
      required: true
    - name: direction
      description: The direction of references to include in the graph. Can be OUTBOUND (artifacts this version references), INBOUND (artifacts that reference this version), or BOTH. Defaults to OUTBOUND.
      schema:
        $ref: '#/components/schemas/ReferenceGraphDirection'
      in: query
      required: false
    - name: depth
      description: The maximum depth of the reference graph to traverse. Can be 1, 2, 3, or 0 for unlimited. Defaults to 3.
      schema:
        type: integer
        minimum: 0
        maximum: 10
        default: 3
      in: query
      required: false
    get:
      tags:
      - Versions
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferenceGraph'
          description: A graph representation of all artifact references.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getArtifactVersionReferencesGraph
      summary: Get artifact version references as a graph
      description: 'Retrieves a graph representation of all references for a single version of an artifact. The graph includes nodes representing artifacts, edges representing references between them, and metadata about the graph structure including cycle detection.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * No version with this `version` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/comments:
    summary: Manage a collection of comments for an artifact version
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
      schema:
        type: string
      in: path
      required: true
    get:
      tags:
      - Versions
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Comment'
          description: List of all the comments for this artifact.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getArtifactVersionComments
      summary: Get artifact version comments
      description: 'Retrieves all comments for a version of an artifact.  Both the `artifactId` and the

        unique `version` number must be provided.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * No version with this `version` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewComment'
        required: true
      tags:
      - Versions
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
          description: The comment was successfully created.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: addArtifactVersionComment
      summary: Add new comment
      description: 'Adds a new comment to the artifact version.  Both the `artifactId` and the

        unique `version` number must be provided.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * No version with this `version` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/comments/{commentId}:
    summary: Manage a single comment
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
      schema:
        type: string
      in: path
      required: true
    - name: commentId
      description: The unique identifier of a single comment.
      schema:
        type: string
      in: path
      required: true
    put:
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewComment'
        required: true
      tags:
      - Versions
      responses:
        '204':
          description: The value of the comment was successfully changed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: updateArtifactVersionComment
      summary: Update a comment
      description: "Updates the value of a single comment in an artifact version.  Only the owner of the\ncomment can modify it.  The `artifactId`, unique `version` number, and `commentId` \nmust be provided.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* No comment with this `commentId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
    delete:
      tags:
      - Versions
      responses:
        '204':
          description: The comment was successfully deleted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: deleteArtifactVersionComment
      summary: Delete a single comment
      description: "Deletes a single comment in an artifact version.  Only the owner of the\ncomment can delete it.  The `artifactId`, unique `version` number, and `commentId` \nmust be provided.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* No comment with this `commentId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
  /groups/{groupId}/artifacts/{artifactId}/versions:
    summary: Manage all the versions of an artifact in the registry.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    get:
      tags:
      - Versions
      parameters:
      - name: offset
        description: The number of versions to skip before starting to collect the result set.  Defaults to 0.
        schema:
          type: integer
        in: query
        required: false
      - name: limit
        description: The number of versions to return.  Defaults to 20.
        schema:
          type: integer
        in: query
        required: false
      - name: order
        description: Sort order, ascending (`asc`) or descending (`desc`).
        schema:
          $ref: '#/components/schemas/SortOrder'
        in: query
      - name: orderby
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `version`

          * `createdOn`

          '
        schema:
          $ref: '#/components/schemas/VersionSortBy'
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionSearchResults'
          description: List of all artifact versions.
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: listArtifactVersions
      summary: List artifact versions
      description: 'Returns a list of all versions of the artifact.  The result set is paged.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * A server error occurred (HTTP error `500`)

        '
    post:
      requestBody:
        description: The version to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVersion'
        required: true
      tags:
      - Versions
      parameters:
      - name: dryRun
        description: 'When set to `true`, the operation will not result in any changes. Instead, it

          will return a result based on whether the operation **would have succeeded**.'
        schema:
          type: boolean
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionMetaData'
          description: The artifact version was successfully created.
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/RuleViolationConflict'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: createArtifactVersion
      summary: Create artifact version
      description: "Creates a new version of the artifact by uploading new content.  The configured rules for\nthe artifact are applied, and if they all pass, the new content is added as the most recent \nversion of the artifact.  If any of the rules fail, an error is returned.\n\nThe body of the request can be the raw content of the new artifact version, or the raw content \nand a set of references pointing to other artifacts, and the type\nof that content should match the artifact's type (for example if the artifact type is `AVRO`\nthen the content of the request should be an Apache Avro document).\n\nThis operation can fail for the following reasons:\n\n* Provided content (request body) was empty (HTTP error `400`)\n* An invalid version number was provided (HTTP error `400`)\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* The new content violates one of the rules configured for the artifact (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n"
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/content:
    summary: Manage a single version of a single artifact in the registry.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
      schema:
        type: string
      in: path
      required: true
    get:
      tags:
      - Versions
      parameters:
      - name: references
        description: Allows the user to specify how references in the content should be treated.
        schema:
          $ref: '#/components/schemas/HandleReferencesType'
        in: query
      responses:
        '200':
          $ref: '#/components/responses/ArtifactContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: getArtifactVersionContent
      summary: Get artifact version
      description: "Retrieves a single version of the artifact content.  Both the `artifactId` and the\nunique `version` number must be provided.  The `Content-Type` of the response depends \non the artifact type.  In most cases, this is `application/json`, but for some types \nit may be different (for example, `PROTOBUF`).\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
    put:
      requestBody:
        description: The new artifact version content.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VersionContent'
        required: true
      tags:
      - Versions
      responses:
        '204':
          description: The artifact version content was successfully updated.
        '404':
          $ref: '#/components/responses/NotFound'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: updateArtifactVersionContent
      summary: Update artifact version content
      description: 'Updates the content of a single version of an artifact.


        NOTE: the artifact must be in `DRAFT` status.


        Both the `artifactId` and the unique `version` number must be provided to identify

        the version to update.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * No version with this `version` exists (HTTP error `404`)

        * Artifact version not in `DRAFT` status (HTTP error `409`)

        * A server error occurred (HTTP error `500`)

        '
  /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/export:
    summary: Export a Protobuf artifact version with dependencies as a ZIP file.
    parameters:
    - name: groupId
      description: The artifact group ID.  Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/GroupId'
      in: path
      required: true
    - name: artifactId
      description: The artifact ID.  Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern.
      schema:
        $ref: '#/components/schemas/ArtifactId'
      in: path
      required: true
    - name: versionExpression
      description: An expression resolvable to a specific version ID within the given group and artifact.
      schema:
        type: string
      in: path
      required: true
    get:
      tags:
      - Versions
      responses:
        '200':
          description: The Protobuf artifact and its dependencies exported as a ZIP file with package-structured directories.
          content:
            application/zip:
              schema:
                type: string
                format: binary
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: exportArtifactVersion
      summary: Export artifact version as ZIP
      description: 'Exports a Protobuf artifact version with all its transitive dependencies as a ZIP file.

        The files in the ZIP are organized by their package names to match the expected directory

        structure for protoc compilation. Import statements are rewritten to use canonical

        package-based paths.


        This operation is only supported for PROTOBUF artifact types.


        This operation can fail for the following reasons:


        * No artifact with this `artifactId` exists (HTTP error `404`)

        * No version with this `version` exists (HTTP error `404`)

        * Artifact is not of type PROTOBUF (HTTP error `400`)

        * A server error occurred (HTTP error `500`)

        '
  /search/versions:
    summary: Search for versions in the registry.
    get:
      tags:
      - Versions
      parameters:
      - name: version
        description: Filter by version number.
        schema:
          $ref: '#/components/schemas/Version'
        in: query
      - name: offset
        description: The number of versions to skip before starting to collect the result set.  Defaults to 0.
        schema:
          default: 0
          type: integer
        in: query
        required: false
      - name: limit
        description: The number of versions to return.  Defaults to 20.
        schema:
          default: 20
          type: integer
        in: query
        required: false
      - name: order
        description: Sort order, ascending (`asc`) or descending (`desc`).
        schema:
          $ref: '#/components/schemas/SortOrder'
        in: query
      - name: orderby
        description: 'The field to sort by.  Can be one of:


          * `name`

          * `createdOn`

          '
        schema:
          $ref: '#/components/schemas/VersionSortBy'
        in: query
      - name: labels
        description: 'Filter by one or more name/value label.  Separate each name/value pair using a colon.  For

          example `labels=foo:bar` will return only artifacts with a label named `foo`

          and value `bar`.'
        schema:
          type: array
          items:
            type: string
        in: query
      - name: description
        description: Filter by description.
        schema:
          type: string
        in: query
      - name: groupId
        description: Filter by artifact group.
        schema:
          $ref: '#/components/schemas/GroupId'
        in: query
      - name: globalId
        description: Filter by globalId.
        schema:
          format: int64
          type: integer
        in: query
      - name: contentId
        description: Filter by contentId.
        schema:
          format: int64
          type: integer
        in: query
        required: false
      - name: artifactId
        description: Filter by artifactId.
        schema:
          $ref: '#/components/schemas/ArtifactId'
        in: query
      - name: name
        description: Filter by name.
        schema:
          type: string
        in: query
      - name: state
        description: Filter by version state.
        schema:
          $ref: '#/components/schemas/VersionState'
        in: query
      - name: artifactType
        description: Filter by artifact type (`AVRO`, `JSON`, etc).
        schema:
          $ref: '#/components/schemas/ArtifactType'
        in: query
      - name: content
        description: Full-text search of artifact content.  Requires the Lucene search index to be enabled.
        schema:
          type: string
        in: query
      - name: structure
        description: 'Search by structured content elements (schemas, paths, fields, etc.) using a faceted format. Supports three formats: `type:kind:name` for exact match (e.g. `openapi:schema:Pet`), `kind:name` for cross-type match (e.g. `schema:Pet`), or just `name` for plain text search. Requires the Lucene search index to be enabled.'
        schema:
          type: string
        in: query
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VersionSearchResults'
          description: 'On a successful response, returns a result set of versions - one for each version

            in the registry that matches the criteria.'
        '500':
          $ref: '#/components/responses/ServerError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      operationId: searchVersions
      summary: Search for versions
      description: 'Returns a paginated list of all versions that match the provided filter criteria.


        This operation can fail for the following reasons:


        * A server error occurred (HTTP error `500`)

        '
    post:
      requestBody:
        description: The content to search for.
        content:
          '*/*':
            schema:
              $ref: '#/components/schemas/FileContent'
        required: true
      tags:
      - Versions
      parameters:
      - name: canonical
        description: Parameter that can be set to `true` to indicate that the server should "canonicalize" the content when searching for matching artifacts.  Canonicalization is unique to each artifact type, but typically involves removing any extra whitespace and formatting the content in a consistent manner.  Must be used along with the `artifactType` query parameter.
        schema:
          type: boolean
        in: query
      - name: artifactType
        description: Indicates the type of artifact represented by the content being used for the search.  This is only needed when using the `canonical` query parameter, so that the server knows how to canonicalize the content prior to searching fo

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