{
  "openapi": "3.0.1",
  "info": {
    "title": "Status API",
    "description": "\nUse the Status API to monitor system health. Retrieve status information to verify system health and view system statistics.\n\n## Authentication\n\nTo use the Status API, you need:\n\n- The URL of your Content Hub server. You can get this from your Content Hub\n  Administrator. Enter this URL in the <b>{{server}}</b> variable by hovering your mouse\n  over the variable in the <b>Try it</b> pane and then clicking <b>Edit</b>.\n\n- An access token and the client ID. Both are sent with every request. You \n  can create a token through the [Content Hub\n  interface](https://doc.sitecore.com/ch/en/users/content-hub/create-an-oauth-client.html) \n  or by [requesting one to the API\n  itself](https://doc.sitecore.com/ch/en/developers/cloud-dev/oauth-tokens.html#grant-flows).\n",
    "version": "v1.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": "Status",
      "description": "The status endpoint is used to retrieve information about the health and status of the system."
    }
  ],
  "paths": {
    "/api/status": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve overall system status",
        "description": "Retrieves a summary of Content Hub system health, including minimal aggregated service status and links to detailed status resources. You do not need to authenticate to use this endpoint.",
        "operationId": "Status",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/StatusInfoResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusInfoResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusInfoResource"
                }
              }
            }
          },
          "400": {
            "description": "Request not valid"
          }
        }
      }
    },
    "/api/status/messages/{id}": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status for a specific message using its ID",
        "description": "Retrieves detailed status information for a message, including the channel, creation time, priority, type, payload, and processing statuses. {% admonition type=\"info\" name=\"Note\" %} To use this endpoint, you must have the `MonitorSystemStatus` [privilege](https://doc.sitecore.com/ch/en/users/content-hub/privileges.html). {% /admonition %}",
        "operationId": "MessageDetail",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique ID of the message, for example, `12345`.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/MessageDetailResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageDetailResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageDetailResource"
                }
              }
            }
          },
          "400": {
            "description": "Request not valid"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Message not found"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/queues/{queueName}/{status}": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status of messages in a queue",
        "description": "Lists messages for a specific queue and status, including links for paging and message details.",
        "operationId": "QueueDetail",
        "parameters": [
          {
            "name": "queueName",
            "in": "path",
            "description": "The name of the queue, for example, `default`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "path",
            "description": "The status of messages to retrieve, for example, `in`, `wip`, `complete`, and `deadletter`.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "The number of records to skip before retrieving results, for example, `0`.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "The number of records to retrieve, for example: `25`. The maximum number that can be retrieved is 100.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/QueueDetailResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueueDetailResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueueDetailResource"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters"
          },
          "401": {
            "description": "Unauthorized request"
          },
          "404": {
            "description": "Queue not found"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/queues": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve status information for all message queues",
        "description": "Lists status information for all message queues, including statistics and links to detailed queue status resources.",
        "operationId": "Queues",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/QueueCollectionResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueueCollectionResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueueCollectionResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/jobs/{retentionPeriod}": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status of jobs within a specific retention period",
        "description": "Retrieves the status of jobs that occurred within a set time period.",
        "operationId": "JobStatus",
        "parameters": [
          {
            "name": "retentionPeriod",
            "in": "path",
            "description": "The retention period, for example, `30` days.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 30
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/JobStatusCollectionResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobStatusCollectionResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobStatusCollectionResource"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters"
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/system": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the system status",
        "description": "Retrieves status information about the system, including search and data storage statistics. This endpoint is deprecated.  Use the graph, data storage, or search resource endpoints instead.",
        "operationId": "SystemStatus",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/SystemResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SystemResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "deprecated": true,
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/users": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the user status",
        "description": "Retrieves the total user count and related user status information.",
        "operationId": "UsersStatus",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/UsersStatusResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsersStatusResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsersStatusResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/servicestatus": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve a hierarchical view of the system status",
        "description": "Retrieves the current status, message, and downstream service statuses for troubleshooting and diagnostics.",
        "operationId": "ServiceStatus",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceStatusResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceStatusResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceStatusResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/datastorage": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status and statistics for data storage",
        "description": "Retrieves statistics and status information for the data storage layer.",
        "operationId": "DataStorageStatus",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/DataStorageResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataStorageResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataStorageResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/mediastorage": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status and statistics for media storage",
        "description": "Retrieves the status and related statistics for the media storage layer.",
        "operationId": "MediaStorage",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/MediaStorageResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaStorageResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaStorageResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/videoindexing": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve statistics for a specific tenant and time period",
        "description": "Retrieves the total number of seconds spent indexing videos for the specified period. If no dates are provided, the last calendar month is used.",
        "operationId": "VideoIndexing",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "description": "The start date for the calculation, for example: `2024-05-01`.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "The end date for the calculation, for example: `2024-05-31`.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/VideoIndexingDurationResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoIndexingDurationResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoIndexingDurationResource"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters"
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/search": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status and statistics for the search service",
        "description": "Retrieves statistics and health information for the search layer. This is useful for monitoring and diagnostics.",
        "operationId": "SearchStatus",
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResource"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    },
    "/api/status/graph": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Retrieve the status and statistics for the graph service",
        "description": "Retrieves the status and statistics for the graph server and its workers. Use `forceRefresh` to bypass cached data if required.",
        "operationId": "GraphStatus",
        "parameters": [
          {
            "name": "forceRefresh",
            "in": "query",
            "description": "Whether to force a refresh of the graph status information.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful operation",
            "content": {
              "application/json:": {
                "schema": {
                  "$ref": "#/components/schemas/GraphResource"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GraphResource"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GraphResource"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request parameters"
          },
          "401": {
            "description": "Unauthorized request"
          }
        },
        "security": [
          {
            "OAuth2": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "DataStorageResource": {
        "type": "object",
        "properties": {
          "statistics": {
            "type": "object",
            "description": "Statistics of the data storage",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource representing status and statistics for the data storage (excluding media storage)"
      },
      "EntityCopyOptions": {
        "type": "object",
        "description": "Options for copying an entity, including profile and property/relation options.",
        "properties": {
          "copy_profile_identifier": {
            "type": "string",
            "description": "Identifier of a copy profile that could be used for copying an entity.",
            "nullable": true
          },
          "copy_profile_id": {
            "type": "integer",
            "description": "Identifier of a copy profile that could be used for copying an entity.",
            "format": "int64",
            "nullable": true
          },
          "destination_entity_id": {
            "type": "integer",
            "description": "ID of an entity that will be updated by copying values from an original entity.",
            "format": "int64",
            "nullable": true
          },
          "relation_copy_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelationCopyOptions"
            },
            "description": "Relation copy options if copy profile is not specified.",
            "nullable": true
          },
          "property_copy_options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PropertyCopyOptions"
            },
            "description": "Property copy options if copy profile is not specified.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FieldFilterRequestResource": {
        "type": "object",
        "description": "Request resource for filtering fields in queries.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the field to filter.",
            "nullable": true
          },
          "definition": {
            "type": "string",
            "description": "Definition of the field to filter.",
            "nullable": true
          },
          "group_identifier": {
            "type": "string",
            "description": "Identifier for the filter group.",
            "nullable": true
          },
          "operator": {
            "$ref": "#/components/schemas/FilterOperator",
            "description": "Operator to use for filtering."
          },
          "values": {
            "type": "array",
            "items": {},
            "description": "Values to filter by.",
            "nullable": true
          },
          "nested_values": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldFilterRequestResource"
            },
            "description": "Nested filter values for complex filters.",
            "nullable": true
          },
          "hidden": {
            "type": "boolean",
            "description": "Whether the filter is hidden."
          },
          "type": {
            "$ref": "#/components/schemas/RequestedFilterType",
            "description": "The type of filter requested."
          },
          "role": {
            "type": "string",
            "description": "Role associated with the filter.",
            "nullable": true
          },
          "visible": {
            "type": "boolean",
            "description": "Whether the filter is visible."
          },
          "multi_select": {
            "type": "boolean",
            "description": "Whether multiple values can be selected."
          },
          "selection_pool_specs": {
            "$ref": "#/components/schemas/SelectionPoolSpecs",
            "description": "Specifications for the selection pool."
          }
        },
        "additionalProperties": false
      },
      "FilterOperator": {
        "enum": [
          "None",
          "Equals",
          "LessThan",
          "GreaterThan",
          "Between",
          "StartsWith",
          "EndsWith",
          "Contains",
          "FacetEquals",
          "DoesNotContain",
          "DoesNotStartWith",
          "DoesNotEndWith",
          "LessThanOrEquals",
          "GreaterThanOrEquals",
          "DoesNotEqual",
          "AnyOf",
          "AllOf",
          "NoneOf",
          "Missing",
          "Exists",
          "Changed"
        ],
        "type": "string"
      },
      "GraphResource": {
        "type": "object",
        "properties": {
          "status": {
            "type": "object",
            "description": "Status of the graph server, usually taken over from the .",
            "nullable": true
          },
          "statistics": {
            "type": "object",
            "description": "Statistics for the graph server, usually taken over from the graph. API",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource representing status and statistics of the graph server."
      },
      "IndexMappingMetaResource": {
        "type": "object",
        "properties": {
          "main_template_version": {
            "type": "string",
            "nullable": true
          },
          "audit_template_version": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "JobStatusCollectionResource": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobStatusResource"
            },
            "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": {}
      },
      "JobStatusResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int64"
          },
          "condition": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int64",
              "nullable": true
            },
            "nullable": true
          },
          "average_pickup_time_seconds": {
            "type": "integer",
            "description": "Average pickup time of the last hour in seconds.",
            "format": "int32"
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false
      },
      "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": "Whether the contained URI is a template.",
            "default": false
          }
        },
        "additionalProperties": false,
        "description": "Represents a link to a resource."
      },
      "MediaStorageResource": {
        "type": "object",
        "properties": {
          "statistics": {
            "type": "object",
            "description": "Statistics for the media storage.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource representing status and statistics for data storage (excluding media storage)."
      },
      "MessageDetailResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "ID of the message in the messaging system.",
            "format": "int64"
          },
          "channel": {
            "type": "string",
            "description": "Channel this message was published to.",
            "nullable": true
          },
          "created_on": {
            "type": "string",
            "description": "Time the message was created.",
            "format": "date-time"
          },
          "priority": {
            "type": "integer",
            "description": "Priority of the message. The higher the priority, the sooner the consumption on queues supporting the message prioritization.",
            "format": "int64"
          },
          "reference_count": {
            "type": "integer",
            "description": "Number of references of this message in various queues located in the same location as this message. A message with a reference count equal to 0 will be automatically garbage collected after a period of time (depends on the configuration).",
            "format": "int64"
          },
          "type": {
            "type": "string",
            "description": ".NET type of the message content (payload).",
            "nullable": true
          },
          "payload": {
            "type": "object",
            "description": "The message content.",
            "nullable": true
          },
          "statuses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MessageStatus"
            },
            "description": "Collection of message status information on various queues. The actual state of the message in all applicable queues is not part of these statuses.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource representing the message."
      },
      "MessageStatus": {
        "type": "object",
        "properties": {
          "queue": {
            "type": "string",
            "description": "Queue name this status item is associated with.",
            "nullable": true
          },
          "date_of_last_pickup_by_worker": {
            "type": "string",
            "description": "Gets or sets the timestamp indicating the last time the message was picked up by a worker.",
            "format": "date-time",
            "nullable": true
          },
          "current_processing_time": {
            "type": "string",
            "description": "Gets the current processing time, defined as the duration between the current time and the most recent pickup time by a worker.",
            "format": "date-span",
            "nullable": true,
            "readOnly": true
          },
          "waiting_time_to_get_processed": {
            "type": "string",
            "description": "Gets the time the message spent waiting in the queue before being picked up for processing.",
            "format": "date-span",
            "nullable": true,
            "readOnly": true
          },
          "instance_identifier": {
            "type": "string",
            "description": "Instance identifier of the queue subscriber that is consuming the message at the moment.",
            "nullable": true
          },
          "exception": {
            "type": "string",
            "description": "Exception that caused the message to fail on the `Stylelabs.M.Base.Web.Api.Models.MessageStatus.Queue`.",
            "nullable": true
          },
          "data": {
            "type": "string",
            "description": "Optional data attached for given `Stylelabs.M.Base.Web.Api.Models.MessageStatus.Queue` if the message was re-pushed on the queue.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Message status as part of the `Stylelabs.M.Base.Web.Api.Models.Status.MessageDetailResource` that reflects the contents of the messaging message status item."
      },
      "PropertyCopyOptions": {
        "type": "object",
        "properties": {
          "property": {
            "type": "string",
            "description": "Property name.",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "Copy method name.",
            "nullable": true
          },
          "new_value": {
            "type": "string",
            "description": "New value of the property.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueueCollectionResource": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QueueResource"
            },
            "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": {}
      },
      "QueueDetailResource": {
        "type": "object",
        "description": "Resource providing details about messages in a queue, including paging information.",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "List of message links in the queue.",
            "nullable": true
          },
          "total_messages": {
            "type": "integer",
            "format": "int64",
            "description": "Total number of messages in the queue.",
            "nullable": true
          },
          "returned_messages": {
            "type": "integer",
            "format": "int64",
            "description": "Number of messages returned in the current response.",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "description": "Offset of the returned messages.",
            "nullable": true
          },
          "next": {
            "$ref": "#/components/schemas/Link",
            "description": "Link to the next page of results."
          },
          "previous": {
            "$ref": "#/components/schemas/Link",
            "description": "Link to the previous page of results."
          },
          "self": {
            "$ref": "#/components/schemas/Link",
            "description": "Link to this resource."
          }
        },
        "additionalProperties": false
      },
      "QueueResource": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the queue.",
            "nullable": true
          },
          "parentqueuename": {
            "type": "string",
            "description": "Name of the parent queue this queue consumes messages from.",
            "nullable": true
          },
          "in_queue_type": {
            "type": "string",
            "description": "Type of the in-queue of this subscription.",
            "nullable": true
          },
          "pattern": {
            "type": "string",
            "description": "Pattern for message digestion.",
            "nullable": true
          },
          "location": {
            "type": "string",
            "description": "Location of the queue.",
            "nullable": true
          },
          "in": {
            "type": "integer",
            "description": "Number of messages in the <i>in</i> state.",
            "format": "int64"
          },
          "wip": {
            "type": "integer",
            "description": "Number of messages in the <i>wip</i> state.",
            "format": "int64"
          },
          "in_detail": {
            "$ref": "#/components/schemas/Link"
          },
          "wip_detail": {
            "$ref": "#/components/schemas/Link"
          },
          "complete_detail": {
            "$ref": "#/components/schemas/Link"
          },
          "deadletter_detail": {
            "$ref": "#/components/schemas/Link"
          },
          "complete": {
            "type": "integer",
            "description": "Number of messages in the <i>complete</i> state.",
            "format": "int64"
          },
          "deadletter": {
            "type": "integer",
            "description": "Number of messages in the <i>deadletter</i> state.",
            "format": "int64"
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource providing information and statistics of a single messaging queue (subscription)."
      },
      "RelationCopyOptions": {
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "description": "Relation name.",
            "nullable": true
          },
          "method": {
            "type": "string",
            "description": "Copy method name.",
            "nullable": true
          },
          "related_copy_options": {
            "$ref": "#/components/schemas/EntityCopyOptions"
          },
          "new_value": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            },
            "description": "New value of the relation.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RequestedFilterType": {
        "enum": [
          "FieldFilter",
          "InFilter",
          "DynamicFilter",
          "Nested",
          "IdFilter",
          "SelectionPoolFilter"
        ],
        "type": "string"
      },
      "SearchResource": {
        "type": "object",
        "properties": {
          "statistics": {
            "type": "object",
            "description": "Statistics of the search services.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource representing status and statistics of the search services"
      },
      "SelectionPoolSpecs": {
        "type": "object",
        "description": "Specifications for selection pools used in filters.",
        "properties": {
          "pool_id": {
            "type": "integer",
            "format": "int64",
            "description": "The unique identifier of the selection pool."
          },
          "sub_pool_id": {
            "type": "integer",
            "format": "int64",
            "nullable": true,
            "description": "The unique identifier of the sub-pool, if applicable."
          }
        },
        "additionalProperties": false
      },
      "ServiceStatusResource": {
        "type": "object",
        "properties": {
          "service_status_label": {
            "type": "string",
            "description": "Label for Stylelabs.M.Base.Web.Api.Models.Status.ServiceStatusResource.Status",
            "nullable": true,
            "readOnly": true
          },
          "service_status_message": {
            "type": "string",
            "description": "Message describing the `Stylelabs.M.Base.Web.Api.Models.Status.ServiceStatusResource.Status` in more detail.",
            "nullable": true
          },
          "data": {
            "type": "object",
            "description": "Optional additional JSON serializable data for this `Stylelabs.M.Framework.Infrastructure.ServiceStatus`. Defaults to `null`.",
            "nullable": true
          },
          "aggregated_service_status_label": {
            "type": "string",
            "description": "Label for `Stylelabs.M.Base.Web.Api.Models.Status.ServiceStatusResource.AggregatedStatus`.",
            "nullable": true,
            "readOnly": true
          },
          "downstream_services": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/ServiceStatusResource"
            },
            "description": "Optional collection of individual downstream services. This value can be `null`.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Hierarchical service status information."
      },
      "StatusInfoResource": {
        "type": "object",
        "properties": {
          "product_version": {
            "type": "string",
            "nullable": true
          },
          "build_date": {
            "type": "string",
            "nullable": true
          },
          "rollout_date": {
            "type": "string",
            "description": "The date the tenant was last updated. Unlike the build or release date, this property is tenant specific.",
            "format": "date-time",
            "nullable": true
          },
          "hostname": {
            "type": "string",
            "nullable": true
          },
          "region_name": {
            "type": "string",
            "nullable": true
          },
          "aggregated_service_status_label": {
            "type": "string",
            "description": "Label for `Stylelabs.M.Base.Web.Api.Models.Status.StatusInfoResource.AggregatedStatus`.",
            "nullable": true,
            "readOnly": true
          },
          "index_template_versions": {
            "$ref": "#/components/schemas/IndexMappingMetaResource",
            "nullable": true
          },
          "queues": {
            "$ref": "#/components/schemas/Link"
          },
          "jobs": {
            "$ref": "#/components/schemas/Link"
          },
          "users": {
            "$ref": "#/components/schemas/Link"
          },
          "license": {
            "$ref": "#/components/schemas/Link"
          },
          "system": {
            "$ref": "#/components/schemas/Link"
          },
          "error": {
            "$ref": "#/components/schemas/Link"
          },
          "data_storage": {
            "$ref": "#/components/schemas/Link"
          },
          "media_storage": {
            "$ref": "#/components/schemas/Link"
          },
          "search": {
            "$ref": "#/components/schemas/Link"
          },
          "graph": {
            "$ref": "#/components/schemas/Link"
          },
          "service_status": {
            "$ref": "#/components/schemas/Link"
          },
          "version": {
            "$ref": "#/components/schemas/Link"
          },
          "publishing": {
            "$ref": "#/components/schemas/Link"
          },
          "video-indexing-duration": {
            "$ref": "#/components/schemas/Link"
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "The status information as visible for the status controller."
      },
      "SystemResource": {
        "type": "object",
        "properties": {
          "redis": {
            "type": "object",
            "description": "Data storage statistics.",
            "nullable": true
          },
          "elasticsearch": {
            "type": "object",
            "description": "Search statistics.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Obsolete resource agregating statistics of the data storage and search services."
      },
      "UsersStatusResource": {
        "type": "object",
        "properties": {
          "total_user_count": {
            "type": "integer",
            "format": "int64"
          },
          "active_user_count": {
            "type": "integer",
            "format": "int64"
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false
      },
      "VideoIndexingDurationResource": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "The date video indexing is calculated from.",
            "format": "date"
          },
          "to": {
            "type": "string",
            "description": "The date video indexing is calculated to.",
            "format": "date"
          },
          "seconds": {
            "type": "integer",
            "description": "Number of seconds it takes the tenant to index the videos.",
            "format": "int64"
          },
          "message": {
            "type": "string",
            "description": "The message when the calculation fails.",
            "nullable": true
          },
          "self": {
            "$ref": "#/components/schemas/Link"
          }
        },
        "additionalProperties": false,
        "description": "Resource representing the number of seconds spent indexing videos."
      }
    },
    "securitySchemes": {
      "OAuth2": {
        "type": "oauth2",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/oauth/token",
            "scopes": {}
          },
          "authorizationCode": {
            "authorizationUrl": "/oauth/authorize",
            "tokenUrl": "/oauth/token",
            "scopes": {}
          }
        }
      }
    }
  }
}