{
  "openapi": "3.0.1",
  "info": {
    "title": "Entities API",
    "description": "Use the Entities API to retrieve, create, update, and delete entities. An entity is a set of data that belongs together (such as for a product, campaign, project, story, recipe, or asset).\n\n## Authentication\n\nTo use the Entities API, you need:\n\n- The URL of your Content Hub server. You can get this from your Content Hub Administrator. Enter this URL in the <b>{{server}}</b> variable by hovering your mouse  over the variable in the <b>Try it</b> pane and then clicking <b>Edit</b>.\n- An access token and the client ID. Both are sent with every request. You can create a token through the [Content Hub interface](https://doc.sitecore.com/ch/en/users/content-hub/create-an-oauth-client.html) or by [requesting one using the API itself](https://doc.sitecore.com/ch/en/developers/cloud-dev/oauth-tokens.html#grant-flows)\n   {% admonition type=\"info\" name=\"Note\" %}A [Copy method](https://doc.sitecore.com/ch/en/developers/cloud-dev/entity-1523348.html) is also available. {% /admonition %}\n",
    "version": "v2.0",
    "x-metadata": {
      "product": "Content Hub"
    },
    "license": {
      "name": "closed source",
      "url": "https://www.sitecore.com"
    }
  },
  "servers": [
    {
      "url": "https://{server}",
      "variables": {
        "server": {
          "default": "your-server"
        }
      }
    }
  ],
  "security": [
    {
      "OAuth2": []
    }
  ],
  "tags": [
    {
      "name": "Entities",
      "description": "The Entities endpoint is used to manage entities.  "
    },
    {
      "name": "Lifecycle",
      "description": "The Lifecycle endpoint is used to manage the entity lifecycle and validate user permissions to perform various actions."
    }
  ],
  "paths": {
    "/api/entities/{id}": {
      "get": {
        "tags": [
          "Entities"
        ],
        "summary": "Retrieve an entity using its ID",
        "description": "Retrieves an entity using its ID and loads related data, including entity properties, member groups, renditions, permissions, and so on. You can also specify cultures for multi-language support.",
        "operationId": "EntityById",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID for the entity, for example, `39752`.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "culture",
            "in": "query",
            "description": "Culture of the entity you want to load, for example `en-US` . If no culture is provided, multi-language properties are not included. Use the `cultures` parameter to retrieve the entity in multiple cultures.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "Member groups to include, for example, `PreambleGroup,ChoiceGroup`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "members",
            "in": "query",
            "description": "Members to include, for example, `PreambleThemeProperty,ChoiceThemeProperty`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "renditions",
            "in": "query",
            "description": "Renditions to include (comma-separated list), for example `Thumbnail,Preview`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nestedRelations",
            "in": "query",
            "description": "Related entities to load directly instead of being referenced by a URL, for example `ParentRelation,ChildRelation`.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "loadPermissions",
            "in": "query",
            "description": "Whether to include all permissions the user has on the entity, for example `true` or `false`.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "cultures",
            "in": "query",
            "description": "Cultures in which to load the entity. The culture parameter can still specify a culture, even if this parameter is missing, for example `true` or `false`.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityResource"
                }
              }
            }
          },
          "301": {
            "description": "Redirected (Moved permanently). Applies only to light entities."
          },
          "400": {
            "description": "Request or Entity ID not valid (for example, less than or equal to zero or does not exist), or at least one culture is null."
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      },
      "put": {
        "tags": [
          "Entities"
        ],
        "summary": "Update an entity using its ID",
        "description": "Updates an entity with the new details provided, including properties, relations, associated members and groups, and so on. Properties or relations not included in the request will be set to null.",
        "operationId": "UpdateEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The ID of the entity to update, for example, `39752`.",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "culture",
            "in": "query",
            "description": "User culture for the entity, for example `en-US`, `fr-CA`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "Member groups to associate with the entity, for example `PreambleGroup,ChoiceGroup`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "members",
            "in": "query",
            "description": "Members to associate with the entity, for example `PreambleThemeProperty,ChoiceThemeProperty`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cultures",
            "in": "query",
            "description": "Cultures to load, for example `en-US, fr-FR`. If provided, it overrides the culture parameter.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "requestBody": {
          "description": "The new details of the entity.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EntityResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Request or Entity ID not valid (for example, less than or equal to zero or does not exist), or at least one culture is null."
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Entities"
        ],
        "summary": "Delete an entity using its ID",
        "description": "Deletes an entity with the specified ID.",
        "operationId": "DeleteEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique ID of the entity to be deleted, for example, `39752`.",
            "required": true,
            "schema": {
              "pattern": "\\d+",
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity successfully deleted"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/identifier/{identifier}": {
      "get": {
        "tags": [
          "Entities"
        ],
        "summary": "Retrieve an entity using its identifier",
        "description": "Retrieves an entity with the specified identifier, including related data such as properties, member groups, renditions, permissions, and so on.",
        "operationId": "EntityByIdentifier",
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "description": "The identifier for the entity, for example, `asset.VIPeventfruitbowl`.",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9]+$"
            }
          },
          {
            "name": "culture",
            "in": "query",
            "description": "Culture in which to load the entity, for example `en-US`. If no culture is provided, multi-language properties are not included.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "Member groups to include, for example `PreambleGroup,ChoiceGroup`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "members",
            "in": "query",
            "description": "Members to include, for example `PreambleThemeProperty,ChoiceThemeProperty`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "renditions",
            "in": "query",
            "description": "Renditions to include (comma-separated list), for example `Thumbnail,Preview`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nestedRelations",
            "in": "query",
            "description": "Related entities to load directly instead of being referenced by a URL.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "loadPermissions",
            "in": "query",
            "description": "Whether to include all permissions the user has on the entity.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityResource"
                }
              }
            }
          },
          "301": {
            "description": "Redirected (Moved permanently). Applies only to light entities."
          },
          "400": {
            "description": "Request or Entity identifier not valid (for example, less than or equal to zero or does not exist)."
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      },
      "put": {
        "tags": [
          "Entities"
        ],
        "summary": "Update an entity using its identifier",
        "description": "Updates an entity with the new details provided, including properties, relations, associated members and groups, and so on. Properties or relations not included in the request will be set to null.",
        "operationId": "UpdateEntityByIdentifier",
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "description": "The unique identifier of the entity to update, for example, `asset.VIPeventfruitbowl`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "culture",
            "in": "query",
            "description": "User culture for the entity, for example `en-US`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "Member groups to associate with the entity, for example `PreambleGroup,ChoiceGroup`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "members",
            "in": "query",
            "description": "Members to associate with the entity, for example `PreambleThemeProperty,ChoiceThemeProperty`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The new details of the entity to be updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EntityResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Entity successfully updated"
          },
          "400": {
            "description": "Request not valid (for example, entity ID not found), or update resource is null."
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      },
      "delete": {
        "tags": [
          "Entities"
        ],
        "summary": "Delete an entity using its identifier",
        "description": "Deletes an entity with the specified identifier.",
        "operationId": "DeleteEntityByIdentifier",
        "parameters": [
          {
            "name": "identifier",
            "in": "path",
            "description": "The unique identifier of the entity to be deleted,  for example, `asset.VIPeventfruitbowl`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity successfully deleted"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entitydefinitions/{name}/entities": {
      "get": {
        "tags": [
          "Entities"
        ],
        "summary": "Retrieve a list of all entities for a specific entity definition",
        "description": "Lists all entities for the specified entity definition.",
        "operationId": "EntitiesByDefinition",
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "description": "Entity definition name to use when filtering the entities, for example `M.Asset`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "Number of entities to skip before retrieving results, for example `1`.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "Number of entities to retrieve, for example `2`.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "culture",
            "in": "query",
            "description": "User culture in which to load the entities, for example `en-US`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Additional filters to apply when retrieving entities, for example `status:active AND type:image`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "Member groups to include in the retrieved entities, for example `PreambleGroup,ChoiceGroup`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "members",
            "in": "query",
            "description": "Members to include in the retrieved entities, for example `PreambleThemeProperty,ChoiceThemeProperty`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nestedRelations",
            "in": "query",
            "description": "Related entities to include fully loaded in the result, for example `AssetRelation,ChildAssetRelation`.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityCollectionResource"
                }
              }
            }
          },
          "400": {
            "description": "Request or Entity definition is not valid (for example, less than or equal to zero or does not exist), or at least one culture is null."
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities": {
      "post": {
        "tags": [
          "Entities"
        ],
        "summary": "Create an entity",
        "description": "Creates an entity with the specified details, including associated members and groups. The link to the associated `Entity Definition Resource` is required. The `self` property is ignored and can be omitted. <br> <br> If the request body contains an `id`, the request is treated as a possible `UPSERT`. If the `id` is omitted and only an `identifier` is provided, the request returns a conflict instead of updating the existing entity. The request then checks for the existence of the entity and if the response is positive, it updates the entity based on the provided body elements. When an `id` is present, the header contains the same `Location` property as with a normal `POST` response. When an `identifier` is used, the header contains an `X-Global-Identifier` property with the updated identifier as its value. <br> <br> Use the [Upload API](https://doc.sitecore.com/ch/en/developers/cloud-dev/upload.html) to upload assets to Content Hub. {% admonition type=\"info\" name=\"Note\" %}It is not possible to set relations while creating an entity unless the relations are nested. Additionally, this functionality is available only through the REST API and not through the Web Client SDK. For non-nested relations one call is made for each relation that is updated. {% /admonition %}",
        "operationId": "AddEntity",
        "parameters": [
          {
            "name": "culture",
            "in": "query",
            "description": "Culture for the entity, for example `en-US`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groups",
            "in": "query",
            "description": "Member groups to associate with the entity, for example `PreambleGroup,ChoiceGroup`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "members",
            "in": "query",
            "description": "Members to associate with the entity, for example `PreambleThemeProperty,ChoiceThemeProperty`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Details of the entity to be added.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EntityPostResource"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Request not valid(for example, less than or equal to zero), or target resource is null."
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{entityId}/v2.0/renditions": {
      "get": {
        "tags": [
          "Entities"
        ],
        "summary": "Retrieve renditions for a specified entity",
        "description": "Retrieves information about all renditions that exist for a specified entity, including their gateway links and delivery links.",
        "operationId": "GetRenditionsV2",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The unique identifier of the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenditionsAggregateResource"
                }
              }
            }
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      },
      "post": {
        "tags": [
          "Entities"
        ],
        "summary": "Retrieve renditions for a specified entity",
        "description": "Retrieves information about renditions that exist for a specified entity, including their gateway links and delivery links. Renditions can be filtered by `area of use` or by their `rendition link name`, or both.",
        "operationId": "GetFilteredRenditionsV2",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The unique identifier of the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The filter for the renditions.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RenditionFilterResource"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenditionFilterResource"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RenditionFilterResource"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RenditionFilterResource"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RenditionsAggregateResource"
                }
              }
            }
          },
          "400": {
            "description": "Request not valid, such as invalid entity ID or missing filter"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized to access the renditions"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{entityId}/v2.0/renditions/GetUserRenditionsCount": {
      "get": {
        "tags": [
          "Entities"
        ],
        "summary": "Retrieve the count of user renditions for a specified entity",
        "description": "Retrieves the count of user renditions for a specified entity.",
        "operationId": "GetUserRenditionCountV2",
        "parameters": [
          {
            "name": "entityId",
            "in": "path",
            "description": "The unique identifier of the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserRenditionCountResource"
                }
              }
            }
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle": {
      "get": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Retrieve lifecycle actions",
        "description": "Retrieves the lifecycle actions that are available for the entity based on its permissions (independent of its current state). For example, if a user is allowed to submit an entity, the <i>submit</i> action will be returned in the list, even if  the entity has already been approved.",
        "operationId": "EntityLifeCycle",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lifecycle actions retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EntityLifeCycleResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/submit": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Submit an entity for review",
        "description": "Submits an entity in the <i>created</i> state for review allowing the user to approve or reject it. Requires the <i>Submit</i> permission.",
        "operationId": "SubmitEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity successfully submitted"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/directpublish": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Publish an entity directly",
        "description": "Publishes an entity with the <i>created</i> state directly, without going through the approval process. Requires the <i>DirectPublish</i> permission.",
        "operationId": "DirectPublishEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity published successfully"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/approve": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Approve an entity",
        "description": "Approves an entity in the <i>review</i> state. Requires the <i>Approve</i> permission.",
        "operationId": "ApproveEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity approved successfully"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/reject": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Reject an entity",
        "description": "Rejects an entity in the <i>review</i> state. A reason for the rejection must be provided. Requires the <i>Reject</i> permission.",
        "operationId": "RejectEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "requestBody": {
          "description": "The reject request containing the reason for the rejection.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RejectEntityRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectEntityRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RejectEntityRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RejectEntityRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Entity rejected successfully"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/archive": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Archive an entity",
        "description": "Archives an <i>approved</i> entity. The entity can be restored if needed. Requires the <i>Archive</i> permission.",
        "operationId": "ArchiveEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity archived successfully"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/restore": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Restore an entity",
        "description": "Restores an archived entity to the <i>approved</i> state. Requires the <i>Archive</i> permission.",
        "operationId": "RestoreEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity restored successfully from archive"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/restorefromdelete": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Restore an entity from the deleted state",
        "description": "Restores an entity that has been soft deleted. Hard deleted entities cannot be restored. Requires the <i>Delete</i> permission.",
        "operationId": "RestoreFromDelete",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity restored successfully from deletion"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/entities/{id}/lifecycle/softdeleteentity": {
      "post": {
        "tags": [
          "Lifecycle"
        ],
        "summary": "Soft delete an entity",
        "description": "Deletes an entity, marking it as deleted but without permanently removing it from the system (soft deletion). This action can be reversed by restoring the entity later. Requires the <i>Delete</i> permission.",
        "operationId": "SoftDeleteEntity",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier for the entity.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Entity soft deleted successfully"
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "403": {
            "description": "Insufficient permission"
          },
          "404": {
            "description": "Entity not found or user not authorized"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "EntityCollectionResource": {
        "type": "object",
        "properties": {
          "last_hit_data": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The last returned hits, which are used to fetch the next page of results.",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityResource"
            },
            "description": "Gets or sets the list of items.",
            "nullable": true
          },
          "total_items": {
            "type": "integer",
            "description": "Gets or sets the total number of items.",
            "format": "int64",
            "nullable": true
          },
          "returned_items": {
            "type": "integer",
            "description": "Gets or sets the number of returned items.",
            "format": "int64",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "description": "Gets or sets the offset of the items.",
            "format": "int32",
            "nullable": true
          },
          "next": {
            "$ref": "#/components/schemas/Link"
          },
          "previous": {
            "$ref": "#/components/schemas/Link"
          },
          "identifier": {
            "type": "string",
            "description": "Gets or sets the identifier of the resource.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": {},
        "description": "Collection of entities resulted of a query"
      },
      "EntityLink": {
        "type": "object",
        "properties": {
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true
            },
            "description": "Gets or sets the nested properties of the entity link.",
            "nullable": true
          },
          "renditions": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true
            },
            "description": "Gets or sets the nested renditions of the entity link.",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the nested permissions of the entity link.",
            "nullable": true
          },
          "identifier": {
            "type": "string",
            "description": "Gets or sets the nested identifier of the entity link.",
            "nullable": true
          },
          "href": {
            "type": "string",
            "description": "Gets or sets the URI that points to the resource this link refers to.",
            "nullable": true
          },
          "filename_properties": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the URI that points to the resource this link refers to.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Gets or sets the title that describes this link.",
            "nullable": true
          },
          "templated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the contained URI is a template.",
            "default": false
          }
        },
        "additionalProperties": false,
        "description": "Represents a link to an entity with additional properties, renditions, permissions, and identifier."
      },
      "EntityPostResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Gets or sets the entity ID.",
            "format": "int64",
            "nullable": true
          },
          "identifier": {
            "type": "string",
            "description": "Gets or sets the entity identifier.",
            "nullable": true
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true
            },
            "description": "Gets or sets the properties of the entity.",
            "nullable": true
          },
          "relations": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/RelationResource"
            },
            "description": "Gets or sets the relations of the entity.",
            "nullable": true
          },
          "is_root_taxonomy_item": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity is a root taxonomy item.",
            "nullable": true
          },
          "is_path_root": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity is a path root.",
            "nullable": true
          },
          "entitydefinition": {
            "$ref": "#/components/schemas/Link"
          },
          "is_system_owned": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity is system owned."
          },
          "inherits_security": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity inherits security."
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Represents a resource for creating an entity."
      },
      "EntityResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID for the entity, for example `39752`.",
            "format": "int64"
          },
          "identifier": {
            "type": "string",
            "description": "The identifier for the entity, for example, `asset.VIPeventfruitbowl`.",
            "nullable": true
          },
          "cultures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The cultures associated with the entity, for example `en-US`.",
            "nullable": true
          },
          "properties": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true
            },
            "description": "The properties of the entity.",
            "nullable": true
          },
          "relations": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "nullable": true
            },
            "description": "The relations of the entity.",
            "nullable": true
          },
          "created_by": {
            "$ref": "#/components/schemas/Link"
          },
          "created_on": {
            "type": "string",
            "description": "The date and time when the entity was created.",
            "format": "date-time"
          },
          "modified_by": {
            "$ref": "#/components/schemas/Link"
          },
          "modified_on": {
            "type": "string",
            "description": "The date and time when the entity was last modified.",
            "format": "date-time"
          },
          "locked_by": {
            "$ref": "#/components/schemas/Link"
          },
          "locked_on": {
            "type": "string",
            "description": "The date and time when the entity was locked.",
            "format": "date-time",
            "nullable": true
          },
          "entitydefinition": {
            "$ref": "#/components/schemas/Link"
          },
          "copy": {
            "$ref": "#/components/schemas/Link"
          },
          "copyasync": {
            "$ref": "#/components/schemas/Link"
          },
          "permissions": {
            "$ref": "#/components/schemas/Link"
          },
          "requested_permissions": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean",
              "nullable": true
            },
            "description": "The requested permissions with identification if a certain user has the permissions.",
            "nullable": true
          },
          "lifecycle": {
            "$ref": "#/components/schemas/Link"
          },
          "saved_selections": {
            "$ref": "#/components/schemas/Link"
          },
          "roles": {
            "$ref": "#/components/schemas/Link"
          },
          "annotations": {
            "$ref": "#/components/schemas/Link"
          },
          "is_root_taxonomy_item": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity is a root taxonomy item.",
            "nullable": true
          },
          "is_path_root": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity is a path root.",
            "nullable": true
          },
          "inherits_security": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity inherits security."
          },
          "is_system_owned": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the entity is system owned."
          },
          "version": {
            "type": "integer",
            "description": "The version of the entity.",
            "format": "int64"
          },
          "full": {
            "$ref": "#/components/schemas/Link"
          },
          "modules": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The modules associated with the entity.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": {},
        "description": "Represents an entity resource with various properties, relations and metadata."
      },
      "Link": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "Gets or sets the URI that points to the resource this link refers to.",
            "nullable": true
          },
          "filename_properties": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Gets or sets the URI that points to the resource this link refers to.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Gets or sets the title that describes this link.",
            "nullable": true
          },
          "templated": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the contained URI is a template.",
            "default": false
          }
        },
        "additionalProperties": false,
        "description": "Represents a link to a resource."
      },
      "RelationResource": {
        "type": "object",
        "properties": {
          "parents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityLink"
            },
            "description": "The relation parents.",
            "nullable": true
          },
          "parent": {
            "$ref": "#/components/schemas/EntityLink"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EntityLink"
            },
            "description": "The relation children.",
            "nullable": true
          },
          "child": {
            "$ref": "#/components/schemas/EntityLink"
          },
          "inherits_security": {
            "type": "boolean",
            "description": "A value indicating whether the relation inherits security.",
            "nullable": true
          },
          "parent_total": {
            "type": "integer",
            "description": "Displays the total number of parents in the resource when the relation resource is limited.",
            "format": "int64",
            "nullable": true
          },
          "child_total": {
            "type": "integer",
            "description": "Displays the total number of children in the resource when the relation resource is limited.",
            "format": "int64",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Represents an relation resource."
      },
      "FileInfo": {
        "type": "object",
        "properties": {
          "file_key": {
            "type": "string",
            "description": "The key identifying the file.",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {},
            "description": "Metadata about the file.",
            "nullable": true
          },
          "delivery_link": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Information about a file."
      },
      "FileLocation": {
        "type": "object",
        "properties": {
          "location": {
            "type": "string",
            "description": "The files storage location name.",
            "nullable": true
          },
          "files": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileInfo"
            },
            "description": "Collection of Information about the files.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Information about the rendition's files."
      },
      "RenditionFilterResource": {
        "type": "object",
        "properties": {
          "rendition_link_names": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The names of the rendition links to return if they exist on the entity.",
            "nullable": true
          },
          "areas_of_use": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The area of use of the rendition links to return. For example, the area of use `Download` will return all existing renditions that are available for the download component. See the `RenditionLinkIntendedAreaOfUse` option list for all available values.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Filter when requesting existing renditions for an entity."
      },
      "RenditionLinkInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique identifier for the rendition link.",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "description": "Name of the rendition link.",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A description for the rendition link.",
            "nullable": true
          },
          "is_user_rendition": {
            "type": "boolean",
            "description": "Whether the rendition link is for a user rendition.",
            "nullable": true
          },
          "required_permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of the permission required to access the rendition link.",
            "nullable": true
          },
          "processing_configuration": {
            "description": "The processing configuration in case of user renditions to be able to generate the rendition.",
            "type": "object",
            "nullable": true
          },
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The labels in all languages for the rendition link.",
            "nullable": true
          },
          "watermarking": {
            "$ref": "#/components/schemas/WatermarkInfo"
          },
          "areas_of_use": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The area of use of the rendition link.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Metadata about a rendition link."
      },
      "RenditionsAggregateResource": {
        "type": "object",
        "properties": {
          "entity_id": {
            "type": "integer",
            "description": "The unique identifier for the targeted entity.",
            "format": "int64"
          },
          "renditions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RenditionsResource"
            },
            "description": "Collection of renditions metadata.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Represents a collection of renditions metadata."
      },
      "RenditionsResource": {
        "type": "object",
        "properties": {
          "rendition_link": {
            "$ref": "#/components/schemas/RenditionLinkInfo"
          },
          "file_location": {
            "$ref": "#/components/schemas/FileLocation"
          },
          "rendition_status": {
            "type": "string",
            "description": "Status of the rendition.",
            "nullable": true
          },
          "gateway_link": {
            "$ref": "#/components/schemas/Link"
          },
          "created_by": {
            "type": "integer",
            "description": "The user who created the rendition.",
            "format": "int64",
            "nullable": true
          },
          "modified_by": {
            "type": "integer",
            "description": "The user who last modified the rendition.",
            "format": "int64",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false
      },
      "UserRenditionCountResource": {
        "type": "object",
        "properties": {
          "user_rendition_count": {
            "type": "integer",
            "description": "The user renditions count.",
            "format": "int32"
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "The user renditions count."
      },
      "WatermarkInfo": {
        "type": "object",
        "properties": {
          "gateway_enabled": {
            "type": "boolean",
            "description": "Whether the watermarking can appear on gateway links for this rendition."
          },
          "delivery_enabled": {
            "type": "boolean",
            "description": "Whether the watermarking can appear on delivery links for this rendition."
          }
        },
        "additionalProperties": false,
        "description": "Metadata about when watermarking can potentially be applied on a rendition."
      },
      "EntityLifeCycleResource": {
        "type": "object",
        "properties": {
          "actions": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "A list of actions that can be performed on the entity with an API link to perform them.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Describes the available lifecycle actions are available for an entity."
      },
      "RejectEntityRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": "string",
            "description": "The reason for the rejection.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The reject request containing the reason for the rejection."
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/oauth/token",
            "scopes": {}
          }
        }
      }
    }
  }
}