{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/adobe/main/json-schema/adobe-post-library-elements-payload-schema.json",
  "title": "PostLibraryElementsPayload",
  "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/PostLibraryElementsPayload",
  "type": "object",
  "required": [
    "client",
    "name",
    "type"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Ignored if submitted. The result will have a different ID."
    },
    "description": {
      "type": "string",
      "description": "Description of new element"
    },
    "name": {
      "type": "string",
      "description": "Display name for new element"
    },
    "type": {
      "type": "string",
      "description": "Element type"
    },
    "client": {
      "description": "Client identification information",
      "$ref": "#/$defs/ClientDeviceInfoPayload"
    },
    "representations": {
      "type": "array",
      "description": "Add or associate existing content to the new element",
      "items": {
        "$ref": "#/$defs/DbLibraryElementRepresentationData"
      }
    },
    "sourceRef": {
      "type": "string",
      "description": "Reference other content as inspiration for this element"
    },
    "source": {
      "description": "Required if copying an element to this library.",
      "$ref": "#/$defs/ElementListPayload"
    },
    "self": {
      "description": "Required if moving an element to this library.",
      "$ref": "#/$defs/ElementListPayload"
    }
  },
  "$defs": {
    "ClientDeviceInfoPayload": {
      "type": "object",
      "properties": {
        "deviceId": {
          "type": "string"
        },
        "device": {
          "type": "string"
        },
        "app": {
          "type": "string"
        }
      }
    },
    "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
        }
      }
    },
    "ElementListPayload": {
      "type": "object",
      "required": [
        "elements"
      ],
      "properties": {
        "elements": {
          "type": "array",
          "description": "Array of elements to be copied to the targeted library",
          "readOnly": true,
          "items": {
            "$ref": "#/$defs/ElementListPayloadElement"
          }
        },
        "id": {
          "type": "string",
          "description": "URN of the source library, not required if copying elements within the same library",
          "readOnly": true
        },
        "elementIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "ElementListPayloadElement": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "type": "string",
          "description": "Id of element"
        },
        "name": {
          "type": "string",
          "description": "Name of element"
        },
        "description": {
          "type": "string",
          "description": "Description of element. If this is set to an empty string, the current description will be deleted."
        }
      }
    },
    "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"
        }
      }
    }
  }
}