{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-repository-schema.json",
  "title": "Repository",
  "description": "The metadata for the artifact repository.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-artifacts-api-openapi.yml#/components/schemas/Repository",
  "properties": {
    "compartmentId": {
      "description": "The OCID of the repository's compartment.",
      "maxLength": 100,
      "minLength": 1,
      "type": "string"
    },
    "definedTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag. Only the String type is supported.\n",
          "type": "object"
        },
        "description": "Key-value pair representing a defined tag key and value, scoped to a namespace.\n\nExample: `{\"CostCenter\": \"42\"}`\n",
        "type": "object"
      },
      "description": "Defined tags for this resource. Each key is predefined and scoped to a\nnamespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm).\n\nExample: `{\"Operations\": {\"CostCenter\": \"42\"}}`\n",
      "type": "object"
    },
    "description": {
      "description": "The repository description.",
      "maxLength": 400,
      "minLength": 1,
      "type": "string"
    },
    "displayName": {
      "description": "The repository name.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "freeformTags": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Free-form tags for this resource. Each tag is a simple key-value pair with no\npredefined name, type, or namespace. For more information, see [Resource Tags](/iaas/Content/General/Concepts/resourcetags.htm).\n\nExample: `{\"Department\": \"Finance\"}`\n",
      "type": "object"
    },
    "id": {
      "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) of the repository.\n\nExample: `ocid1.artifactrepository.oc1..exampleuniqueID`\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "isImmutable": {
      "description": "Whether the repository is immutable. The artifacts of an immutable repository cannot be overwritten.",
      "type": "boolean"
    },
    "lifecycleState": {
      "description": "The current state of the repository.",
      "enum": [
        "AVAILABLE",
        "DELETING",
        "DELETED"
      ],
      "type": "string"
    },
    "repositoryType": {
      "description": "The repository's supported artifact type.",
      "enum": [
        "GENERIC"
      ],
      "type": "string"
    },
    "timeCreated": {
      "description": "An RFC 3339 timestamp indicating when the repository was created.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "id",
    "displayName",
    "compartmentId",
    "repositoryType",
    "description",
    "isImmutable",
    "lifecycleState",
    "freeformTags",
    "definedTags",
    "timeCreated"
  ]
}