{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/adobe/main/json-schema/adobe-db-library-element-data-schema.json",
  "title": "DbLibraryElementData",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/adobe-library-service-api-openapi.yml#/components/schemas/DbLibraryElementData",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "storage_used": {
      "type": "integer",
      "format": "int64",
      "description": "Storage used"
    },
    "created_date": {
      "type": "integer",
      "format": "int64"
    },
    "modified_date": {
      "type": "integer",
      "format": "int64"
    },
    "type": {
      "type": "string"
    },
    "source": {
      "type": "string"
    },
    "element_type": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "thumbnail": {
      "readOnly": true,
      "$ref": "#/$defs/DbLibraryElementRenditionData"
    },
    "groups": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/DbLibraryGroup"
      }
    },
    "representations": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/DbLibraryElementRepresentationData"
      }
    },
    "details": {
      "$ref": "#/$defs/DbLibraryElementDetailData"
    },
    "assetSubType": {
      "type": "string"
    },
    "_fc": {
      "type": "boolean"
    },
    "sourceRef": {
      "type": "string"
    },
    "_links": {
      "$ref": "#/$defs/MelvilleHypermediaLibraryElementLinks"
    },
    "parent_id": {
      "type": "string"
    },
    "manifest_etag": {
      "type": "string"
    }
  },
  "$defs": {
    "DbLibraryElementDetailData": {
      "type": "object",
      "properties": {
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "created": {
          "$ref": "#/$defs/DbLibraryElementDetailsCreatedModifiedData"
        },
        "lastModified": {
          "$ref": "#/$defs/DbLibraryElementDetailsCreatedModifiedData"
        },
        "description": {
          "type": "string"
        }
      }
    },
    "DbLibraryElementDetailsCreatedModifiedData": {
      "type": "object",
      "properties": {
        "userId": {
          "type": "string"
        },
        "deviceId": {
          "type": "string"
        },
        "device": {
          "type": "string"
        },
        "app": {
          "type": "string"
        },
        "time": {
          "type": "integer",
          "format": "int64"
        }
      }
    },
    "DbLibraryElementRenditionData": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string"
        },
        "rendition": {
          "type": "object",
          "properties": {}
        }
      }
    },
    "DbLibraryElementRepresentationData": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "relationship": {
          "type": "string"
        },
        "path": {
          "type": "string"
        },
        "linkurl": {
          "type": "string"
        },
        "linktype": {
          "type": "string"
        },
        "is_full_size": {
          "type": "boolean"
        },
        "is_external_link": {
          "type": "boolean"
        },
        "width": {
          "type": "integer",
          "format": "int64"
        },
        "height": {
          "type": "integer",
          "format": "int64"
        },
        "content_length": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "asset_id": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "md5": {
          "type": "string"
        },
        "_links": {
          "$ref": "#/$defs/MelvilleHypermediaRepresentationLinks"
        },
        "etag": {
          "type": "string"
        },
        "storage_href": {
          "type": "string"
        },
        "representation_order": {
          "type": "integer",
          "format": "int32"
        },
        "is_preferred_thumbnail": {
          "type": "boolean"
        },
        "is_component": {
          "type": "boolean",
          "readOnly": true
        }
      }
    },
    "DbLibraryGroup": {
      "type": "object",
      "required": [
        "name",
        "order"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Group id."
        },
        "name": {
          "type": "string",
          "description": "Group name."
        },
        "classifier": {
          "type": "string",
          "description": "Group namespace. Currently defaults to $default. The default should be used unless there's a specific case to provide a custom classifiers. Non-default classifiers are presently not supported in any applications."
        },
        "order": {
          "type": "string",
          "description": "Lexicographical string for setting the group's place in the group list, or for an element's place within a group.The client is responsible for providing and sorting using these strings."
        },
        "created_date": {
          "type": "integer",
          "format": "int64",
          "description": "Group created date"
        },
        "modified_date": {
          "type": "integer",
          "format": "int64",
          "description": "Group modified date"
        },
        "parent_id": {
          "type": "string",
          "description": "Defines a relationship between nested groups.  If provided, and the specified parent group exists, this group will be the \"child\" of the parent group. If there is no group in the library that matches the supplied parentId the group will still be created or updated with an empty parentId."
        }
      }
    },
    "MelvilleHypermediaLibraryElementLinks": {
      "type": "object",
      "properties": {
        "http://ns.adobe.com/melville/rel/primary": {
          "description": "Primary Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/path": {
          "description": "Path Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/id": {
          "description": "ID Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/ac/policy": {
          "description": "Policy Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/ac/check": {
          "description": "Check Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/ac/effective": {
          "description": "Effective Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/describedBy": {
          "description": "Metadata Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/metadata/application": {
          "description": "Application Metadata Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/metadata/repository": {
          "description": "Repository Metadata Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/rendition": {
          "description": "Rendition Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/version-history": {
          "description": "Version History Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/manifest": {
          "description": "Manifest Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/component": {
          "description": "Component Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/elements": {
          "description": "Elements Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/element": {
          "description": "Element Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/groups": {
          "description": "Groups Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/representations": {
          "description": "Representations Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/raw": {
          "description": "Raw Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "page": {
          "description": "Page Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "next": {
          "description": "Next Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        }
      }
    },
    "MelvilleHypermediaLink": {
      "type": "object",
      "properties": {
        "href": {
          "type": "string"
        },
        "rel": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "templated": {
          "type": "boolean"
        }
      }
    },
    "MelvilleHypermediaRepresentationLinks": {
      "type": "object",
      "properties": {
        "http://ns.adobe.com/melville/rel/primary": {
          "description": "Primary Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/path": {
          "description": "Path Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/id": {
          "description": "ID Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/ac/policy": {
          "description": "Policy Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/ac/check": {
          "description": "Check Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/ac/effective": {
          "description": "Effective Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/describedBy": {
          "description": "Metadata Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/metadata/application": {
          "description": "Application Metadata Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/metadata/repository": {
          "description": "Repository Metadata Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/rendition": {
          "description": "Rendition Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/version-history": {
          "description": "Version History Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/manifest": {
          "description": "Manifest Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/component": {
          "description": "Component Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/elements": {
          "description": "Elements Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/element": {
          "description": "Element Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/groups": {
          "description": "Groups Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/representations": {
          "description": "Representations Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "http://ns.adobe.com/melville/rel/raw": {
          "description": "Raw Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "page": {
          "description": "Page Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        },
        "next": {
          "description": "Next Link",
          "$ref": "#/$defs/MelvilleHypermediaLink"
        }
      }
    }
  }
}