Download OpenAPI specification:
Solace Schema Registry is a datastore for standard event schemas and API designs. Solace Schema Registry enables developers to manage and share the structure of their data using a REST interface. For example, client applications can dynamically push or pull the latest updates to or from the registry without needing to redeploy. Solace Schema Registry also enables developers to create rules that govern how registry content can evolve over time. For example, this includes rules for content validation and version compatibility.
The Solace Schema Registry REST API enables client applications to manage the artifacts in the registry. This API provides create, read, update, and delete operations for schema and API artifacts, rules, versions, and metadata.
The supported artifact types include:
Important: You must prefix all API operation paths with /apis/registry/v3
. For example: /apis/registry/v3/ids/globalIds/{globalId}
.
The primary way to interact with the Solace Schema Registry API is to add, update, or delete artifacts. This section includes all of these primary operations.
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:
globalId
exists (HTTP error 404
)500
)globalId required | integer <int64> Global identifier for an artifact version. |
references | string (HandleReferencesType) Enum: "PRESERVE" "DEREFERENCE" "REWRITE" Allows the user to specify how references in the content should be treated. |
returnArtifactType | boolean When set to |
{ "openapi": "3.0.2", "info": { "title": "Empty API", "version": "1.0.0", "description": "An example API design using OpenAPI." } }
Returns a paginated list of all artifacts that match the provided filter criteria.
This operation can fail for the following reasons:
500
)name | string Filter by artifact name. |
offset | integer Default: 0 The number of artifacts to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of artifacts to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (ArtifactSortBy) Enum: "groupId" "artifactId" "createdOn" "modifiedOn" "artifactType" "name" The field to sort by. Can be one of:
|
labels | Array of strings Filter by one or more name/value label. Separate each name/value pair using a colon. For
example |
description | string Filter by description. |
groupId | string Filter by artifact group. |
globalId | integer <int64> Filter by globalId. |
contentId | integer <int64> Filter by contentId. |
artifactId | string Filter by artifactId. |
artifactType | string (ArtifactType) Example: artifactType=AVRO Filter by artifact type ( |
{- "artifacts": [
- {
- "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"
}
], - "count": 0
}
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:
400
)500
)canonical | boolean Parameter that can be set to |
artifactType | string (ArtifactType) Example: artifactType=AVRO Indicates the type of artifact represented by the content being used for the search. This is only needed when using the |
groupId | string Filter by artifact group. |
offset | integer Default: 0 The number of artifacts to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of artifacts to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (ArtifactSortBy) Enum: "groupId" "artifactId" "createdOn" "modifiedOn" "artifactType" "name" The field to sort by. Can be one of:
|
The content to search for.
{- "artifacts": [
- {
- "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"
}
], - "count": 0
}
Returns a list containing all the artifact references using the artifact content ID.
This operation may fail for one of the following reasons:
500
)contentId required | integer <int64> Global identifier for a single artifact content. |
[- {
- "groupId": "mygroup",
- "artifactId": "13842090-2ce3-11ec-8d3d-0242ac130003",
- "version": "2",
- "name": "foo.bar.Open"
}
]
Returns a list containing all the artifact references using the artifact global ID.
This operation may fail for one of the following reasons:
500
)globalId required | integer <int64> Global identifier for an artifact version. |
refType | string (ReferenceType) Enum: "OUTBOUND" "INBOUND" Example: refType="INBOUND" Determines the type of reference to return, either INBOUND or OUTBOUND. Defaults to OUTBOUND. |
[- {
- "groupId": "mygroup",
- "artifactId": "13842090-2ce3-11ec-8d3d-0242ac130003",
- "version": "2",
- "name": "foo.bar.Open"
}
]
Returns a list of all artifacts in the group. This list is paged.
groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
limit | integer The number of artifacts to return. Defaults to 20. |
offset | integer The number of artifacts to skip before starting the result set. Defaults to 0. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (ArtifactSortBy) Enum: "groupId" "artifactId" "createdOn" "modifiedOn" "artifactType" "name" The field to sort by. Can be one of:
|
{- "artifacts": [
- {
- "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"
}
], - "count": 0
}
Creates a new artifact. The body of the request should be a CreateArtifact
object, which includes the metadata of the new artifact and, optionally, the
metadata and content of the first version.
If the artifact type is not provided, the registry attempts to figure out what kind of artifact is being added from the following supported list:
AVRO
)PROTOBUF
)JSON
)XSD
)An artifact will be created using the unique artifact ID that can optionally be provided in the request body. If not provided in the request, the server will generate a unique ID for the artifact. It is typically recommended that callers provide the ID, because it is typically a meaningful identifier, and as such for most use cases should be supplied by the caller.
If an artifact with the provided artifact ID already exists, the default behavior
is for the server to reject the content with a 409 error. However, the caller can
supply the ifExists
query parameter to alter this default behavior. The ifExists
query parameter can have one of the following values:
FAIL
(default) - server rejects the content with a 409 errorCREATE_VERSION
- server creates a new version of the existing artifact and returns itFIND_OR_CREATE_VERSION
- server returns an existing version that matches the
provided content if such a version exists, otherwise a new version is createdThis operation may fail for one of the following reasons:
ArtifactType
was indicated (HTTP error 400
)ArtifactType
was indicated and the server could not determine one from the content (HTTP error 400
)400
)400
)409
)409
)500
)Note that if the dryRun
query parameter is set to true
, then this operation
will not actually make any changes. Instead it will succeed or fail based on
whether it would have worked. Use this option to, for example, check if an
artifact is valid or if a new version passes configured compatibility checks.
groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
ifExists | string (IfArtifactExists) Enum: "FAIL" "CREATE_VERSION" "FIND_OR_CREATE_VERSION" Set this option to instruct the server on what to do if the artifact already exists. |
canonical | boolean Used only when the |
dryRun | boolean When set to |
The artifact being created.
artifactId required | string (ArtifactId) ^.{1,512}$ The ID of a single artifact. |
artifactType | string (ArtifactType) |
name | string |
description | string |
object (Labels) User-defined name-value pairs. Name and value must be strings. | |
object (CreateVersion) |
{- "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": { }
}
}
{- "artifact": {
- "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"
}
}, - "version": {
- "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"
}
}
}
Deletes all of the artifacts that exist in a given group.
groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
{- "error_code": 500,
- "message": "Lost connection to the database."
}
Returns a list containing all the artifact references using the artifact content hash.
This operation may fail for one of the following reasons:
500
)contentHash required | string SHA-256 content hash for a single artifact content. |
[- {
- "groupId": "mygroup",
- "artifactId": "13842090-2ce3-11ec-8d3d-0242ac130003",
- "version": "2",
- "name": "foo.bar.Open"
}
]
Gets the content for an artifact version in the registry using the SHA-256 hash of the content. This content hash may be shared by multiple artifact versions in the case where the artifact versions have identical content.
This operation may fail for one of the following reasons:
contentHash
exists (HTTP error 404
)500
)contentHash required | string SHA-256 content hash for a single artifact content. |
{ "openapi": "3.0.2", "info": { "title": "Empty API", "version": "1.0.0", "description": "An example API design using OpenAPI." } }
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:
contentId
exists (HTTP error 404
)500
)contentId required | integer <int64> Global identifier for a single artifact content. |
{ "openapi": "3.0.2", "info": { "title": "Empty API", "version": "1.0.0", "description": "An example API design using OpenAPI." } }
Deletes an artifact completely, resulting in all versions of the artifact also being deleted. This may fail for one of the following reasons:
artifactId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Sometimes the metadata for an artifact is important. For example, metadata includes when the artifact was created, last updated, and so on. This section contains operations to access (and in some cases change) an artifact's metadata.
Retrieves the metadata for a single version of the artifact. The version metadata is
a subset of the artifact metadata and only includes the metadata that is specific to
the version (for example, this doesn't include modifiedOn
).
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
{- "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"
}
}
Updates the user-editable portion of the artifact version's metadata. Only some of
the metadata fields are editable by the user. For example, description
is editable,
but createdOn
is not.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
name | string |
description | string |
object (Labels) User-defined name-value pairs. Name and value must be strings. |
{- "name": "Artifact Name",
- "description": "The description of the artifact.",
- "labels": {
- "custom-1": "foo",
- "custom-2": "bar"
}
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Gets the metadata for an artifact in the registry, based on the latest version. If the latest version of the artifact is marked as DISABLED
, the next available non-disabled version will be used. The returned metadata includes
both generated (read-only) and editable metadata (such as name and description).
This operation can fail for the following reasons:
artifactId
exists or all versions are DISABLED
(HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
{- "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"
}
}
Updates the editable parts of the artifact's metadata. Not all metadata fields can
be updated. Note that only the properties included will be updated. You can update
only the name by including only the name
property in the payload of the request.
Properties that are allowed but not present will result in the artifact's metadata
not being changed.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
Updated artifact metadata.
name | string |
description | string |
object (Labels) User-defined name-value pairs. Name and value must be strings. | |
owner | string |
{- "name": "Artifact Name",
- "description": "The description of the artifact.",
- "owner": "user-1",
- "labels": {
- "custom-1": "foo",
- "custom-2": "bar"
}
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
When artifact content is updated, old versions of the artifact content are not lost. All versions can be listed and accessed if necessary. This section describes the operations used to list and access all versions of an artifact's content and metadata.
Deletes a single version of the artifact. Parameters groupId
, artifactId
and the unique version
are needed. If this is the only version of the artifact, this operation is the same as
deleting the entire artifact.
This 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:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)405
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
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:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
refType | string (ReferenceType) Enum: "OUTBOUND" "INBOUND" Example: refType="INBOUND" Determines the type of reference to return, either INBOUND or OUTBOUND. Defaults to OUTBOUND. |
[- {
- "groupId": "mygroup",
- "artifactId": "13842090-2ce3-11ec-8d3d-0242ac130003",
- "version": "2",
- "name": "foo.bar.Open"
}
]
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:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
[- {
- "commentId": "12345",
- "value": "This is a comment on an artifact version.",
- "owner": "bwayne",
- "createdOn": "2023-07-01T15:22:01Z"
}
]
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:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
value required | string |
{- "value": "This is a new comment on an existing artifact version."
}
{- "commentId": "12345",
- "value": "This is a comment on an artifact version.",
- "owner": "bwayne",
- "createdOn": "2023-07-01T15:22:01Z"
}
Updates the value of a single comment in an artifact version. Only the owner of the
comment can modify it. The artifactId
, unique version
number, and commentId
must be provided.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)commentId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
commentId required | string The unique identifier of a single comment. |
value required | string |
{- "value": "This is a new comment on an existing artifact version."
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Deletes a single comment in an artifact version. Only the owner of the
comment can delete it. The artifactId
, unique version
number, and commentId
must be provided.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)commentId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
commentId required | string The unique identifier of a single comment. |
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Returns a list of all versions of the artifact. The result set is paged.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
offset | integer The number of versions to skip before starting to collect the result set. Defaults to 0. |
limit | integer The number of versions to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (VersionSortBy) Enum: "groupId" "artifactId" "version" "name" "createdOn" "modifiedOn" "globalId" The field to sort by. Can be one of:
|
[- 5,
- 6,
- 10,
- 103
]
Creates a new version of the artifact by uploading new content. The configured rules for the artifact are applied, and if they all pass, the new content is added as the most recent version of the artifact. If any of the rules fail, an error is returned.
The body of the request can be the raw content of the new artifact version, or the raw content
and a set of references pointing to other artifacts, and the type
of that content should match the artifact's type (for example if the artifact type is AVRO
then the content of the request should be an Apache Avro document).
This operation can fail for the following reasons:
400
)400
)artifactId
exists (HTTP error 404
)409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
dryRun | boolean When set to |
The version to be created.
version | string (Version) ^[a-zA-Z0-9._\-+]{1,256}$ 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. |
required | object (VersionContent) |
name | string |
description | string |
object (Labels) User-defined name-value pairs. Name and value must be strings. | |
branches | Array of strings |
isDraft | boolean |
{- "version": "\"3.1.6\"",
- "content": {
- "content": "",
- "references": [
- {
- "groupId": "mygroup",
- "artifactId": "13842090-2ce3-11ec-8d3d-0242ac130003",
- "version": "2",
- "name": "foo.bar.Open"
}
], - "contentType": "string"
}, - "name": "string",
- "description": "string",
- "labels": {
- "property1": "string",
- "property2": "string"
}, - "branches": [
- "string"
], - "isDraft": true
}
{- "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"
}
}
Retrieves a single version of the artifact content. Both the artifactId
and the
unique version
number must be provided. The Content-Type
of the response depends
on the artifact type. In most cases, this is application/json
, but for some types
it may be different (for example, PROTOBUF
).
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
references | string (HandleReferencesType) Enum: "PRESERVE" "DEREFERENCE" "REWRITE" Allows the user to specify how references in the content should be treated. |
{ "openapi": "3.0.2", "info": { "title": "Empty API", "version": "1.0.0", "description": "An example API design using OpenAPI." } }
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:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)DRAFT
status (HTTP error 409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
The new artifact version content.
content required | string Raw content of the artifact version or a valid (and accessible) URL where the content can be found. |
Array of objects (Root Type for ArtifactReference) Collection of references to other artifacts. | |
contentType required | string The content-type, such as |
{- "content": "",
- "references": [
- {
- "groupId": "mygroup",
- "artifactId": "13842090-2ce3-11ec-8d3d-0242ac130003",
- "version": "2",
- "name": "foo.bar.Open"
}
], - "contentType": "string"
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Returns a paginated list of all versions that match the provided filter criteria.
This operation can fail for the following reasons:
500
)version | string (Version) ^[a-zA-Z0-9._\-+]{1,256}$ Example: version="3.1.6" Filter by version number. |
offset | integer Default: 0 The number of versions to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of versions to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (VersionSortBy) Enum: "groupId" "artifactId" "version" "name" "createdOn" "modifiedOn" "globalId" The field to sort by. Can be one of:
|
labels | Array of strings Filter by one or more name/value label. Separate each name/value pair using a colon. For
example |
description | string Filter by description. |
groupId | string (GroupId) ^.{1,512}$ Example: groupId="my-group" Filter by artifact group. |
globalId | integer <int64> Filter by globalId. |
contentId | integer <int64> Filter by contentId. |
artifactId | string (ArtifactId) ^.{1,512}$ Example: artifactId="example-artifact" Filter by artifactId. |
name | string Filter by name. |
state | string (VersionState) Enum: "ENABLED" "DISABLED" "DEPRECATED" "DRAFT" Filter by version state. |
artifactType | string (ArtifactType) Example: artifactType=AVRO Filter by artifact type ( |
{- "count": 0,
- "versions": [
- {
- "groupId": "DemoGroup",
- "artifactId": "demo-artifact-id",
- "name": "Artifact Version Name",
- "description": "Description of the artifact version",
- "artifactType": "AVRO",
- "state": "ENABLED",
- "createdOn": "2018-02-10T09:30Z",
- "owner": "some text",
- "globalId": 37,
- "version": "1.0.7",
- "contentId": 62
}
]
}
Returns a paginated list of all versions that match the posted content.
This operation can fail for the following reasons:
400
)500
)canonical | boolean Parameter that can be set to |
artifactType | string (ArtifactType) Example: artifactType=AVRO Indicates the type of artifact represented by the content being used for the search. This is only needed when using the |
offset | integer Default: 0 The number of versions to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of versions to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (VersionSortBy) Enum: "groupId" "artifactId" "version" "name" "createdOn" "modifiedOn" "globalId" The field to sort by. Can be one of:
|
groupId | string (GroupId) ^.{1,512}$ Example: groupId="my-group" Filter by group Id. |
artifactId | string (ArtifactId) ^.{1,512}$ Example: artifactId="example-artifact" Filter by artifact Id. |
The content to search for.
{- "count": 0,
- "versions": [
- {
- "groupId": "DemoGroup",
- "artifactId": "demo-artifact-id",
- "name": "Artifact Version Name",
- "description": "Description of the artifact version",
- "artifactType": "AVRO",
- "state": "ENABLED",
- "createdOn": "2018-02-10T09:30Z",
- "owner": "some text",
- "globalId": 37,
- "version": "1.0.7",
- "contentId": 62
}
]
}
Gets the current state of an artifact version.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
{- "state": "ENABLED"
}
Updates the state of an artifact version.
NOTE: There are some restrictions on state transitions. Notably a version
cannot be transitioned to the DRAFT
state from any other state. The DRAFT
state can only be entered (optionally) when creating a new artifact/version.
A version in DRAFT
state can only be transitioned to ENABLED
. When this
happens, any configured content rules will be applied. This may result in a
failure to change the state.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)version
exists (HTTP error 404
)400
)409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
versionExpression required | string An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:
|
dryRun | boolean When set to |
The new state.
state required | string (VersionState) Enum: "ENABLED" "DISABLED" "DEPRECATED" "DRAFT" Describes the state of an artifact or artifact version. The following states are possible:
|
{- "state": "ENABLED"
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Rules can be configured on a per-artifact basis, allowing for different approaches to content evolution for each artifact. These rules override any global rules that have been configured. This section contains the operations used to manage a single artifact's rules.
Returns a list of all rules configured for the artifact. The set of rules determines
how the content of an artifact can evolve over time. If no rules are configured for
an artifact, then the rules configured for the group is used. If no rules are
configured at the group level, then the set of globally configured rules are used.
If no global rules are defined, there are no restrictions on content evolution.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
[- "VALIDITY"
]
Adds a rule to the list of rules that get applied to the artifact when adding new versions. All configured rules must pass to successfully add a new artifact version.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)400
)409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Deletes all of the rules configured for the artifact. After this is done, the global rules apply to the artifact again.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Returns information about a single rule configured for an artifact. This is useful when you want to know what the current configuration settings are for a specific rule.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)404
)400
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
ruleType required | string Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" The unique name/type of a rule. |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Updates the configuration of a single rule for the artifact. The configuration data
is specific to each rule type, so the configuration of the COMPATIBILITY
rule
is in a different format from the configuration of the VALIDITY
rule.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)404
)400
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
ruleType required | string Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" The unique name/type of a rule. |
config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Deletes a rule from the artifact. This results in the rule no longer applying for this artifact. If this is the only rule configured for the artifact, this is the same as deleting all rules, and the globally configured rules now apply to this artifact.
This operation can fail for the following reasons:
artifactId
exists (HTTP error 404
)404
)400
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
ruleType required | string Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" The unique name/type of a rule. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Global rules can be configured in the registry to govern how artifact content can evolve over time (as artifact content is updated). Global rules are applied whenever an artifact is added to the registry, and also whenever an artifact's content is updated (only if that artifact does not have its own specific rules configured). This section describes the operations used to manage the global rules.
Adds a rule to the list of globally configured rules.
This operation can fail for the following reasons:
400
)409
)500
)config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Returns information about the named globally configured rule.
This operation can fail for the following reasons:
400
)rule
exists (HTTP error 404
)500
)ruleType required | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" Example: VALIDITY The unique name/type of a rule. |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Updates the configuration for a globally configured rule.
This operation can fail for the following reasons:
400
)rule
exists (HTTP error 404
)500
)ruleType required | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" Example: VALIDITY The unique name/type of a rule. |
config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Deletes a single global rule. If this is the only rule configured, this is the same as deleting all rules.
This operation can fail for the following reasons:
400
)rule
exists (HTTP error 404
)409
)500
)ruleType required | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" Example: VALIDITY The unique name/type of a rule. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
The search API is used to browse or find artifacts in the registry. This section describes the operations for searching for artifacts and versions.
Returns a paginated list of all artifacts that match the provided filter criteria.
This operation can fail for the following reasons:
500
)name | string Filter by artifact name. |
offset | integer Default: 0 The number of artifacts to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of artifacts to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (ArtifactSortBy) Enum: "groupId" "artifactId" "createdOn" "modifiedOn" "artifactType" "name" The field to sort by. Can be one of:
|
labels | Array of strings Filter by one or more name/value label. Separate each name/value pair using a colon. For
example |
description | string Filter by description. |
groupId | string Filter by artifact group. |
globalId | integer <int64> Filter by globalId. |
contentId | integer <int64> Filter by contentId. |
artifactId | string Filter by artifactId. |
artifactType | string (ArtifactType) Example: artifactType=AVRO Filter by artifact type ( |
{- "artifacts": [
- {
- "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"
}
], - "count": 0
}
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:
400
)500
)canonical | boolean Parameter that can be set to |
artifactType | string (ArtifactType) Example: artifactType=AVRO Indicates the type of artifact represented by the content being used for the search. This is only needed when using the |
groupId | string Filter by artifact group. |
offset | integer Default: 0 The number of artifacts to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of artifacts to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (ArtifactSortBy) Enum: "groupId" "artifactId" "createdOn" "modifiedOn" "artifactType" "name" The field to sort by. Can be one of:
|
The content to search for.
{- "artifacts": [
- {
- "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"
}
], - "count": 0
}
Returns a paginated list of all groups that match the provided filter criteria.
This operation can fail for the following reasons:
500
)offset | integer Default: 0 The number of artifacts to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of artifacts to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (GroupSortBy) Enum: "groupId" "createdOn" "modifiedOn" The field to sort by. Can be one of:
|
labels | Array of strings Filter by one or more name/value label. Separate each name/value pair using a colon. For
example |
description | string Filter by description. |
groupId | string Filter by group name. |
{- "groups": [
- {
- "groupId": "My-Group",
- "name": "Group Name",
- "description": "Description of the group",
- "owner": "user1",
- "createdOn": "2019-03-22T12:51:19Z",
- "modifiedBy": "user1",
- "modifiedOn": "2019-03-22T12:51:19Z"
}
], - "count": 0
}
Returns a paginated list of all versions that match the provided filter criteria.
This operation can fail for the following reasons:
500
)version | string (Version) ^[a-zA-Z0-9._\-+]{1,256}$ Example: version="3.1.6" Filter by version number. |
offset | integer Default: 0 The number of versions to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of versions to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (VersionSortBy) Enum: "groupId" "artifactId" "version" "name" "createdOn" "modifiedOn" "globalId" The field to sort by. Can be one of:
|
labels | Array of strings Filter by one or more name/value label. Separate each name/value pair using a colon. For
example |
description | string Filter by description. |
groupId | string (GroupId) ^.{1,512}$ Example: groupId="my-group" Filter by artifact group. |
globalId | integer <int64> Filter by globalId. |
contentId | integer <int64> Filter by contentId. |
artifactId | string (ArtifactId) ^.{1,512}$ Example: artifactId="example-artifact" Filter by artifactId. |
name | string Filter by name. |
state | string (VersionState) Enum: "ENABLED" "DISABLED" "DEPRECATED" "DRAFT" Filter by version state. |
artifactType | string (ArtifactType) Example: artifactType=AVRO Filter by artifact type ( |
{- "count": 0,
- "versions": [
- {
- "groupId": "DemoGroup",
- "artifactId": "demo-artifact-id",
- "name": "Artifact Version Name",
- "description": "Description of the artifact version",
- "artifactType": "AVRO",
- "state": "ENABLED",
- "createdOn": "2018-02-10T09:30Z",
- "owner": "some text",
- "globalId": 37,
- "version": "1.0.7",
- "contentId": 62
}
]
}
Returns a paginated list of all versions that match the posted content.
This operation can fail for the following reasons:
400
)500
)canonical | boolean Parameter that can be set to |
artifactType | string (ArtifactType) Example: artifactType=AVRO Indicates the type of artifact represented by the content being used for the search. This is only needed when using the |
offset | integer Default: 0 The number of versions to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of versions to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (VersionSortBy) Enum: "groupId" "artifactId" "version" "name" "createdOn" "modifiedOn" "globalId" The field to sort by. Can be one of:
|
groupId | string (GroupId) ^.{1,512}$ Example: groupId="my-group" Filter by group Id. |
artifactId | string (ArtifactId) ^.{1,512}$ Example: artifactId="example-artifact" Filter by artifact Id. |
The content to search for.
{- "count": 0,
- "versions": [
- {
- "groupId": "DemoGroup",
- "artifactId": "demo-artifact-id",
- "name": "Artifact Version Name",
- "description": "Description of the artifact version",
- "artifactType": "AVRO",
- "state": "ENABLED",
- "createdOn": "2018-02-10T09:30Z",
- "owner": "some text",
- "globalId": 37,
- "version": "1.0.7",
- "contentId": 62
}
]
}
Application functionality that is only accessible to admin users. Includes logging, global rules, and export/import of registry data.
Adds a rule to the list of globally configured rules.
This operation can fail for the following reasons:
400
)409
)500
)config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Returns information about the named globally configured rule.
This operation can fail for the following reasons:
400
)rule
exists (HTTP error 404
)500
)ruleType required | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" Example: VALIDITY The unique name/type of a rule. |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Updates the configuration for a globally configured rule.
This operation can fail for the following reasons:
400
)rule
exists (HTTP error 404
)500
)ruleType required | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" Example: VALIDITY The unique name/type of a rule. |
config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Deletes a single global rule. If this is the only rule configured, this is the same as deleting all rules.
This operation can fail for the following reasons:
400
)rule
exists (HTTP error 404
)409
)500
)ruleType required | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" Example: VALIDITY The unique name/type of a rule. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Exports registry data as a ZIP archive.
forBrowser | boolean Indicates if the operation is done for a browser. If true, the response will be a JSON payload with a property called |
Imports registry data that was previously exported using the /admin/export
operation.
requireEmptyRegistry | boolean Query parameter indicating whether the registry must be empty before allowing
data to be imported. Defaults to |
X-Registry-Preserve-GlobalId | boolean If this header is set to false, global ids of imported data will be ignored and replaced by next id in global id sequence. This allows to import any data even thought the global ids would cause a conflict. |
X-Registry-Preserve-ContentId | boolean If this header is set to false, content ids of imported data will be ignored and replaced by next id in content id sequence. The mapping between content and artifacts will be preserved. This allows to import any data even thought the content ids would cause a conflict. |
The ZIP file representing the previously exported registry data.
{- "error_code": 409,
- "message": "The artifact content was invalid."
}
Gets the details of a single role mapping (by principalId
).
This operation can fail for the following reasons:
principalId
exists (HTTP error 404
)500
)principalId required | string Unique id of a principal (typically either a user or service account). |
{- "principalId": "svc_account_84874587_123484",
- "principalName": "famartin-svc-account",
- "role": "READ_ONLY"
}
Updates a single role mapping for one user/principal.
This operation can fail for the following reasons:
404
)500
)principalId required | string Unique id of a principal (typically either a user or service account). |
role required | string (RoleType) Enum: "READ_ONLY" "DEVELOPER" "ADMIN" |
{- "role": "READ_ONLY"
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Deletes a single role mapping, effectively denying access to a user/principal.
This operation can fail for the following reasons:
404
)500
)principalId required | string Unique id of a principal (typically either a user or service account). |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Returns a list of all configuration properties that have been set. The list is not paged.
This operation may fail for one of the following reasons:
500
)[- {
- "name": "registry.auth.owner-only-authorization",
- "value": "true",
- "type": "boolean",
- "label": "Owner Only Authorization",
- "description": "When enabled, the registry will allow only the artifact owner (creator) to modify an artifact."
}
]
Returns the value of a single configuration property.
This operation may fail for one of the following reasons:
404
)500
)propertyName required | string The name of a configuration property. |
{- "name": "registry.auth.owner-only-authorization",
- "value": "true",
- "type": "boolean",
- "label": "Owner Only Authorization",
- "description": "When enabled, the registry will allow only the artifact owner (creator) to modify an artifact."
}
Updates the value of a single configuration property.
This operation may fail for one of the following reasons:
404
)500
)propertyName required | string The name of a configuration property. |
value required | string |
{- "value": "true"
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Resets the value of a single configuration property. This will return the property to its default value (see external documentation for supported properties and their default values).
This operation may fail for one of the following reasons:
404
)500
)propertyName required | string The name of a configuration property. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Gets a list of all role mappings configured in the registry (if any).
This operation can fail for the following reasons:
500
)limit | integer The number of role mappings to return. Defaults to 20. |
offset | integer The number of role mappings to skip before starting the result set. Defaults to 0. |
[- {
- "principalId": "user-1",
- "principalName": "user-1",
- "role": "ADMIN"
}, - {
- "principalId": "svc_account_84874587_123484",
- "principalName": "user-svc-account",
- "role": "READ_ONLY"
}
]
Creates a new mapping between a user/principal and a role.
This operation can fail for the following reasons:
500
)principalId required | string |
role required | string (RoleType) Enum: "READ_ONLY" "DEVELOPER" "ADMIN" |
principalName | string A friendly name for the principal. |
{- "principalId": "svc_account_84874587_123484",
- "principalName": "famartin-svc-account",
- "role": "READ_ONLY"
}
{- "error_code": 500,
- "message": "Lost connection to the database."
}
This operation retrieves information about the running registry system, such as the version of the software and when it was built.
{- "name": "Solace Schema Registry",
- "description": "The Solace Schema Registry application.",
- "version": "1.0.0",
- "builtOn": "2025-07-14T12:55:00Z"
}
This operation retrieves the list of limitations on used resources, that are applied on the current instance of Registry.
{- "maxTotalSchemasCount": -1,
- "maxSchemaSizeBytes": -1,
- "maxArtifactsCount": -1,
- "maxVersionsPerArtifactCount": -1,
- "maxArtifactPropertiesCount": -1,
- "maxPropertyKeySizeBytes": -1,
- "maxPropertyValueSizeBytes": -1,
- "maxArtifactLabelsCount": -1,
- "maxLabelSizeBytes": -1,
- "maxArtifactNameLengthChars": -1,
- "maxArtifactDescriptionLengthChars": -1,
- "maxRequestsPerSecondCount": -1
}
Returns the UI configuration properties for this server. The registry UI can be connected to a backend using just a URL. The rest of the UI configuration can then be fetched from the backend using this operation. This allows UI and backend to both be configured in the same place.
This operation may fail for one of the following reasons:
500
){- "auth": {
- "type": "none",
- "rbacEnabled": true,
- "obacEnabled": true,
- "options": {
- "property1": "string",
- "property2": "string"
}
}, - "features": {
- "readOnly": false,
- "breadcrumbs": true,
- "roleManagement": false,
- "settings": true
}
}
Registry artifacts can be collected together using groups. This section includes all of the primary operations related to groups.
Returns a list of all groups. This list is paged.
limit | integer The number of groups to return. Defaults to 20. |
offset | integer The number of groups to skip before starting the result set. Defaults to 0. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (GroupSortBy) Enum: "groupId" "createdOn" "modifiedOn" The field to sort by. Can be one of:
|
{- "groups": [
- {
- "groupId": "My-Group",
- "name": "Group Name",
- "description": "Description of the group",
- "owner": "user1",
- "createdOn": "2019-03-22T12:51:19Z",
- "modifiedBy": "user1",
- "modifiedOn": "2019-03-22T12:51:19Z"
}
], - "count": 0
}
Creates a new group.
This operation can fail for the following reasons:
500
)409
)description | string |
object (Labels) User-defined name-value pairs. Name and value must be strings. | |
groupId required | string (GroupId) ^.{1,512}$ An ID of a single artifact group. |
{- "groupId": "group-identifier",
- "description": "The description of the artifact.",
- "labels": {
- "custom-1": "foo",
- "custom-2": "bar"
}
}
{- "groupId": "group-identifier",
- "description": "Description of the group",
- "artifactsType": "AVRO",
- "owner": "user1",
- "createdOn": "2019-03-22T12:51:19Z",
- "modifiedBy": "user2",
- "modifiedOn": "2019-07-19T15:09:00Z",
- "properties": {
- "custom-1": "foo",
- "custom-2": "bar"
}
}
Returns a group using the specified id.
This operation can fail for the following reasons:
404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
{- "groupId": "group-identifier",
- "description": "Description of the group",
- "artifactsType": "AVRO",
- "owner": "user1",
- "createdOn": "2019-03-22T12:51:19Z",
- "modifiedBy": "user2",
- "modifiedOn": "2019-07-19T15:09:00Z",
- "properties": {
- "custom-1": "foo",
- "custom-2": "bar"
}
}
Updates the metadata of a group using the specified id.
This operation can fail for the following reasons:
404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
The new group metadata.
description | string |
object (Labels) User-defined name-value pairs. Name and value must be strings. |
{- "description": "The description of the group.",
- "labels": {
- "custom-1": "foo",
- "custom-2": "bar"
}
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Deletes a group by identifier. This operation also deletes all artifacts within the group, so should be used very carefully.
This operation can fail for the following reasons:
500
)404
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Returns a paginated list of all groups that match the provided filter criteria.
This operation can fail for the following reasons:
500
)offset | integer Default: 0 The number of artifacts to skip before starting to collect the result set. Defaults to 0. |
limit | integer Default: 20 The number of artifacts to return. Defaults to 20. |
order | string (SortOrder) Enum: "asc" "desc" Sort order, ascending ( |
orderby | string (GroupSortBy) Enum: "groupId" "createdOn" "modifiedOn" The field to sort by. Can be one of:
|
labels | Array of strings Filter by one or more name/value label. Separate each name/value pair using a colon. For
example |
description | string Filter by description. |
groupId | string Filter by group name. |
{- "groups": [
- {
- "groupId": "My-Group",
- "name": "Group Name",
- "description": "Description of the group",
- "owner": "user1",
- "createdOn": "2019-03-22T12:51:19Z",
- "modifiedBy": "user1",
- "modifiedOn": "2019-03-22T12:51:19Z"
}
], - "count": 0
}
Artifacts can optionally have branches that are just an ordered list of version identifiers.
Returns a list of all branches in the artifact. Each branch is a list of version identifiers, ordered from the latest (tip of the branch) to the oldest.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
offset | integer The number of branches to skip before starting to collect the result set. Defaults to 0. |
limit | integer The number of branches to return. Defaults to 20. |
{- "branches": [
- {
- "groupId": "ExampleGroup",
- "artifactId": "ExampleArtifact",
- "branchId": "1.0.x",
- "description": "A really nice branch.",
- "systemDefined": false,
- "createdOn": "2018-02-10T09:30Z",
- "owner": "user1",
- "modifiedOn": "2019-03-11T09:30Z",
- "modifiedBy": "user2"
}
], - "count": 0
}
Creates a new branch for the artifact. A new branch consists of metadata and a list of versions.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
already exists (HTTP error 409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
description | string |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ The ID of a single artifact branch. |
versions | Array of strings (Version) [ items^[a-zA-Z0-9._\-+]{1,256}$ ] |
{- "branchId": "1.0.x",
- "description": "The description of the branch."
}
{- "groupId": "ExampleGroup",
- "artifactId": "ExampleArtifact",
- "branchId": "1.0.x",
- "description": "Just an example branch.",
- "systemDefined": false,
- "createdOn": "2018-02-10T09:30Z",
- "modifiedBy": "user1",
- "modifiedOn": "2020-02-10T09:30Z",
- "owner": "user2"
}
Returns the metaData of a branch.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ Example: "latest" Artifact branch ID. Must follow the "[a-zA-Z0-9._\-+]{1,256}" pattern. |
{- "groupId": "ExampleGroup",
- "artifactId": "ExampleArtifact",
- "branchId": "1.0.x",
- "description": "Just an example branch.",
- "systemDefined": false,
- "createdOn": "2018-02-10T09:30Z",
- "modifiedBy": "user1",
- "modifiedOn": "2020-02-10T09:30Z",
- "owner": "user2"
}
Updates the metadata of a branch.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ Example: "latest" Artifact branch ID. Must follow the "[a-zA-Z0-9._\-+]{1,256}" pattern. |
description | string |
{- "description": "The description of the group."
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Deletes a single branch in the artifact.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ Example: "latest" Artifact branch ID. Must follow the "[a-zA-Z0-9._\-+]{1,256}" pattern. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Get a list of all versions in the branch. Returns a list of version identifiers in the branch, ordered from the latest (tip of the branch) to the oldest.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ Example: "latest" Artifact branch ID. Must follow the "[a-zA-Z0-9._\-+]{1,256}" pattern. |
offset | integer The number of versions to skip before starting to collect the result set. Defaults to 0. |
limit | integer The number of versions to return. Defaults to 20. |
{- "count": 0,
- "versions": [
- {
- "groupId": "DemoGroup",
- "artifactId": "demo-artifact-id",
- "name": "Artifact Version Name",
- "description": "Description of the artifact version",
- "artifactType": "AVRO",
- "state": "ENABLED",
- "createdOn": "2018-02-10T09:30Z",
- "owner": "some text",
- "globalId": 37,
- "version": "1.0.7",
- "contentId": 62
}
]
}
Add a new version to an artifact branch. Branch is created if it does not exist. Returns a list of version identifiers in the artifact branch, ordered from the latest (tip of the branch) to the oldest. This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ Example: "latest" Artifact branch ID. Must follow the "[a-zA-Z0-9._\-+]{1,256}" pattern. |
A new list of versions that should be on the branch.
versions required | Array of strings (Version) [ items^[a-zA-Z0-9._\-+]{1,256}$ ] |
{- "versions": [
- "\"3.1.6\""
]
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Add a new version to an artifact branch. Returns a list of version identifiers in the branch, ordered from the latest (tip of the branch) to the oldest.
This operation can fail for the following reasons:
groupId
and artifactId
exists (HTTP error 404
)branchId
exists (HTTP error 404
)409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" 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. |
artifactId required | string (ArtifactId) ^.{1,512}$ Example: "example-artifact" The artifact ID. Can be a string (client-provided) or UUID (server-generated), representing the unique artifact identifier. Must follow the ".{1,512}" pattern. |
branchId required | string (BranchId) ^[a-zA-Z0-9._\-+]{1,256}$ Example: "latest" Artifact branch ID. Must follow the "[a-zA-Z0-9._\-+]{1,256}" pattern. |
The version to add to the branch.
version required | string |
{- "version": "string"
}
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Rules can be configured on a per-group basis, allowing for different approaches to content evolution for artifacts in the group. These rules override any global rules that have been configured. This section contains the operations used to manage the rules in a single group.
Returns a list of all rules configured for the group. The set of rules determines how the content of an artifact in the group can evolve over time. If no rules are configured for a group, the set of globally configured rules are used.
This operation can fail for the following reasons:
groupId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" The group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern. |
[- "VALIDITY"
]
Adds a rule to the list of rules that get applied to an artifact in the group when adding new versions. All configured rules must pass to successfully add a new artifact version.
This operation can fail for the following reasons:
groupId
exists (HTTP error 404
)400
)409
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" The group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern. |
config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "status": 500,
- "name": "NullPointerException",
- "title": "An error occurred somewhere."
}
Deletes all of the rules configured for the group. After this is done, the global rules apply to artifacts in the group again.
This operation can fail for the following reasons:
groupId
exists (HTTP error 404
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" The group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}
Returns information about a single rule configured for a group. This is useful when you want to know what the current configuration settings are for a specific rule.
This operation can fail for the following reasons:
groupId
exists (HTTP error 404
)404
)400
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" The group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern. |
ruleType required | string Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" The unique name/type of a rule. |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Updates the configuration of a single rule for the group. The configuration data
is specific to each rule type, so the configuration of the COMPATIBILITY
rule
is in a different format from the configuration of the VALIDITY
rule.
This operation can fail for the following reasons:
groupId
exists (HTTP error 404
)404
)400
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" The group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern. |
ruleType required | string Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" The unique name/type of a rule. |
config required | string |
ruleType | string (RuleType) Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" |
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
{- "ruleType": "VALIDITY",
- "config": "FULL"
}
Deletes a rule from the group. This results in the rule no longer applying for this group. If this is the only rule configured for the group, this is the same as deleting all rules, and the globally configured rules now apply to this group.
This operation can fail for the following reasons:
groupId
exists (HTTP error 404
)404
)400
)500
)groupId required | string (GroupId) ^.{1,512}$ Example: "my-group" The group ID. Must be a string provided by the client, representing the name of the grouping of artifacts. Must follow the ".{1,512}" pattern. |
ruleType required | string Enum: "VALIDITY" "COMPATIBILITY" "INTEGRITY" The unique name/type of a rule. |
{- "error_code": 404,
- "message": "No artifact with id 'Topic-1/Inbound' could be found."
}