openapi: 3.1.0 info: title: Apicurio Registry Admin Artifacts 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: Artifacts paths: /ids/globalIds/{globalId}: summary: Access artifact content utilizing an artifact version's globally unique identifier. parameters: - name: globalId description: Global identifier for an artifact version. schema: format: int64 type: integer in: path required: true get: tags: - Artifacts parameters: - name: references description: Allows the user to specify how references in the content should be treated. schema: $ref: '#/components/schemas/HandleReferencesType' in: query - name: returnArtifactType description: 'When set to `true`, the HTTP response will include a header named `X-Registry-ArtifactType` that contains the type of the artifact being returned.' schema: type: boolean in: query responses: '200': $ref: '#/components/responses/ArtifactContent' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: getContentByGlobalId summary: Get artifact by global ID description: 'Gets the content for an artifact version in the registry using its globally unique identifier. This operation may fail for one of the following reasons: * No artifact version with this `globalId` exists (HTTP error `404`) * A server error occurred (HTTP error `500`) ' /search/artifacts: summary: Search for artifacts in the registry. get: tags: - Artifacts parameters: - name: name description: Filter by artifact name. schema: type: string in: query - name: offset description: The number of artifacts 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 artifacts 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/ArtifactSortBy' 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: type: string 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: type: string in: query - name: artifactType description: Filter by artifact type (`AVRO`, `JSON`, etc). schema: $ref: '#/components/schemas/ArtifactType' in: query responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArtifactSearchResults' description: 'On a successful response, returns a result set of artifacts - one for each artifact in the registry that matches the criteria.' '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: searchArtifacts summary: Search for artifacts description: 'Returns a paginated list of all artifacts 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: - Artifacts 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 for matching artifacts. schema: $ref: '#/components/schemas/ArtifactType' in: query - name: groupId description: Filter by artifact group. schema: type: string in: query - name: offset description: The number of artifacts 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 artifacts 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/ArtifactSortBy' in: query responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArtifactSearchResults' description: 'On a successful response, returns a result set of artifacts - one for each artifact in the registry that matches the criteria.' '400': $ref: '#/components/responses/BadRequest' '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: searchArtifactsByContent summary: Search for artifacts by content description: 'Returns a paginated list of all artifacts with at least one version that matches the posted content. This operation can fail for the following reasons: * Provided content (request body) was empty (HTTP error `400`) * A server error occurred (HTTP error `500`) ' /ids/contentIds/{contentId}/references: parameters: - name: contentId description: Global identifier for a single artifact content. schema: format: int64 type: integer in: path required: true get: tags: - Artifacts responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ArtifactReference' description: A list containing all the references for the artifact with the given content id. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: referencesByContentId summary: List artifact references by content ID description: 'Returns a list containing all the artifact references using the artifact content ID. This operation may fail for one of the following reasons: * A server error occurred (HTTP error `500`)' /ids/globalIds/{globalId}/references: parameters: - name: globalId description: Global identifier for an artifact version. schema: format: int64 type: integer 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 get: tags: - Artifacts responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ArtifactReference' description: A list containing all the references for the artifact with the given global id. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: referencesByGlobalId summary: List artifact references by global ID description: 'Returns a list containing all the artifact references using the artifact global ID. This operation may fail for one of the following reasons: * A server error occurred (HTTP error `500`)' /groups/{groupId}/artifacts: summary: Manage the collection of artifacts within a single group 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 get: tags: - Artifacts parameters: - name: limit description: The number of artifacts to return. Defaults to 20. schema: type: integer in: query - name: offset description: The number of artifacts to skip before starting the result set. Defaults to 0. schema: type: integer in: query - 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/ArtifactSortBy' in: query responses: '200': content: application/json: schema: $ref: '#/components/schemas/ArtifactSearchResults' description: On a successful response, returns a bounded set of artifacts. '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: listArtifactsInGroup summary: List artifacts in group description: Returns a list of all artifacts in the group. This list is paged. post: requestBody: description: The artifact being created. content: application/json: schema: $ref: '#/components/schemas/CreateArtifact' required: true tags: - Artifacts parameters: - name: ifExists description: Set this option to instruct the server on what to do if the artifact already exists. schema: $ref: '#/components/schemas/IfArtifactExists' in: query - name: canonical description: Used only when the `ifExists` query parameter is set to `RETURN_OR_UPDATE`, this parameter can be set to `true` to indicate that the server should "canonicalize" the content when searching for a matching version. The canonicalization algorithm is unique to each artifact type, but typically involves removing extra whitespace and formatting the content in a consistent manner. schema: type: boolean in: query - 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/CreateArtifactResponse' description: Artifact 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: createArtifact summary: Create artifact description: "Creates a new artifact. The body of the request should be a `CreateArtifact` \nobject, which includes the metadata of the new artifact and, optionally, the \nmetadata and content of the first version.\n\nIf the artifact type is not provided, the registry attempts to figure out what \nkind of artifact is being added from the\nfollowing supported list:\n\n* Avro (`AVRO`)\n* Protobuf (`PROTOBUF`)\n* JSON Schema (`JSON`)\n* Kafka Connect (`KCONNECT`)\n* OpenAPI (`OPENAPI`)\n* AsyncAPI (`ASYNCAPI`)\n* GraphQL (`GRAPHQL`)\n* Web Services Description Language (`WSDL`)\n* XML Schema (`XSD`)\n\nAn artifact will be created using the unique artifact ID that can optionally be \nprovided in the request body. If not provided in the request, the server will\ngenerate a unique ID for the artifact. It is typically recommended that callers\nprovide the ID, because it is typically a meaningful identifier, and as such\nfor most use cases should be supplied by the caller.\n\nIf an artifact with the provided artifact ID already exists, the default behavior\nis for the server to reject the content with a 409 error. However, the caller can\nsupply the `ifExists` query parameter to alter this default behavior. The `ifExists`\nquery parameter can have one of the following values:\n\n* `FAIL` (*default*) - server rejects the content with a 409 error\n* `CREATE_VERSION` - server creates a new version of the existing artifact and returns it\n* `FIND_OR_CREATE_VERSION` - server returns an existing **version** that matches the \nprovided content if such a version exists, otherwise a new version is created\n\nThis operation may fail for one of the following reasons:\n\n* An invalid `ArtifactType` was indicated (HTTP error `400`)\n* No `ArtifactType` was indicated and the server could not determine one from the content (HTTP error `400`)\n* Provided content (request body) was empty (HTTP error `400`)\n* An invalid version number was used for the optional included first version (HTTP error `400`)\n* The group does not exist and automatic-group-creation is not enabled (HTTP error `404`)\n* An artifact with the provided ID already exists (HTTP error `409`)\n* The content violates one of the configured global rules (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n\nNote that if the `dryRun` query parameter is set to `true`, then this operation\nwill not actually make any changes. Instead it will succeed or fail based on \nwhether it **would have worked**. Use this option to, for example, check if an\nartifact is valid or if a new version passes configured compatibility checks." delete: tags: - Artifacts responses: '204': description: When the delete operation is successful, a simple 204 is returned. '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: deleteArtifactsInGroup summary: Delete artifacts in group description: Deletes all of the artifacts that exist in a given group. /ids/contentHashes/{contentHash}/references: parameters: - name: contentHash description: SHA-256 content hash for a single artifact content. schema: type: string in: path required: true get: tags: - Artifacts responses: '200': content: application/json: schema: type: array items: $ref: '#/components/schemas/ArtifactReference' description: A list containing all the references for the artifact with the given content hash. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: referencesByContentHash summary: List artifact references by hash description: 'Returns a list containing all the artifact references using the artifact content hash. This operation may fail for one of the following reasons: * A server error occurred (HTTP error `500`) ' /ids/contentHashes/{contentHash}: summary: Access artifact content utilizing the SHA-256 hash of the content. parameters: - name: contentHash description: SHA-256 content hash for a single artifact content. schema: type: string in: path required: true get: tags: - Artifacts responses: '200': $ref: '#/components/responses/ArtifactContent' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: getContentByHash summary: Get artifact content by SHA-256 hash description: "Gets the content for an artifact version in the registry using the \nSHA-256 hash of the content. This content hash may be shared by multiple artifact\nversions in the case where the artifact versions have identical content.\n\nThis operation may fail for one of the following reasons:\n\n* No content with this `contentHash` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n" /ids/contentIds/{contentId}: summary: Access artifact content utilizing the unique content identifier for that content. parameters: - name: contentId description: Global identifier for a single artifact content. schema: format: int64 type: integer in: path required: true get: tags: - Artifacts responses: '200': $ref: '#/components/responses/ArtifactContent' '404': $ref: '#/components/responses/NotFound' '500': $ref: '#/components/responses/ServerError' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' operationId: getContentById summary: Get artifact content by ID description: 'Gets the content for an artifact version in the registry using the unique content identifier for that content. This content ID may be shared by multiple artifact versions in the case where the artifact versions are identical. This operation may fail for one of the following reasons: * No content with this `contentId` exists (HTTP error `404`) * A server error occurred (HTTP error `500`) ' /groups/{groupId}/artifacts/{artifactId}: summary: Manage a single artifact. 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 delete: tags: - Artifacts responses: '204': description: Returned when the artifact was successfully deleted. '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: deleteArtifact summary: Delete artifact description: 'Deletes an artifact completely, resulting in all versions of the artifact also being deleted. This may fail for one of the following reasons: * No artifact with the `artifactId` exists (HTTP error `404`) * A server error occurred (HTTP error `500`)' components: schemas: CreateArtifact: description: Data sent when creating a new artifact. required: - artifactId type: object properties: artifactId: $ref: '#/components/schemas/ArtifactId' description: '' artifactType: $ref: '#/components/schemas/ArtifactType' description: '' name: description: '' type: string description: description: '' type: string labels: $ref: '#/components/schemas/Labels' description: '' firstVersion: $ref: '#/components/schemas/CreateVersion' description: '' example: artifactId: mytopic-value artifactType: AVRO name: Invoice description: A standard Acme invoice payload. labels: label-1: value-1 label-2: value-2 firstVersion: version: 1.0.0 content: content: '{"type":"record","name":"ExampleType","fields":[{"name":"sdfgfsdgsdg","type":"string"}]}' contentType: application/json references: [] name: ExampleType description: A simple example of an Avro type. labels: {} ContractMetadata: title: ContractMetadata description: Contract metadata for an artifact. type: object properties: status: description: The contract lifecycle status. type: string enum: - DRAFT - STABLE - DEPRECATED ownerTeam: description: The team that owns the contract. type: string ownerDomain: description: The domain the contract belongs to. type: string supportContact: description: Support contact email. type: string classification: description: Data classification level. type: string enum: - PUBLIC - INTERNAL - CONFIDENTIAL - RESTRICTED stage: description: Promotion stage. type: string enum: - DEV - STAGE - PROD stableDate: description: ISO-8601 date when contract became stable. type: string deprecatedDate: description: ISO-8601 date when contract was deprecated. type: string deprecationReason: description: Reason for deprecation. type: string compatibilityGroup: description: Compatibility group for schema evolution scoping. type: string FileContent: format: binary type: string x-codegen-inline: true Version: description: 'A single version of an artifact. Can be provided by the client when creating a new version, or it can be server-generated. The value can be any string unique to the artifact, but it is recommended to use a simple integer or a semver value.' pattern: ^[a-zA-Z0-9._\-+]{1,256}$ type: string example: '"3.1.6"' Labels: description: User-defined name-value pairs. Name and value must be strings. type: object additionalProperties: type: string x-codegen-inline: true x-codegen-type: StringMap ArtifactMetaData: title: Root Type for ArtifactMetaData description: '' required: - artifactId - owner - createdOn - modifiedBy - modifiedOn - artifactType - groupId type: object properties: name: type: string description: type: string owner: type: string createdOn: format: date-time type: string modifiedBy: type: string modifiedOn: format: date-time type: string artifactType: $ref: '#/components/schemas/ArtifactType' description: '' labels: $ref: '#/components/schemas/Labels' description: '' groupId: $ref: '#/components/schemas/GroupId' description: '' artifactId: $ref: '#/components/schemas/ArtifactId' description: '' contractMetadata: $ref: '#/components/schemas/ContractMetadata' description: Contract metadata projected from the artifact labels. Only present when data contracts are enabled and contract labels exist. example: groupId: My-Group artifactId: Procurement-Invoice name: Artifact Name description: Description of the artifact artifactType: AVRO owner: user1 createdOn: '2019-03-22T12:51:19Z' modifiedBy: user2 modifiedOn: '2019-07-19T15:09:00Z' labels: custom-1: foo custom-2: bar IfArtifactExists: description: '' enum: - FAIL - CREATE_VERSION - FIND_OR_CREATE_VERSION type: string ArtifactReference: title: Root Type for ArtifactReference description: A reference to a different artifact. Typically used with artifact types that can have dependencies like Protobuf. required: - artifactId - groupId - name type: object properties: groupId: type: string artifactId: type: string version: type: string name: type: string example: groupId: mygroup artifactId: 13842090-2ce3-11ec-8d3d-0242ac130003 version: '2' name: foo.bar.Open GroupId: description: An ID of a single artifact group. pattern: ^.{1,512}$ type: string example: '"my-group"' SearchedArtifact: description: Models a single artifact from the result set returned when searching for artifacts. required: - owner - createdOn - artifactId - artifactType - groupId - modifiedBy - modifiedOn type: object properties: name: description: '' type: string description: description: '' type: string createdOn: format: date-time description: '' type: string owner: description: '' type: string artifactType: $ref: '#/components/schemas/ArtifactType' description: '' modifiedOn: format: date-time description: '' type: string modifiedBy: description: '' type: string groupId: $ref: '#/components/schemas/GroupId' description: '' artifactId: $ref: '#/components/schemas/ArtifactId' description: '' labels: $ref: '#/components/schemas/Labels' description: '' example: groupId: My-Group artifactId: Procurement-Invoice name: Artifact Name description: Description of the artifact artifactType: AVRO owner: user1 createdOn: '2019-03-22T12:51:19Z' modifiedBy: user2 modifiedOn: '2019-04-01T12:51:19Z' ReferenceType: description: '' enum: - OUTBOUND - INBOUND type: string example: '"INBOUND"' x-codegen-package: io.apicurio.registry.types VersionContent: description: '' required: - content - contentType type: object properties: content: description: Raw content of the artifact version or a valid (and accessible) URL where the content can be found. type: string example: '' references: description: Collection of references to other artifacts. type: array items: $ref: '#/components/schemas/ArtifactReference' contentType: description: The content-type, such as `application/json` or `text/xml`. type: string encoding: description: Optional encoding for the content property. When set to 'base64', the content value will be base64-decoded by the server before processing. type: string enum: - base64 ArtifactType: description: '' type: string example: AVRO x-codegen-package: io.apicurio.registry.types VersionState: description: 'Describes the state of an artifact or artifact version. * ENABLED * DISABLED * DEPRECATED * DRAFT * SUNSET — Signals that a migration deadline has passed and the version will be removed. Requires transitioning through DEPRECATED first. Added in 3.3.0. ' enum: - ENABLED - DISABLED - DEPRECATED - DRAFT - SUNSET type: string x-codegen-package: io.apicurio.registry.types ArtifactId: description: The ID of a single artifact. pattern: ^.{1,512}$ type: string example: '"example-artifact"' ProblemDetails: title: Root Type for Error description: 'All error responses, whether `4xx` or `5xx` will include one of these as the response body.' required: - title - status type: object properties: detail: description: A human-readable explanation specific to this occurrence of the problem. type: string type: description: A URI reference [RFC3986] that identifies the problem type. type: string title: description: A short, human-readable summary of the problem type. type: string status: format: int32 description: The HTTP status code. type: integer instance: description: A URI reference that identifies the specific occurrence of the problem. type: string name: description: The name of the error (typically a server exception class name). type: string example: status: 500 name: NullPointerException title: An error occurred somewhere. HandleReferencesType: description: 'How to handle references when retrieving content. References can either be left unchanged (`PRESERVE`), re-written so they are valid in the context of the registry (`REWRITE`), or fully dereferenced such that all externally referenced content is internalized (`DEREFERENCE`).' enum: - PRESERVE - DEREFERENCE - REWRITE type: string RuleViolationProblemDetails: title: Root Type for Error description: 'All error responses, whether `4xx` or `5xx` will include one of these as the response body.' type: object allOf: - required: - causes type: object properties: causes: description: List of rule violation causes. type: array items: $ref: '#/components/schemas/RuleViolationCause' - $ref: '#/components/schemas/ProblemDetails' example: error_code: 409 message: Artifact failed validation causes: - description: API is missing a title context: /info[title] - description: Operation IDs must be unique context: /paths[/invoices]/put[operationId] x-codegen-extendsClass: io.apicurio.registry.rest.v3.beans.ProblemDetails SortOrder: description: '' enum: - asc - desc type: string CreateVersion: description: '' required: - content type: object properties: version: $ref: '#/components/schemas/Version' description: '' content: $ref: '#/components/schemas/VersionContent' description: '' name: description: '' type: string description: description: '' type: string labels: $ref: '#/components/schemas/Labels' description: '' branches: description: '' type: array items: type: string isDraft: description: '' type: boolean example: version: 1.0.1 content: content: '{"type":"record","name":"ExampleType","fields":[{"name":"foo","type":"string"}]}' contentType: application/json name: Version 1.0.1 description: The latest version of this artifact. isDraft: false RuleViolationCause: title: Root Type for RuleViolationCause description: '' type: object properties: description: type: string context: type: string example: description: External documentation URL is not valid (it must be formatted as a URL). context: /info/externalDocs[url] ArtifactSearchResults: description: Describes the response received when searching for artifacts. required: - count - artifacts type: object properties: artifacts: description: The artifacts returned in the result set. type: array items: $ref: '#/components/schemas/SearchedArtifact' count: description: "The total number of artifacts that matched the query that produced the result set (may be \nmore than the number of artifacts in the result set)." type: integer CreateArtifactResponse: description: '' required: - artifact type: object properties: artifact: $ref: '#/components/schemas/ArtifactMetaData' description: '' version: $ref: '#/components/schemas/VersionMetaData' description: '' ArtifactSortBy: description: '' enum: - groupId - artifactId - createdOn - modifiedOn - artifactType - name type: string VersionMetaData: title: Root Type for ArtifactVersionMetaData description: '' required: - createdOn - owner - version - artifactType - globalId - artifactId - contentId type: object properties: version: $ref: '#/components/schemas/Version' name: type: string description: type: string owner: type: string createdOn: format: date-time type: string artifactType: $ref: '#/components/schemas/ArtifactType' description: '' globalId: format: int64 description: '' type: integer state: $ref: '#/components/schemas/VersionState' description: '' labels: $ref: '#/components/schemas/Labels' description: '' groupId: $ref: '#/components/schemas/GroupId' description: '' contentId: format: int64 description: '' type: integer artifactId: $ref: '#/components/schemas/ArtifactId' description: '' modifiedBy: description: '' type: string modifiedOn: format: date-time description: '' type: string example: groupId: My-Group artifactId: my-artifact-id version: 1221432 artifactType: PROTOBUF name: Artifact Name description: The description of the artifact owner: user1 createdOn: '2019-05-17T12:00:00Z' globalId: 183282932983 contentId: 12347 labels: custom-1: foo custom-2: bar responses: Forbidden: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' examples: ForbiddenExample: value: detail: 'ForbiddenException: User is not authorized to perform this operation.' title: User is not authorized to perform this operation. status: 403 name: ForbiddenException description: Common response for all operations that can return a `403` error indicating the user is authenticated but not authorized. Unauthorized: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' examples: UnauthorizedExample: value: detail: 'UnauthorizedException: User is not authenticated.' title: User is not authenticated. status: 401 name: UnauthorizedException description: Common response for all operations that can return a `401` error indicating authentication is required. NotFound: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' examples: NotFoundExample: value: error_code: 404 message: No artifact with id 'Topic-1/Inbound' could be found. description: Common response for all operations that can return a `404` error. ArtifactContent: headers: X-Registry-ArtifactType: schema: $ref: '#/components/schemas/ArtifactType' content: '*/*': schema: $ref: '#/components/schemas/FileContent' examples: OpenAPI: value: openapi: 3.0.2 info: title: Empty API version: 1.0.0 description: An example API design using OpenAPI. description: The content of one version of one artifact. RuleViolationConflict: content: application/json: schema: $ref: '#/components/schemas/RuleViolationProblemDetails' examples: RuleViolationConflictExample: value: error_code: 409 message: The artifact content was invalid causes: - description: API is missing a title context: /info[title] - description: Operation IDs must be unique context: /paths[/invoices]/put[operationId] description: Common response used when an input conflicts with existing data. BadRequest: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' description: Common response for all operations that can return a `400` error. ServerError: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' examples: ErrorExample: value: error_code: 500 message: Lost connection to the database. description: Common response for all operations that can fail with an unexpected server error. MethodNotAllowed: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' examples: MethodNotAllowedExample: value: error_code: 405 message: Method is currently not supported or disabled. description: Common response for all operations that can fail due to method not allowed or disabled. UnprocessableEntity: content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' examples: UnprocessableEntityExample: value: error_code: 422 message: 'The artifact content is invalid: Schema validation failed' name: SchemaValidationException description: 'The artifact content is not valid for one of the following reasons: * Schema validation failed * References could not be validated * Required references are missing' securitySchemes: BasicAuth: type: http scheme: basic OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://example.com/realms/apicurio/protocol/openid-connect/token scopes: read: Read access write: Write access admin: Admin access x-codegen: suppress-date-time-formatting: true bean-annotations: - io.quarkus.runtime.annotations.RegisterForReflection - annotation: lombok.experimental.SuperBuilder excludeEnums: true - annotation: lombok.AllArgsConstructor excludeEnums: true - annotation: lombok.NoArgsConstructor excludeEnums: true - annotation: lombok.EqualsAndHashCode excludeEnums: true - annotation: lombok.ToString(callSuper = true) excludeEnums: true