{
  "opencollection": "1.0.0",
  "info": {
    "name": "Apicurio Registry API",
    "version": "3.1.x"
  },
  "items": [
    {
      "info": {
        "name": "Artifacts",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get artifact by global ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/ids/globalIds/:globalId",
            "params": [
              {
                "name": "globalId",
                "value": "",
                "type": "path",
                "description": "Global identifier for an artifact version."
              },
              {
                "name": "references",
                "value": "",
                "type": "query",
                "description": "Allows the user to specify how references in the content should be treated."
              },
              {
                "name": "returnArtifactType",
                "value": "",
                "type": "query",
                "description": "When set to `true`, the HTTP response will include a header named `X-Registry-ArtifactType`\nthat contains the type of the artifact being returned."
              }
            ]
          },
          "docs": "Gets the content for an artifact version in the registry using its globally unique\nidentifier.\n\nThis operation may fail for one of the following reasons:\n\n* No artifact version with this `globalId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "List artifact references by content ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/ids/contentIds/:contentId/references",
            "params": [
              {
                "name": "contentId",
                "value": "",
                "type": "path",
                "description": "Global identifier for a single artifact content."
              }
            ]
          },
          "docs": "Returns a list containing all the artifact references using the artifact content ID.\n\nThis operation may fail for one of the following reasons:\n\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "List artifact references by global ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/ids/globalIds/:globalId/references",
            "params": [
              {
                "name": "globalId",
                "value": "",
                "type": "path",
                "description": "Global identifier for an artifact version."
              },
              {
                "name": "refType",
                "value": "",
                "type": "query",
                "description": "Determines the type of reference to return, either INBOUND or OUTBOUND.  Defaults to OUTBOUND."
              }
            ]
          },
          "docs": "Returns a list containing all the artifact references using the artifact global ID.\n\nThis operation may fail for one of the following reasons:\n\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "List artifacts in group",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to return.  Defaults to 20."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to skip before starting the result set.  Defaults to 0."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              }
            ]
          },
          "docs": "Returns a list of all artifacts in the group.  This list is paged."
        },
        {
          "info": {
            "name": "Create artifact",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "ifExists",
                "value": "",
                "type": "query",
                "description": "Set this option to instruct the server on what to do if the artifact already exists."
              },
              {
                "name": "canonical",
                "value": "",
                "type": "query",
                "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."
              },
              {
                "name": "dryRun",
                "value": "",
                "type": "query",
                "description": "When set to `true`, the operation will not result in any changes. Instead, it\nwill return a result based on whether the operation **would have succeeded**."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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 (`G"
        },
        {
          "info": {
            "name": "Delete artifacts in group",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "Deletes all of the artifacts that exist in a given group."
        },
        {
          "info": {
            "name": "List artifact references by hash",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/ids/contentHashes/:contentHash/references",
            "params": [
              {
                "name": "contentHash",
                "value": "",
                "type": "path",
                "description": "SHA-256 content hash for a single artifact content."
              }
            ]
          },
          "docs": "Returns a list containing all the artifact references using the artifact content hash.\n\nThis operation may fail for one of the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get artifact content by SHA-256 hash",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/ids/contentHashes/:contentHash",
            "params": [
              {
                "name": "contentHash",
                "value": "",
                "type": "path",
                "description": "SHA-256 content hash for a single artifact content."
              }
            ]
          },
          "docs": "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"
        },
        {
          "info": {
            "name": "Get artifact content by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/ids/contentIds/:contentId",
            "params": [
              {
                "name": "contentId",
                "value": "",
                "type": "path",
                "description": "Global identifier for a single artifact content."
              }
            ]
          },
          "docs": "Gets the content for an artifact version in the registry using the unique content\nidentifier for that content.  This content ID may be shared by multiple artifact\nversions in the case where the artifact versions are identical.\n\nThis operation may fail for one of the following reasons:\n\n* No content with this `contentId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Delete artifact",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "Deletes an artifact completely, resulting in all versions of the artifact also being\ndeleted.  This may fail for one of the following reasons:\n\n* No artifact with the `artifactId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)"
        }
      ]
    },
    {
      "info": {
        "name": "Global rules",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List global rules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/rules"
          },
          "docs": "Gets a list of all the currently configured global rules (if any).\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Create global rule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/admin/rules",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Adds a rule to the list of globally configured rules.\n\nThis operation can fail for the following reasons:\n\n* The rule type is unknown (HTTP error `400`)\n* The rule already exists (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Delete all global rules",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/admin/rules"
          },
          "docs": "Deletes all globally configured rules.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get global rule configuration",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/rules/:ruleType",
            "params": [
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ]
          },
          "docs": "Returns information about the named globally configured rule.\n\nThis operation can fail for the following reasons:\n\n* Invalid rule name/type (HTTP error `400`)\n* No rule with name/type `rule` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update global rule configuration",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/admin/rules/:ruleType",
            "params": [
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the configuration for a globally configured rule.\n\nThis operation can fail for the following reasons:\n\n* Invalid rule name/type (HTTP error `400`)\n* No rule with name/type `rule` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Delete global rule",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/admin/rules/:ruleType",
            "params": [
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ]
          },
          "docs": "Deletes a single global rule.  If this is the only rule configured, this is the same\nas deleting **all** rules.\n\nThis operation can fail for the following reasons:\n\n* Invalid rule name/type (HTTP error `400`)\n* No rule with name/type `rule` exists (HTTP error `404`)\n* Rule cannot be deleted (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n"
        }
      ]
    },
    {
      "info": {
        "name": "System",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get system information",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/system/info"
          },
          "docs": "This operation retrieves information about the running registry system, such as the version\nof the software and when it was built."
        },
        {
          "info": {
            "name": "Get UI config",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/system/uiConfig"
          },
          "docs": "Returns the UI configuration properties for this server.  The registry UI can be\nconnected to a backend using just a URL.  The rest of the UI configuration can then\nbe fetched from the backend using this operation.  This allows UI and backend to\nboth be configured in the same place.\n\nThis operation may fail for one of the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        }
      ]
    },
    {
      "info": {
        "name": "Search",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Search for artifacts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/search/artifacts",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Filter by artifact name."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to return.  Defaults to 20."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              },
              {
                "name": "labels",
                "value": "",
                "type": "query",
                "description": "Filter by one or more name/value label.  Separate each name/value pair using a colon.  For\nexample `labels=foo:bar` will return only artifacts with a label named `foo`\nand value `bar`."
              },
              {
                "name": "description",
                "value": "",
                "type": "query",
                "description": "Filter by description."
              },
              {
                "name": "groupId",
                "value": "",
                "type": "query",
                "description": "Filter by artifact group."
              },
              {
                "name": "globalId",
                "value": "",
                "type": "query",
                "description": "Filter by globalId."
              },
              {
                "name": "contentId",
                "value": "",
                "type": "query",
                "description": "Filter by contentId."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "query",
                "description": "Filter by artifactId."
              },
              {
                "name": "artifactType",
                "value": "",
                "type": "query",
                "description": "Filter by artifact type (`AVRO`, `JSON`, etc)."
              }
            ]
          },
          "docs": "Returns a paginated list of all artifacts that match the provided filter criteria.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Search for artifacts by content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/search/artifacts",
            "params": [
              {
                "name": "canonical",
                "value": "",
                "type": "query",
                "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."
              },
              {
                "name": "artifactType",
                "value": "",
                "type": "query",
                "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."
              },
              {
                "name": "groupId",
                "value": "",
                "type": "query",
                "description": "Filter by artifact group."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to return.  Defaults to 20."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              }
            ]
          },
          "docs": "Returns a paginated list of all artifacts with at least one version that matches the\nposted content.\n\nThis operation can fail for the following reasons:\n\n* Provided content (request body) was empty (HTTP error `400`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Search for groups",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/search/groups",
            "params": [
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of artifacts to return.  Defaults to 20."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              },
              {
                "name": "labels",
                "value": "",
                "type": "query",
                "description": "Filter by one or more name/value label.  Separate each name/value pair using a colon.  For\nexample `labels=foo:bar` will return only artifacts with a label named `foo`\nand value `bar`."
              },
              {
                "name": "description",
                "value": "",
                "type": "query",
                "description": "Filter by description."
              },
              {
                "name": "groupId",
                "value": "",
                "type": "query",
                "description": "Filter by group name."
              }
            ]
          },
          "docs": "Returns a paginated list of all groups that match the provided filter criteria.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Search for versions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/search/versions",
            "params": [
              {
                "name": "version",
                "value": "",
                "type": "query",
                "description": "Filter by version number."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of versions to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of versions to return.  Defaults to 20."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              },
              {
                "name": "labels",
                "value": "",
                "type": "query",
                "description": "Filter by one or more name/value label.  Separate each name/value pair using a colon.  For\nexample `labels=foo:bar` will return only artifacts with a label named `foo`\nand value `bar`."
              },
              {
                "name": "description",
                "value": "",
                "type": "query",
                "description": "Filter by description."
              },
              {
                "name": "groupId",
                "value": "",
                "type": "query",
                "description": "Filter by artifact group."
              },
              {
                "name": "globalId",
                "value": "",
                "type": "query",
                "description": "Filter by globalId."
              },
              {
                "name": "contentId",
                "value": "",
                "type": "query",
                "description": "Filter by contentId."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "query",
                "description": "Filter by artifactId."
              },
              {
                "name": "name",
                "value": "",
                "type": "query",
                "description": "Filter by name."
              },
              {
                "name": "state",
                "value": "",
                "type": "query",
                "description": "Filter by version state."
              },
              {
                "name": "artifactType",
                "value": "",
                "type": "query",
                "description": "Filter by artifact type (`AVRO`, `JSON`, etc)."
              },
              {
                "name": "content",
                "value": "",
                "type": "query",
                "description": "Full-text search of artifact content.  Requires the Lucene search index to be enabled."
              },
              {
                "name": "structure",
                "value": "",
                "type": "query",
                "description": "Search by structured content elements (schemas, paths, fields, etc.) using a faceted format. Supports three formats: `type:kind:name` for exact match (e.g. `openapi:schema:Pet`), `kind:name` for cross-type match (e.g. `schema:Pet`), or just `name` for plain text search. Requires the Lucene search index to be enabled."
              }
            ]
          },
          "docs": "Returns a paginated list of all versions that match the provided filter criteria.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Search for versions by content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/search/versions",
            "params": [
              {
                "name": "canonical",
                "value": "",
                "type": "query",
                "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."
              },
              {
                "name": "artifactType",
                "value": "",
                "type": "query",
                "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 versions."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of versions to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of versions to return.  Defaults to 20."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              },
              {
                "name": "groupId",
                "value": "",
                "type": "query",
                "description": "Filter by group Id."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "query",
                "description": "Filter by artifact Id."
              }
            ]
          },
          "docs": "Returns a paginated list of all versions that match the posted content.\n\nThis operation can fail for the following reasons:\n\n* Provided content (request body) was empty (HTTP error `400`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Search contract rules by tag",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/search/contract/rules",
            "params": [
              {
                "name": "tag",
                "value": "",
                "type": "query",
                "description": "The tag value to search for in contract rules."
              }
            ]
          },
          "docs": "Returns all contract rules across all artifacts that contain the specified tag."
        },
        {
          "info": {
            "name": "Search contracts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/search/contracts",
            "params": [
              {
                "name": "status",
                "value": "",
                "type": "query",
                "description": "Filter by contract status (DRAFT, STABLE, DEPRECATED)."
              },
              {
                "name": "ownerTeam",
                "value": "",
                "type": "query",
                "description": "Filter by owner team."
              },
              {
                "name": "compatibilityGroup",
                "value": "",
                "type": "query",
                "description": "Filter by compatibility group."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Number of results to skip."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of results to return."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order (asc or desc)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "Field to sort by."
              }
            ]
          },
          "docs": "Searches for artifacts that have contract metadata labels. Filters by status, owner team, and compatibility group."
        }
      ]
    },
    {
      "info": {
        "name": "Admin",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Export registry data",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/export",
            "params": [
              {
                "name": "forBrowser",
                "value": "",
                "type": "query",
                "description": "Indicates if the operation is done for a browser.  If true, the response will be a JSON payload with a property called `href`.  This `href` will be a single-use, naked download link suitable for use by a web browser to download the content."
              },
              {
                "name": "groupId",
                "value": "",
                "type": "query",
                "description": "If specified, only data belonging to this group will be exported. Global rules will be excluded."
              }
            ]
          },
          "docs": "Exports registry data as a ZIP archive.  If a `groupId` query parameter is provided, only data belonging to the specified group will be exported and global rules will be excluded."
        },
        {
          "info": {
            "name": "Import registry data",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/admin/import",
            "headers": [
              {
                "name": "X-Registry-Preserve-GlobalId",
                "value": ""
              },
              {
                "name": "X-Registry-Preserve-ContentId",
                "value": ""
              }
            ],
            "params": [
              {
                "name": "requireEmptyRegistry",
                "value": "",
                "type": "query",
                "description": "Query parameter indicating whether the registry must be empty before allowing\ndata to be imported.  Defaults to `true` if omitted."
              }
            ]
          },
          "docs": "Imports registry data that was previously exported using the `/admin/export` operation."
        },
        {
          "info": {
            "name": "Return a single role mapping",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/roleMappings/:principalId",
            "params": [
              {
                "name": "principalId",
                "value": "",
                "type": "path",
                "description": "Unique id of a principal (typically either a user or service account)."
              }
            ]
          },
          "docs": "Gets the details of a single role mapping (by `principalId`).\n\nThis operation can fail for the following reasons:\n\n* No role mapping for the `principalId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update a role mapping",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/admin/roleMappings/:principalId",
            "params": [
              {
                "name": "principalId",
                "value": "",
                "type": "path",
                "description": "Unique id of a principal (typically either a user or service account)."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates a single role mapping for one user/principal.\n\nThis operation can fail for the following reasons:\n\n* No role mapping for the principalId exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Delete a role mapping",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/admin/roleMappings/:principalId",
            "params": [
              {
                "name": "principalId",
                "value": "",
                "type": "path",
                "description": "Unique id of a principal (typically either a user or service account)."
              }
            ]
          },
          "docs": "Deletes a single role mapping, effectively denying access to a user/principal.\n\nThis operation can fail for the following reasons:\n\n* No role mapping for the principalId exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "List all configuration properties",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/config/properties"
          },
          "docs": "Returns a list of all configuration properties that have been set.  The list is not paged.\n\nThis operation may fail for one of the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get configuration property value",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/config/properties/:propertyName",
            "params": [
              {
                "name": "propertyName",
                "value": "",
                "type": "path",
                "description": "The name of a configuration property."
              }
            ]
          },
          "docs": "Returns the value of a single configuration property.\n\nThis operation may fail for one of the following reasons:\n\n* Property not found or not configured (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update a configuration property",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/admin/config/properties/:propertyName",
            "params": [
              {
                "name": "propertyName",
                "value": "",
                "type": "path",
                "description": "The name of a configuration property."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the value of a single configuration property.\n\nThis operation may fail for one of the following reasons:\n\n* Property not found or not configured (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Reset a configuration property",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/admin/config/properties/:propertyName",
            "params": [
              {
                "name": "propertyName",
                "value": "",
                "type": "path",
                "description": "The name of a configuration property."
              }
            ]
          },
          "docs": "Resets the value of a single configuration property.  This will return the property to\nits default value (see external documentation for supported properties and their default\nvalues).\n\nThis operation may fail for one of the following reasons:\n\n* Property not found or not configured (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "List all role mappings",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/roleMappings",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of role mappings to return.  Defaults to 20."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of role mappings to skip before starting the result set.  Defaults to 0."
              }
            ]
          },
          "docs": "Gets a list of all role mappings configured in the registry (if any).\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Create a new role mapping",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/admin/roleMappings",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new mapping between a user/principal and a role.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n\n"
        },
        {
          "info": {
            "name": "Get global contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/contracts/ruleset"
          },
          "docs": "Returns the global contract ruleset that applies to all artifacts."
        },
        {
          "info": {
            "name": "Set global contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/admin/contracts/ruleset",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Sets the global contract ruleset that applies to all artifacts."
        },
        {
          "info": {
            "name": "Delete global contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/admin/contracts/ruleset"
          },
          "docs": "Deletes the global contract ruleset."
        },
        {
          "info": {
            "name": "Get usage summary",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/usage/summary"
          },
          "docs": "Get usage summary"
        },
        {
          "info": {
            "name": "Get artifact usage metrics",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/usage/artifacts/:groupId/:artifactId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get artifact usage metrics"
        },
        {
          "info": {
            "name": "Get consumer version heatmap",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/usage/artifacts/:groupId/:artifactId/heatmap",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get consumer version heatmap"
        },
        {
          "info": {
            "name": "Get deprecation readiness report",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/usage/artifacts/:groupId/:artifactId/versions/:version/deprecation-readiness",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              },
              {
                "name": "version",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Get deprecation readiness report"
        }
      ]
    },
    {
      "info": {
        "name": "Metadata",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get artifact version metadata",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Retrieves the metadata for a single version of the artifact.  The version metadata is \na subset of the artifact metadata and only includes the metadata that is specific to\nthe version (for example, this doesn't include `modifiedOn`).\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update artifact version metadata",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the user-editable portion of the artifact version's metadata.  Only some of \nthe metadata fields are editable by the user.  For example, `description` is editable, \nbut `createdOn` is not.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get artifact metadata",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "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\nboth generated (read-only) and editable metadata (such as name and description).\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists  or all versions are `DISABLED` (HTTP error `404`)\n* A server error occurred (HTTP error `500`"
        },
        {
          "info": {
            "name": "Update artifact metadata",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the editable parts of the artifact's metadata.  Not all metadata fields can\nbe updated.  Note that only the properties included will be updated.  You can update\nonly the name by including only the `name` property in the payload of the request.\nProperties that are allowed but not present will result in the artifact's metadata\nnot being changed.\n\nThis operation can fail for the following reasons:\n\n* No artifact with the `artifactId` exists (HTTP error `404`)\n* A server error occurred (HTTP"
        }
      ]
    },
    {
      "info": {
        "name": "Versions",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Delete artifact version",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Deletes a single version of the artifact. Parameters `groupId`, `artifactId` and the unique `version`\nare needed. If this is the only version of the artifact, this operation is the same as \ndeleting the entire artifact.\n\nThis feature is disabled by default and it's discouraged for normal usage. To enable it, set the `registry.rest.artifact.deletion.enabled` property to true. This operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No ve"
        },
        {
          "info": {
            "name": "Get artifact version references",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/references",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              },
              {
                "name": "refType",
                "value": "",
                "type": "query",
                "description": "Determines the type of reference to return, either INBOUND or OUTBOUND.  Defaults to OUTBOUND."
              }
            ]
          },
          "docs": "Retrieves all references for a single version of an artifact.  Both the `artifactId` and the\nunique `version` number must be provided.  Using the `refType` query parameter, it is possible\nto retrieve an array of either the inbound or outbound references.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get artifact version references as a graph",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/references/graph",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact."
              },
              {
                "name": "direction",
                "value": "",
                "type": "query",
                "description": "The direction of references to include in the graph. Can be OUTBOUND (artifacts this version references), INBOUND (artifacts that reference this version), or BOTH. Defaults to OUTBOUND."
              },
              {
                "name": "depth",
                "value": "",
                "type": "query",
                "description": "The maximum depth of the reference graph to traverse. Can be 1, 2, 3, or 0 for unlimited. Defaults to 3."
              }
            ]
          },
          "docs": "Retrieves a graph representation of all references for a single version of an artifact. The graph includes nodes representing artifacts, edges representing references between them, and metadata about the graph structure including cycle detection.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get artifact version comments",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/comments",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Retrieves all comments for a version of an artifact.  Both the `artifactId` and the\nunique `version` number must be provided.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Add new comment",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/comments",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Adds a new comment to the artifact version.  Both the `artifactId` and the\nunique `version` number must be provided.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update a comment",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/comments/:commentId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              },
              {
                "name": "commentId",
                "value": "",
                "type": "path",
                "description": "The unique identifier of a single comment."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the value of a single comment in an artifact version.  Only the owner of the\ncomment can modify it.  The `artifactId`, unique `version` number, and `commentId` \nmust be provided.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* No comment with this `commentId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Delete a single comment",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/comments/:commentId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              },
              {
                "name": "commentId",
                "value": "",
                "type": "path",
                "description": "The unique identifier of a single comment."
              }
            ]
          },
          "docs": "Deletes a single comment in an artifact version.  Only the owner of the\ncomment can delete it.  The `artifactId`, unique `version` number, and `commentId` \nmust be provided.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* No comment with this `commentId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "List artifact versions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of versions to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of versions to return.  Defaults to 20."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `version`\n* `createdOn`\n"
              }
            ]
          },
          "docs": "Returns a list of all versions of the artifact.  The result set is paged.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Create artifact version",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "dryRun",
                "value": "",
                "type": "query",
                "description": "When set to `true`, the operation will not result in any changes. Instead, it\nwill return a result based on whether the operation **would have succeeded**."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new version of the artifact by uploading new content.  The configured rules for\nthe artifact are applied, and if they all pass, the new content is added as the most recent \nversion of the artifact.  If any of the rules fail, an error is returned.\n\nThe body of the request can be the raw content of the new artifact version, or the raw content \nand a set of references pointing to other artifacts, and the type\nof that content should match the artifact's type (for example if the artifact ty"
        },
        {
          "info": {
            "name": "Get artifact version",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/content",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              },
              {
                "name": "references",
                "value": "",
                "type": "query",
                "description": "Allows the user to specify how references in the content should be treated."
              }
            ]
          },
          "docs": "Retrieves a single version of the artifact content.  Both the `artifactId` and the\nunique `version` number must be provided.  The `Content-Type` of the response depends \non the artifact type.  In most cases, this is `application/json`, but for some types \nit may be different (for example, `PROTOBUF`).\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occur"
        },
        {
          "info": {
            "name": "Update artifact version content",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/content",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the content of a single version of an artifact.\n\nNOTE: the artifact must be in `DRAFT` status.\n\nBoth the `artifactId` and the unique `version` number must be provided to identify\nthe version to update.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* Artifact version not in `DRAFT` status (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Export artifact version as ZIP",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/export",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact."
              }
            ]
          },
          "docs": "Exports a Protobuf artifact version with all its transitive dependencies as a ZIP file.\nThe files in the ZIP are organized by their package names to match the expected directory\nstructure for protoc compilation. Import statements are rewritten to use canonical\npackage-based paths.\n\nThis operation is only supported for PROTOBUF artifact types.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists"
        },
        {
          "info": {
            "name": "Render a prompt template",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/render",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Renders a prompt template artifact by substituting the provided variables into the template.\nThe artifact must be of type `PROMPT_TEMPLATE`. Variables are validated against the template's\nvariable schema before rendering.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* The artifact is not a PROMPT_TEMPLATE (HTTP error `400`)\n* Required variables are missing or have inv"
        },
        {
          "info": {
            "name": "Get artifact version state",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/state",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Gets the current state of an artifact version.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No version with this `version` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update the artifact version state",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/state",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              },
              {
                "name": "dryRun",
                "value": "",
                "type": "query",
                "description": "When set to `true`, the operation will not result in any changes. Instead, it\nwill return a result based on whether the operation **would have succeeded**."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the state of an artifact version.\n\nNOTE: There are some restrictions on state transitions.  Notably a version \ncannot be transitioned to the `DRAFT` state from any other state.  The `DRAFT` \nstate can only be entered (optionally) when creating a new artifact/version.\nA version in `DRAFT` state can only be transitioned to `ENABLED`.  When this\nhappens, any configured content rules will be applied.  This may result in a\nfailure to change the state.\n\nThis operation can fail for the followin"
        }
      ]
    },
    {
      "info": {
        "name": "Artifact rules",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List artifact rules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/rules",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "Returns a list of all rules configured for the artifact.  The set of rules determines\nhow the content of an artifact can evolve over time.  If no rules are configured for\nan artifact, then the rules configured for the group is used.  If no rules are \nconfigured at the group level, then the set of globally configured rules are used.  \nIf no global rules are defined, there are no restrictions on content evolution.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifa"
        },
        {
          "info": {
            "name": "Create artifact rule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/rules",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Adds a rule to the list of rules that get applied to the artifact when adding new\nversions.  All configured rules must pass to successfully add a new artifact version.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* Rule (named in the request body) is unknown (HTTP error `400`)\n* Rule is already configured (HTTP error `409`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Delete artifact rules",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/rules",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "Deletes all of the rules configured for the artifact.  After this is done, the global\nrules apply to the artifact again.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Get artifact rule configuration",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/rules/:ruleType",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ]
          },
          "docs": "Returns information about a single rule configured for an artifact.  This is useful\nwhen you want to know what the current configuration settings are for a specific rule.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No rule with this name/type is configured for this artifact (HTTP error `404`)\n* Invalid rule type (HTTP error `400`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Update artifact rule configuration",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/rules/:ruleType",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the configuration of a single rule for the artifact.  The configuration data\nis specific to each rule type, so the configuration of the `COMPATIBILITY` rule \nis in a different format from the configuration of the `VALIDITY` rule.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No rule with this name/type is configured for this artifact (HTTP error `404`)\n* Invalid rule type (HTTP error `400`)\n* A server error occurred "
        },
        {
          "info": {
            "name": "Delete artifact rule",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/rules/:ruleType",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ]
          },
          "docs": "Deletes a rule from the artifact.  This results in the rule no longer applying for\nthis artifact.  If this is the only rule configured for the artifact, this is the \nsame as deleting **all** rules, and the globally configured rules now apply to\nthis artifact.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `artifactId` exists (HTTP error `404`)\n* No rule with this name/type is configured for this artifact (HTTP error `404`)\n* Invalid rule type (HTTP error `400`)\n* A "
        }
      ]
    },
    {
      "info": {
        "name": "Users",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get current user",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/users/me"
          },
          "docs": "Returns information about the currently authenticated user."
        }
      ]
    },
    {
      "info": {
        "name": "Groups",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List groups",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of groups to return.  Defaults to 20."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of groups to skip before starting the result set.  Defaults to 0."
              },
              {
                "name": "order",
                "value": "",
                "type": "query",
                "description": "Sort order, ascending (`asc`) or descending (`desc`)."
              },
              {
                "name": "orderby",
                "value": "",
                "type": "query",
                "description": "The field to sort by.  Can be one of:\n\n* `name`\n* `createdOn`\n"
              }
            ]
          },
          "docs": "Returns a list of all groups.  This list is paged."
        },
        {
          "info": {
            "name": "Create a new group",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new group.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n* The group already exist (HTTP error `409`)\n* Invalid group ID (e.g., reserved name 'default') (HTTP error `400`)\n"
        },
        {
          "info": {
            "name": "Get a group by the specified ID.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "Returns a group using the specified id.\n\nThis operation can fail for the following reasons:\n\n* No group exists with the specified ID (HTTP error `404`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Update group metadata",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the metadata of a group using the specified id.\n\nThis operation can fail for the following reasons:\n\n* No group exists with the specified ID (HTTP error `404`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Delete a group by the specified ID.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              }
            ]
          },
          "docs": "Deletes a group by identifier.  This operation also deletes all artifacts within\nthe group, so should be used very carefully.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n* The group does not exist (HTTP error `404`)\n"
        }
      ]
    },
    {
      "info": {
        "name": "Branches",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List branches",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of branches to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of branches to return.  Defaults to 20."
              }
            ]
          },
          "docs": "Returns a list of all branches in the artifact. Each branch is a list of version identifiers,\nordered from the latest (tip of the branch) to the oldest.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Create a new branch",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates a new branch for the artifact.  A new branch consists of metadata and a\nlist of versions.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* A branch with the given `branchId` already exists (HTTP error `409`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get branch metaData",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches/:branchId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "branchId",
                "value": "",
                "type": "path",
                "description": "Artifact branch ID.  Must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Returns the metaData of a branch.\n\nThis operation can fail for the following reasons:\n\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* No branch with this `branchId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Update branch metaData",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches/:branchId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "branchId",
                "value": "",
                "type": "path",
                "description": "Artifact branch ID.  Must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the metadata of a branch.\n\nThis operation can fail for the following reasons:\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* No branch with this `branchId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Delete branch.",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches/:branchId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "branchId",
                "value": "",
                "type": "path",
                "description": "Artifact branch ID.  Must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Deletes a single branch in the artifact.\n\nThis operation can fail for the following reasons:\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* No branch with this `branchId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Get versions in branch",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches/:branchId/versions",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "branchId",
                "value": "",
                "type": "path",
                "description": "Artifact branch ID.  Must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "The number of versions to skip before starting to collect the result set.  Defaults to 0."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "The number of versions to return.  Defaults to 20."
              }
            ]
          },
          "docs": "Get a list of all versions in the branch.  Returns a list of version identifiers in the branch, \nordered from the latest (tip of the branch) to the oldest.\n\nThis operation can fail for the following reasons:\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* No branch with this `branchId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        },
        {
          "info": {
            "name": "Add a new version to a branch.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches/:branchId/versions",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "branchId",
                "value": "",
                "type": "path",
                "description": "Artifact branch ID.  Must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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.\n\nThis operation can fail for the following reasons:\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* No branch with this `branchId` exists (HTTP error `404`)\n* Branch already contains the given version. Artifact branches are append-only, cycles and history rewrites, except by replacing the entire branch using the re"
        },
        {
          "info": {
            "name": "Replace list of versions in branch",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/branches/:branchId/versions",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "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."
              },
              {
                "name": "branchId",
                "value": "",
                "type": "path",
                "description": "Artifact branch ID.  Must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "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.\nThis operation can fail for the following reasons:\n* No artifact with this `groupId` and `artifactId` exists (HTTP error `404`)\n* No branch with this `branchId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)\n"
        }
      ]
    },
    {
      "info": {
        "name": "Artifact Type",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List artifact types",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/config/artifactTypes"
          },
          "docs": "Gets a list of all the configured artifact types.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        }
      ]
    },
    {
      "info": {
        "name": "KafkaSQL",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Trigger storage snapshot",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/admin/snapshots"
          },
          "docs": "Triggers the creation of a snapshot of the internal database for compatible storages.\n\nThis operation can fail for the following reasons:\n\n* A server error occurred (HTTP error `500`)\n"
        }
      ]
    },
    {
      "info": {
        "name": "GitOps",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get GitOps synchronization status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/admin/gitops/status"
          },
          "docs": "**Experimental.** Returns the current synchronization status of the GitOps storage, including the current commit SHA, sync state, load statistics, and any errors from the last sync attempt.\n\nThis endpoint is only available when GitOps storage is enabled (`apicurio.storage.kind=gitops`). Returns HTTP 409 (Conflict) if a different storage backend is active.\n\nThis operation can fail for the following reasons:\n\n* GitOps storage is not enabled (HTTP error `409`)\n* A server error occurred (HTTP error "
        },
        {
          "info": {
            "name": "Trigger GitOps synchronization",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/admin/gitops/sync"
          },
          "docs": "**Experimental.** Requests an immediate synchronization of the GitOps storage. This resets the poll timer so the next scheduler cycle will poll the Git repository without waiting for the configured poll period.\n\nThe synchronization happens asynchronously — this endpoint returns immediately and the actual sync occurs on the next scheduler cycle.\n\nThis endpoint is only available when GitOps storage is enabled (`apicurio.storage.kind=gitops`). Returns HTTP 409 (Conflict) if a different storage back"
        }
      ]
    },
    {
      "info": {
        "name": "Group rules",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List group rules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/rules",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "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."
              }
            ]
          },
          "docs": "Returns a list of all rules configured for the group.  The set of rules determines\nhow the content of an artifact in the group can evolve over time.  If no rules are \nconfigured for a group, the set of globally configured rules are used.\n\nThis operation can fail for the following reasons:\n\n* No group with this `groupId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Create group rule",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/rules",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "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."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Adds a rule to the list of rules that get applied to an artifact in the group when adding new\nversions.  All configured rules must pass to successfully add a new artifact version.\n\nThis operation can fail for the following reasons:\n\n* No group with this `groupId` exists (HTTP error `404`)\n* Rule (named in the request body) is unknown (HTTP error `400`)\n* Rule is already configured (HTTP error `409`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Delete group rules",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/rules",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "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."
              }
            ]
          },
          "docs": "Deletes all of the rules configured for the group.  After this is done, the global\nrules apply to artifacts in the group again.\n\nThis operation can fail for the following reasons:\n\n* No group with this `groupId` exists (HTTP error `404`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Get group rule configuration",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/rules/:ruleType",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "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."
              },
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ]
          },
          "docs": "Returns information about a single rule configured for a group.  This is useful\nwhen you want to know what the current configuration settings are for a specific rule.\n\nThis operation can fail for the following reasons:\n\n* No group with this `groupId` exists (HTTP error `404`)\n* No rule with this name/type is configured for this artifact (HTTP error `404`)\n* Invalid rule type (HTTP error `400`)\n* A server error occurred (HTTP error `500`)"
        },
        {
          "info": {
            "name": "Update group rule configuration",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/rules/:ruleType",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "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."
              },
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Updates the configuration of a single rule for the group.  The configuration data\nis specific to each rule type, so the configuration of the `COMPATIBILITY` rule \nis in a different format from the configuration of the `VALIDITY` rule.\n\nThis operation can fail for the following reasons:\n\n* No group with this `groupId` exists (HTTP error `404`)\n* No rule with this name/type is configured for this artifact (HTTP error `404`)\n* Invalid rule type (HTTP error `400`)\n* A server error occurred (HTTP err"
        },
        {
          "info": {
            "name": "Delete group rule",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/rules/:ruleType",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "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."
              },
              {
                "name": "ruleType",
                "value": "",
                "type": "path",
                "description": "The unique name/type of a rule."
              }
            ]
          },
          "docs": "Deletes a rule from the group.  This results in the rule no longer applying for\nthis group.  If this is the only rule configured for the group, this is the \nsame as deleting **all** rules, and the globally configured rules now apply to\nthis group.\n\nThis operation can fail for the following reasons:\n\n* No group with this `groupId` exists (HTTP error `404`)\n* No rule with this name/type is configured for this group (HTTP error `404`)\n* Invalid rule type (HTTP error `400`)\n* A server error occurred"
        }
      ]
    },
    {
      "info": {
        "name": "Content",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Detect references in content",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/content/references",
            "params": [
              {
                "name": "artifactType",
                "value": "",
                "type": "query",
                "description": "The type of artifact represented by the content.  If not provided, the server will attempt to auto-detect the type from the content."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Analyzes the provided content and returns a list of external references found within it.  The artifact type is used to determine the appropriate reference detection strategy.  If no artifact type is provided, the system will attempt to auto-detect it from the content."
        }
      ]
    },
    {
      "info": {
        "name": "Contracts",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "Get contract metadata",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/metadata",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ]
          },
          "docs": "Returns the contract metadata for an artifact, projected from its labels."
        },
        {
          "info": {
            "name": "Update contract metadata",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/metadata",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates or updates the contract metadata for an artifact."
        },
        {
          "info": {
            "name": "Transition contract status",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/status",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Transitions the contract status. Valid transitions: DRAFT to STABLE, DRAFT to DEPRECATED, STABLE to DEPRECATED. Reverse transitions are not allowed."
        },
        {
          "info": {
            "name": "Get artifact contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/ruleset",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ]
          },
          "docs": "Returns the contract ruleset for the artifact (artifact-level rules that apply to all versions)."
        },
        {
          "info": {
            "name": "Set artifact contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/ruleset",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates or replaces the contract ruleset for the artifact."
        },
        {
          "info": {
            "name": "Delete artifact contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/ruleset",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ]
          },
          "docs": "Deletes the contract ruleset for the artifact."
        },
        {
          "info": {
            "name": "Get version contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/contract/ruleset",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Returns the contract ruleset for a specific artifact version."
        },
        {
          "info": {
            "name": "Set version contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/contract/ruleset",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Creates or replaces the contract ruleset for a specific version."
        },
        {
          "info": {
            "name": "Delete version contract ruleset",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/contract/ruleset",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path",
                "description": "An expression resolvable to a specific version ID within the given group and artifact. The following rules apply:\n\n - If the expression is in the form \"branch={branchId}\", and artifact branch {branchId} exists: The expression is resolved to a version that the branch points to.\n - Otherwise: The expression is resolved to a version with the same ID, which must follow the \"[a-zA-Z0-9._\\\\-+]{1,256}\" pattern."
              }
            ]
          },
          "docs": "Deletes the contract ruleset for a specific version."
        },
        {
          "info": {
            "name": "List ODCS contracts",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/contracts",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The group ID."
              },
              {
                "name": "limit",
                "value": "",
                "type": "query",
                "description": "Maximum number of contracts to return (default 20, max 500)."
              },
              {
                "name": "offset",
                "value": "",
                "type": "query",
                "description": "Number of contracts to skip (for pagination)."
              }
            ]
          },
          "docs": "Returns ODCS contracts in the specified group with pagination."
        },
        {
          "info": {
            "name": "Submit an ODCS contract",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/contracts",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The group ID."
              }
            ]
          },
          "docs": "Submits an ODCS v3.1 YAML contract. The contract is parsed, stored as an ODCS_CONTRACT artifact, and its contents are projected onto the referenced schema artifact (labels, rules, field tags)."
        },
        {
          "info": {
            "name": "Get an ODCS contract",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/contracts/:contractId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The group ID."
              },
              {
                "name": "contractId",
                "value": "",
                "type": "path",
                "description": "The contract ID."
              }
            ]
          },
          "docs": "Returns the ODCS contract YAML for the specified contract."
        },
        {
          "info": {
            "name": "Update an ODCS contract",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/contracts/:contractId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The group ID."
              },
              {
                "name": "contractId",
                "value": "",
                "type": "path",
                "description": "The contract ID."
              }
            ]
          },
          "docs": "Updates an ODCS contract (creates a new version) and re-projects onto the referenced schema artifact."
        },
        {
          "info": {
            "name": "Delete an ODCS contract",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/contracts/:contractId",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The group ID."
              },
              {
                "name": "contractId",
                "value": "",
                "type": "path",
                "description": "The contract ID."
              }
            ]
          },
          "docs": "Deletes the ODCS contract artifact."
        },
        {
          "info": {
            "name": "Export as ODCS",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/export",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path",
                "description": "The artifact group ID."
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path",
                "description": "The artifact ID."
              }
            ]
          },
          "docs": "Reconstructs an ODCS v3.1 YAML contract from the artifact's current contract.* labels, contract rules, and field-tag.* version labels."
        },
        {
          "info": {
            "name": "Promote contract stage",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/promote",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Promotes a contract to the next deployment stage (DEV -> STAGE -> PROD)."
        },
        {
          "info": {
            "name": "Get quality score",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/quality",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              },
              {
                "name": "contractId",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Returns the quality score for a contract, with breakdown by completeness, compliance, and stability."
        },
        {
          "info": {
            "name": "Get contract audit log",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/audit",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Returns a paginated audit log of contract operations for the specified artifact."
        },
        {
          "info": {
            "name": "Get compatibility group",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/compatibility-group",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              },
              {
                "name": "contractId",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Returns the compatibility group for the artifact's contract."
        },
        {
          "info": {
            "name": "Set compatibility group",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/compatibility-group",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Sets the compatibility group for the artifact's contract."
        },
        {
          "info": {
            "name": "Migrate record between versions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/contract/migrate",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Executes migration rules to transform a record from one schema version to another, chaining transforms across version hops."
        },
        {
          "info": {
            "name": "Execute contract rules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "http://localhost:8080/apis/registry/v3/groups/:groupId/artifacts/:artifactId/versions/:versionExpression/contract/execute",
            "params": [
              {
                "name": "groupId",
                "value": "",
                "type": "path"
              },
              {
                "name": "artifactId",
                "value": "",
                "type": "path"
              },
              {
                "name": "versionExpression",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Executes contract rules against a data record and returns the result."
        }
      ]
    }
  ],
  "bundled": true
}