{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/oracle/main/json-schema/oracle-generic-artifact-schema.json",
  "title": "GenericArtifact",
  "description": "The metadata of the artifact.",
  "x-generated": "2026-10-03",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/oracle-artifacts-api-openapi.yml#/components/schemas/GenericArtifact",
  "properties": {
    "artifactPath": {
      "description": "A user-defined path to describe the location of an artifact. Slashes do not create a directory structure, but you can use slashes to organize the repository. An artifact path does not include an artifact version.\n\nExample: `project01/my-web-app/artifact-abc`\n",
      "maxLength": 256,
      "minLength": 1,
      "type": "string"
    },
    "compartmentId": {
      "description": "The [OCID](/iaas/Content/General/Concepts/identifiers.htm) 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"
    },
    "displayName": {
      "description": "The artifact name with the format of `<artifact-path>:<artifact-version>`. The artifact name is truncated to a maximum length of 255.\n\nExample: `project01/my-web-app/artifact-abc:1.0.0`\n",
      "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 artifact.\n\nExample: `ocid1.genericartifact.oc1..exampleuniqueID`\n",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "lifecycleState": {
      "description": "The current state of the artifact.",
      "enum": [
        "AVAILABLE",
        "DELETING",
        "DELETED"
      ],
      "type": "string"
    },
    "repositoryId": {
      "description": "The [OCID](/Content/General/Concepts/identifiers.htm) of the repository.",
      "maxLength": 255,
      "minLength": 1,
      "type": "string"
    },
    "sha256": {
      "description": "The SHA256 digest for the artifact. When you upload an artifact to the repository, a SHA256 digest is calculated and added to the artifact properties.",
      "maxLength": 64,
      "minLength": 1,
      "type": "string"
    },
    "sizeInBytes": {
      "description": "The size of the artifact in bytes.",
      "format": "int64",
      "type": "integer"
    },
    "timeCreated": {
      "description": "An RFC 3339 timestamp indicating when the repository was created.",
      "format": "date-time",
      "type": "string"
    },
    "version": {
      "description": "A user-defined string to describe the artifact version.\n\nExample: `1.1.0` or `1.2-beta-2`\n",
      "maxLength": 128,
      "minLength": 1,
      "type": "string"
    }
  },
  "required": [
    "id",
    "displayName",
    "compartmentId",
    "repositoryId",
    "artifactPath",
    "version",
    "sha256",
    "sizeInBytes",
    "lifecycleState",
    "freeformTags",
    "definedTags",
    "timeCreated"
  ]
}