{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-container-repository-schema.json",
  "title": "ContainerRepository",
  "description": "Container repository metadata.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-artifacts-api-openapi.yml#/components/schemas/ContainerRepository",
  "properties": {
    "billableSizeInGBs": {
      "description": "Total storage size in GBs that will be charged.",
      "format": "int64",
      "type": "integer"
    },
    "compartmentId": {
      "description": "The OCID of the compartment in which the container repository exists.",
      "maxLength": 100,
      "minLength": 1,
      "type": "string"
    },
    "createdBy": {
      "description": "The id of the user or principal that created the resource.",
      "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"
    },
    "displayName": {
      "description": "The container 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 container repository.\n\nExample: `ocid1.containerrepo.oc1..exampleuniqueID`\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "imageCount": {
      "description": "Total number of images.",
      "format": "int32",
      "type": "integer"
    },
    "isImmutable": {
      "description": "Whether the repository is immutable. Images cannot be overwritten in an immutable repository.",
      "type": "boolean"
    },
    "isPublic": {
      "description": "Whether the repository is public. A public repository allows unauthenticated access.",
      "type": "boolean"
    },
    "layerCount": {
      "description": "Total number of layers.",
      "format": "int32",
      "type": "integer"
    },
    "layersSizeInBytes": {
      "description": "Total storage in bytes consumed by layers.",
      "format": "int64",
      "type": "integer"
    },
    "lifecycleState": {
      "description": "The current state of the container repository.",
      "enum": [
        "AVAILABLE",
        "DELETING",
        "DELETED"
      ],
      "type": "string"
    },
    "namespace": {
      "description": "The tenancy namespace used in the container repository path.",
      "maxLength": 64,
      "minLength": 1,
      "type": "string"
    },
    "readme": {
      "$ref": "#/$defs/ContainerRepositoryReadme"
    },
    "systemTags": {
      "additionalProperties": {
        "additionalProperties": {
          "description": "The value of the tag.\n",
          "type": "object"
        },
        "description": "Key-value pair representing a system tag key and value, scoped to a namespace.\nExample: `{\"free-tier-retained\" : \"true\"}`\n",
        "type": "object"
      },
      "description": "The system tags for this resource. Each key is predefined and scoped to a namespace.\nExample: `{\"orcl-cloud\": {\"free-tier-retained\": \"true\"}}`\n",
      "type": "object"
    },
    "timeCreated": {
      "description": "An RFC 3339 timestamp indicating when the repository was created.",
      "format": "date-time",
      "type": "string"
    },
    "timeLastPushed": {
      "description": "An RFC 3339 timestamp indicating when an image was last pushed to the repository.",
      "format": "date-time",
      "type": "string"
    }
  },
  "required": [
    "compartmentId",
    "createdBy",
    "displayName",
    "id",
    "imageCount",
    "isImmutable",
    "isPublic",
    "layerCount",
    "layersSizeInBytes",
    "lifecycleState",
    "timeCreated",
    "billableSizeInGBs",
    "namespace",
    "freeformTags",
    "definedTags",
    "systemTags"
  ],
  "$defs": {
    "ContainerRepositoryReadme": {
      "description": "Container repository readme.",
      "properties": {
        "content": {
          "description": "Readme content. Avoid entering confidential information.",
          "maxLength": 8192,
          "minLength": 0,
          "type": "string"
        },
        "format": {
          "description": "Readme format. Supported formats are text/plain and text/markdown.",
          "enum": [
            "TEXT_MARKDOWN",
            "TEXT_PLAIN"
          ],
          "type": "string"
        }
      },
      "required": [
        "content",
        "format"
      ]
    }
  }
}