{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/adobe/json-schema/adobe-metadata-schema.json",
  "title": "Metadata",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/adobe-aem-assets-author-openapi.yml#/components/schemas/Metadata",
  "type": "object",
  "properties": {
    "assetId": {
      "$ref": "#/$defs/AssetId"
    },
    "repositoryMetadata": {
      "$ref": "#/$defs/RepositoryMetadata"
    },
    "assetMetadata": {
      "$ref": "#/$defs/AssetMetadata"
    }
  },
  "$defs": {
    "AssetId": {
      "type": "string",
      "description": "ID of the asset",
      "minLength": 1
    },
    "AssetMetadata": {
      "type": "object",
      "description": "Metadata properties that have been extracted from the asset, derived during asset processing, or applied after ingestion.  These properties are, for the most part, editable.",
      "properties": {
        "xcm:keywords": {
          "type": "array",
          "description": "tags that have been applied to the asset from the tag taxonomy",
          "items": {
            "type": "object",
            "properties": {
              "tagId": {
                "type": "string",
                "description": "unique identifier of the tag in the taxonomy",
                "minLength": 1
              },
              "ancestorIds": {
                "type": "array",
                "uniqueItems": true,
                "description": "unique identifiers of ancestor tags, from root toward the applied tag",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "value": {
                "type": "string",
                "description": "the tag for the asset"
              },
              "repo:ancestors": {
                "type": "array",
                "uniqueItems": true,
                "description": "list of ancestor names for the tag",
                "items": {
                  "type": "string"
                }
              },
              "@lang": {
                "type": "string",
                "description": "the ISO 639-1 language code for the tag"
              }
            }
          }
        },
        "dc:creator": {
          "type": "array",
          "description": "The entity primarily responsible for making the asset",
          "items": {
            "type": "string"
          }
        },
        "dc:description": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "An account of the asset"
        },
        "dc:title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          ],
          "description": "A name given to the asset"
        },
        "exif:GPSLatitude": {
          "type": "string",
          "description": "Indicates the latitude. The latitude is expressed as three RATIONAL values giving the degrees, minutes, and seconds, respectively."
        },
        "exif:GPSLongitude": {
          "type": "string",
          "description": "Indicates the longitude. The longitude is expressed as three RATIONAL values giving the degrees, minutes, and seconds, respectively."
        },
        "photoshop:ColorMode": {
          "type": "number",
          "description": "The color mode of the asset"
        },
        "photoshop:DateCreated": {
          "type": "string",
          "format": "date-time",
          "description": "The creation date of the asset as set by Photoshop"
        },
        "xcm:machineKeywords": {
          "type": "array",
          "description": "Smart Tags that have been predicted for the asset during asset processing",
          "items": {
            "type": "object",
            "properties": {
              "value": {
                "type": "string",
                "description": "the predicted tag for the asset"
              },
              "confidence": {
                "type": "number",
                "format": "double",
                "description": "the model's confidence score for this tag"
              },
              "localeCode": {
                "type": "string",
                "description": "the ISO 639-1 language code for the tag"
              }
            }
          }
        },
        "tiff:BitsPerSample": {
          "type": "array",
          "description": "Number of bits per component.",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "tiff:Orientation": {
          "type": "number",
          "description": "The orientation of the image with respect to the rows and columns."
        },
        "xmp:CreateDate": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time the resource was created."
        },
        "xmp:CreatorTool": {
          "type": "string",
          "description": "The name of the first known tool used to create the resource."
        },
        "xmp:ModifyDate": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time the resource was last modified."
        }
      },
      "additionalProperties": true
    },
    "RepositoryId": {
      "description": "The ID of the repository that contains the asset, link, folder or collection",
      "type": "string",
      "minLength": 1,
      "readOnly": true
    },
    "RepositoryMetadata": {
      "type": "object",
      "description": "Read-only metadata properties that are maintained by the repository for the asset. Properties may be omitted if not applicable.",
      "properties": {
        "repo:name": {
          "type": "string",
          "description": "The asset storage name",
          "readOnly": true
        },
        "repo:path": {
          "type": "string",
          "description": "The asset storage path",
          "readOnly": true
        },
        "repo:assetId": {
          "type": "string",
          "description": "The asset identifier",
          "readOnly": true
        },
        "repo:parent": {
          "type": "string",
          "description": "The identifier of the parent folder of the asset",
          "readOnly": true
        },
        "repo:ancestors": {
          "type": "array",
          "description": "List of ancestor folder identifiers, starting with the identifier of the storage root folder and ending with the identifier of the parent folder of the asset.",
          "uniqueItems": true,
          "readOnly": true,
          "items": {
            "type": "string"
          }
        },
        "repo:createDate": {
          "type": "string",
          "format": "date-time",
          "description": "The created date of the asset as maintained by the content repository",
          "readOnly": true
        },
        "repo:createdBy": {
          "type": "string",
          "description": "The user that created the asset in the content repository",
          "readOnly": true
        },
        "repo:modifyDate": {
          "type": "string",
          "format": "date-time",
          "description": "The last modified date of the asset as maintained by the content repository",
          "readOnly": true
        },
        "repo:modifiedBy": {
          "type": "string",
          "description": "The user that last modified the asset in the content repository",
          "readOnly": true
        },
        "dc:format": {
          "type": "string",
          "description": "The file format of the asset",
          "readOnly": true
        },
        "repo:size": {
          "type": "integer",
          "format": "int64",
          "description": "The size, in bytes, of the asset binary",
          "readOnly": true
        },
        "dam:sha1": {
          "type": "string",
          "description": "A SHA1 hash of the asset's binary content",
          "readOnly": true
        },
        "tiff:imageLength": {
          "type": "integer",
          "description": "The number of rows of pixels in the image.",
          "readOnly": true
        },
        "tiff:imageWidth": {
          "type": "integer",
          "description": "The number of columns in the image, i.e., the number of pixels per row.",
          "readOnly": true
        },
        "isPublishedToAemPublish": {
          "type": "boolean",
          "description": "Set to `true` when the asset has been published to AEM Publish",
          "readOnly": true
        },
        "isPublishedToDynamicMedia": {
          "type": "boolean",
          "description": "Set to `true` when the asset has been published to Dynamic Media",
          "readOnly": true
        },
        "lastPublishedToAemPublish": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time at which the asset was last published to AEM Publish",
          "readOnly": true
        },
        "lastPublishedToDynamicMedia": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time at which the asset was last published to Dynamic Media",
          "readOnly": true
        },
        "aem:published": {
          "type": "string",
          "format": "date-time",
          "description": "The date and time at which the asset was last published to AEM Publish",
          "readOnly": true,
          "deprecated": true
        },
        "aem:assetState": {
          "type": "string",
          "description": "The processing state of the asset",
          "readOnly": true
        },
        "aem:checkedOutBy": {
          "type": "string",
          "description": "The User ID of the user who has checked out the asset, if it is checked out",
          "readOnly": true
        },
        "repo:state": {
          "type": "string",
          "description": "Indicates the state change of an asset. This property is an enumeration that can have values - ACTIVE, DISCARDED, DISCARDED_PARENT.",
          "readOnly": true
        },
        "repo:repositoryId": {
          "$ref": "#/$defs/RepositoryId"
        },
        "repo:etag": {
          "type": "string",
          "description": "Computed as a hash over the schema ID, repo:path, and the full serialized metadata response. Changes whenever any of those change. Use with `If-None-Match` (GET) or `If-Match` (PATCH).",
          "readOnly": true
        },
        "repo:scene7Domain": {
          "type": "string",
          "description": "Scene7 delivery domain",
          "readOnly": true
        },
        "repo:scene7File": {
          "type": "string",
          "description": "Scene7 file path",
          "readOnly": true
        },
        "repo:scene7FileStatus": {
          "type": "string",
          "description": "Scene7 synchronization status (e.g. `PublishComplete`)",
          "readOnly": true
        },
        "repo:scene7Folder": {
          "type": "string",
          "description": "Scene7 folder path",
          "readOnly": true
        },
        "repo:scene7FontStyle": {
          "type": "string",
          "description": "Font style (font assets)",
          "readOnly": true
        },
        "repo:scene7FontType": {
          "type": "string",
          "description": "Font type (font assets)",
          "readOnly": true
        },
        "repo:scene7LastModified": {
          "type": "string",
          "description": "Timestamp of last Scene7 modification",
          "readOnly": true
        },
        "repo:scene7Name": {
          "type": "string",
          "description": "Scene7 asset name",
          "readOnly": true
        },
        "repo:scene7RTFName": {
          "type": "string",
          "description": "RTF font name (font assets)",
          "readOnly": true
        },
        "repo:scene7Type": {
          "type": "string",
          "description": "Scene7 asset type",
          "readOnly": true
        }
      },
      "additionalProperties": true
    }
  }
}