Stream Chat API icon

Stream Chat API

Connect to Stream Chat API with 1 MCP tools for AI-powered API automation.

COMMUNITYAPI KEY0 INSTALLS
API Docs
OpenAPI Specificationv3.0
{
  "openapi": "3.0.3",
  "servers": [
    {
      "description": "Production",
      "url": "https://chat.stream-io-api.com"
    },
    {
      "description": "Local",
      "url": "http://localhost:{port}",
      "variables": {
        "port": {
          "default": "3030",
          "description": "Server port"
        }
      }
    }
  ],
  "info": {
    "title": "Stream Chat API",
    "version": "v79.19.1",
    "x-origin": [
      {
        "format": "openapi",
        "url": "https://stream-openapi.s3.us-east-1.amazonaws.com/chat/openapi-latest.yaml",
        "version": "3.0"
      }
    ],
    "x-providerName": "stream-io-api.com",
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_apis.guru_assets_images_no-logo.svg"
    }
  },
  "externalDocs": {
    "description": "Stream Chat Documentation",
    "url": "https://getstream.io/chat/docs/"
  },
  "security": [
    {
      "JWT": [],
      "api_key": [],
      "stream-auth-type": []
    },
    {
      "api_key": [],
      "stream-auth-type": []
    }
  ],
  "paths": {
    "/app": {
      "get": {
        "description": "This method returns the application settings",
        "operationId": "GetApp",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetApplicationResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get App Settings",
        "tags": [
          "Settings"
        ],
        "x-stream-docs-page-id": "app_setting_overview"
      },
      "patch": {
        "description": "This method updates one or more application settings",
        "operationId": "UpdateApp",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateAppRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update App Settings",
        "tags": [
          "Settings"
        ],
        "x-stream-docs-page-id": "app_setting_overview",
        "x-stream-server-side": true
      }
    },
    "/blocklists": {
      "get": {
        "description": "Returns all available block lists",
        "operationId": "ListBlockLists",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListBlockListResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List block lists",
        "tags": [
          "Settings",
          "Moderation"
        ],
        "x-stream-docs-page-id": "block_lists",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Creates a new application blocklist, once created the blocklist can be used by any channel type",
        "operationId": "CreateBlockList",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBlockListRequest"
              }
            }
          },
          "description": "Block list",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create block list",
        "tags": [
          "Settings",
          "Moderation"
        ],
        "x-stream-docs-page-id": "block_lists",
        "x-stream-server-side": true
      }
    },
    "/blocklists/{name}": {
      "delete": {
        "description": "Deletes previously created application blocklist",
        "operationId": "DeleteBlockList",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Block list name",
                  "title": "Name",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete block list",
        "tags": [
          "Settings",
          "Moderation"
        ],
        "x-stream-docs-page-id": "block_lists",
        "x-stream-server-side": true
      },
      "get": {
        "description": "Returns block list by given name",
        "operationId": "GetBlockList",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Block list name",
                  "title": "Name",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetBlockListResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get block list",
        "tags": [
          "Settings",
          "Moderation"
        ],
        "x-stream-docs-page-id": "block_lists",
        "x-stream-server-side": true
      },
      "put": {
        "description": "Updates contents of the block list",
        "operationId": "UpdateBlockList",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateBlockListRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update block list",
        "tags": [
          "Settings",
          "Moderation"
        ],
        "x-stream-docs-page-id": "block_lists",
        "x-stream-server-side": true
      }
    },
    "/calls/": {
      "post": {
        "description": "Retrieves the token to join a call",
        "operationId": "GetCallToken__1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCallTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCallTokenResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get Call Token ()",
        "x-stream-docs-page-id": "video",
        "x-stream-permissions": {
          "JoinCall": "To request the call token",
          "ReadChannel": "To read the channel"
        }
      }
    },
    "/calls/{call_id}": {
      "post": {
        "description": "Retrieves the token to join a call",
        "operationId": "GetCallToken_call_id_0",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "call_id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetCallTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCallTokenResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get Call Token (call_id)",
        "x-stream-docs-page-id": "video",
        "x-stream-permissions": {
          "JoinCall": "To request the call token",
          "ReadChannel": "To read the channel"
        }
      }
    },
    "/campaigns": {
      "get": {
        "description": "Query campaigns",
        "operationId": "QueryCampaigns",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryCampaignsRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryCampaignsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query campaigns",
        "tags": [
          "Campaigns"
        ],
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Creates a new campaign",
        "operationId": "CreateCampaign",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCampaignResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/campaigns/{id}": {
      "delete": {
        "description": "Delete a campaign",
        "operationId": "DeleteCampaign",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "recipients"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteCampaignResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      },
      "put": {
        "description": "Update an existing campaign",
        "operationId": "UpdateCampaign",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCampaignResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/campaigns/{id}/resume": {
      "patch": {
        "description": "Resume a stopped campaign",
        "operationId": "ResumeCampaign",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResumeCampaignResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Resume campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/campaigns/{id}/schedule": {
      "patch": {
        "description": "Schedule a campaign",
        "operationId": "ScheduleCampaign",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleCampaignResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Schedule campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/campaigns/{id}/stop": {
      "patch": {
        "description": "Stop a running campaign",
        "operationId": "StopCampaign",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StopCampaignResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Stop campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/campaigns/{id}/test": {
      "post": {
        "description": "Test a campaign",
        "operationId": "TestCampaign",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TestCampaignResponse"
                }
              }
            },
            "description": "Test campaign response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Test campaign",
        "tags": [
          "Campaigns"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/channels": {
      "post": {
        "description": "Query channels with filter query",
        "operationId": "QueryChannels",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "011.002"
                }
              }
            },
            "in": "query",
            "name": "client_id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "011.003"
                }
              }
            },
            "in": "query",
            "name": "connection_id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryChannelsRequest"
              }
            }
          },
          "description": "Query Channels Request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelsResponse"
                }
              }
            },
            "description": "Channels list"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query channels",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "query_channels",
        "x-stream-permissions": {
          "ReadChannel": "To access channels that were requested"
        }
      }
    },
    "/channels/delete": {
      "post": {
        "description": "Allows to delete several channels at once asynchronously",
        "operationId": "DeleteChannels",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteChannelsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteChannelsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Deletes channels asynchronously",
        "tags": [
          "Channels",
          "GDPR"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "channel.deleted": "When a channel is deleted"
        },
        "x-stream-events-v2": {
          "channel.deleted": {
            "description": "When a channel is deleted",
            "schema": {
              "ref": "#/components/schemas/ChannelDeletedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "DeleteChannel": "To delete a channel"
        }
      }
    },
    "/channels/read": {
      "post": {
        "description": "Marks channels as read up to the specific message. If no channels is given, mark all channel as read",
        "operationId": "MarkChannelsRead",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkChannelsReadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarkReadResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Mark channels as read",
        "tags": [
          "Channels",
          "Messages"
        ],
        "x-stream-events": {
          "message.read": "When the channel is marked as read"
        },
        "x-stream-events-v2": {
          "message.read": {
            "description": "When the channel is marked as read",
            "schema": {
              "ref": "#/components/schemas/MessageReadEvent"
            }
          }
        },
        "x-stream-permissions": {
          "ReadChannel": "To mark message read"
        }
      }
    },
    "/channels/{type}/query": {
      "post": {
        "description": "This method creates a channel or returns an existing one with matching attributes",
        "operationId": "GetOrCreateChannel_type_1",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel type",
                  "maxLength": 64,
                  "title": "Type",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "query",
            "name": "client_id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001.003"
                }
              }
            },
            "in": "query",
            "name": "connection_id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChannelGetOrCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelStateResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get or create channel (type)",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "watch_channel",
        "x-stream-events": {
          "channel.created": "If channel is created",
          "member.added": "If member is added",
          "member.removed": "If member is removed",
          "member.updated": "If member is updated",
          "user.watching.start": "If `watch: true`"
        },
        "x-stream-events-v2": {
          "channel.created": {
            "description": "If channel is created",
            "schema": {
              "ref": "#/components/schemas/ChannelCreatedEvent"
            }
          },
          "member.added": {
            "description": "If member is added",
            "schema": {
              "ref": "#/components/schemas/MemberAddedEvent"
            }
          },
          "member.removed": {
            "description": "If member is removed",
            "schema": {
              "ref": "#/components/schemas/MemberRemovedEvent"
            }
          },
          "member.updated": {
            "description": "If member is updated",
            "schema": {
              "ref": "#/components/schemas/MemberUpdatedEvent"
            }
          },
          "user.watching.start": {
            "description": "If `watch: true`",
            "schema": {
              "ref": "#/components/schemas/UserWatchingStartEvent"
            }
          }
        }
      }
    },
    "/channels/{type}/{id}": {
      "delete": {
        "description": "Deletes channel",
        "operationId": "DeleteChannel",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel type to interact with",
                  "title": "Channel type",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel ID to interact with",
                  "title": "Channel ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "boolean",
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "hard_delete"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteChannelResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "channel_delete",
        "x-stream-events": {
          "channel.deleted": "When channel is deleted"
        },
        "x-stream-events-v2": {
          "channel.deleted": {
            "description": "When channel is deleted",
            "schema": {
              "ref": "#/components/schemas/ChannelDeletedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "DeleteChannel": "To delete a channel"
        }
      },
      "patch": {
        "description": "Updates certain fields of the channel",
        "operationId": "UpdateChannelPartial",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateChannelPartialRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateChannelPartialResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Partially update channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "channel_update#partial-update",
        "x-stream-events": {
          "channel.updated": "When channel is updated"
        },
        "x-stream-events-v2": {
          "channel.updated": {
            "description": "When channel is updated",
            "schema": {
              "ref": "#/components/schemas/ChannelUpdatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "UpdateChannel": "To update channel data",
          "UpdateChannelCooldown": "To update channel cooldown (slowmode)",
          "UpdateChannelFrozen": "To freeze or unfreeze a channel"
        }
      },
      "post": {
        "description": "Change channel data",
        "operationId": "UpdateChannel",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "013.002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "013.002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateChannelRequest"
              }
            }
          },
          "description": "Channel update request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateChannelResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "channel_update",
        "x-stream-events": {
          "channel.updated": "When channel is successfully updated",
          "member.added": "When new channel member is added",
          "member.removed": "When new channel member is removed",
          "member.updated": "When new channel member is updated",
          "message.new": "When system `message` is set"
        },
        "x-stream-events-v2": {
          "channel.updated": {
            "description": "When channel is successfully updated",
            "schema": {
              "ref": "#/components/schemas/ChannelUpdatedEvent"
            }
          },
          "member.added": {
            "description": "When new channel member is added",
            "schema": {
              "ref": "#/components/schemas/MemberAddedEvent"
            }
          },
          "member.removed": {
            "description": "When new channel member is removed",
            "schema": {
              "ref": "#/components/schemas/MemberRemovedEvent"
            }
          },
          "member.updated": {
            "description": "When new channel member is updated",
            "schema": {
              "ref": "#/components/schemas/MemberUpdatedEvent"
            }
          },
          "message.new": {
            "description": "When system `message` is set",
            "schema": {
              "ref": "#/components/schemas/MessageNewEvent"
            }
          }
        },
        "x-stream-permissions": {
          "AddOwnChannelMembership": "To add own channel membership (join a channel)",
          "RemoveOwnChannelMembership": "To remove own channel membership (leave a channel)",
          "UpdateChannel": "To update channel data",
          "UpdateChannelCooldown": "To update channel cooldown (slowmode)",
          "UpdateChannelFrozen": "To freeze or unfreeze a channel",
          "UpdateChannelMembers": "To add, remove or modify channel members"
        }
      }
    },
    "/channels/{type}/{id}/call": {
      "post": {
        "description": "Creates a call",
        "operationId": "CreateCall",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCallRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCallResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create a call",
        "x-stream-docs-page-id": "video",
        "x-stream-permissions": {
          "CreateCall": "To create a call",
          "ReadChannel": "To read the channel"
        }
      }
    },
    "/channels/{type}/{id}/event": {
      "post": {
        "description": "Sends event to the channel",
        "operationId": "SendEvent",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel type to interact with",
                  "title": "Channel type",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel ID to interact with",
                  "title": "Channel ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Send event",
        "tags": [
          "Events"
        ],
        "x-stream-docs-page-id": "event_object",
        "x-stream-events": {
          "any": "Any event could be sent through this endpoint"
        },
        "x-stream-events-v2": {
          "any": {
            "description": "Any event could be sent through this endpoint",
            "schema": {
              "ref": "#/components/schemas/AnyEvent"
            }
          }
        },
        "x-stream-permissions": {
          "SendCustomEvent": "To send custom events"
        }
      }
    },
    "/channels/{type}/{id}/file": {
      "delete": {
        "description": "Deletes previously uploaded file",
        "operationId": "DeleteFile",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "File URL to delete",
                  "title": "URL",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "url"
          },
          {
            "description": "Automatically added",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Automatically added",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete file",
        "tags": [
          "Messages",
          "Files"
        ],
        "x-stream-docs-page-id": "file_uploads",
        "x-stream-permissions": {
          "DeleteAttachment": "To delete a file"
        }
      },
      "post": {
        "description": "Uploads file",
        "operationId": "UploadFile",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/FileUploadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileUploadResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Upload file",
        "tags": [
          "Messages",
          "Files"
        ],
        "x-stream-docs-page-id": "file_uploads",
        "x-stream-permissions": {
          "UploadAttachment": "To upload a file"
        }
      }
    },
    "/channels/{type}/{id}/hide": {
      "post": {
        "description": "Marks channel as hidden for current user",
        "operationId": "HideChannel",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HideChannelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HideChannelResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Hide channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "channel_delete#hiding-a-channel",
        "x-stream-events": {
          "channel.hidden": "When channel is hidden"
        },
        "x-stream-events-v2": {
          "channel.hidden": {
            "description": "When channel is hidden",
            "schema": {
              "ref": "#/components/schemas/ChannelHiddenEvent"
            }
          }
        },
        "x-stream-permissions": {
          "ReadChannel": "To hide specified channel"
        }
      }
    },
    "/channels/{type}/{id}/image": {
      "delete": {
        "description": "Deletes previously uploaded image",
        "operationId": "DeleteImage",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "File URL to delete",
                  "title": "URL",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "url"
          },
          {
            "description": "Automatically added",
            "in": "path",
            "name": "type",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Automatically added",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileDeleteResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete image",
        "tags": [
          "Messages",
          "Files"
        ],
        "x-stream-docs-page-id": "file_uploads",
        "x-stream-permissions": {
          "DeleteAttachment": "To delete an image"
        }
      },
      "post": {
        "description": "Uploads image",
        "operationId": "UploadImage",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/ImageUploadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageUploadResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Upload image",
        "tags": [
          "Messages",
          "Files"
        ],
        "x-stream-docs-page-id": "file_uploads",
        "x-stream-permissions": {
          "UploadAttachment": "To upload an image"
        }
      }
    },
    "/channels/{type}/{id}/message": {
      "post": {
        "description": "Sends new message to the specified channel",
        "operationId": "SendMessage",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "006.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "006.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageRequest"
              }
            }
          },
          "description": "Send Message Request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageWithPendingMetadataResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Send new message",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "send_message",
        "x-stream-events": {
          "message.new": "When the message was successfully sent",
          "message.updated": "Parent message gets this event in case the message had been sent to a thread"
        },
        "x-stream-events-v2": {
          "message.new": {
            "description": "When the message was successfully sent",
            "schema": {
              "ref": "#/components/schemas/MessageNewEvent"
            }
          },
          "message.updated": {
            "description": "Parent message gets this event in case the message had been sent to a thread",
            "schema": {
              "ref": "#/components/schemas/MessageUpdatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "AddLinks": "To send message with URLs",
          "CreateMessage": "To send a message",
          "PinMessage": "To send pinned message",
          "SkipChannelCooldown": "To bypass channel slow mode",
          "SkipMessageModeration": "To bypass automatic message moderation",
          "UseFrozenChannel": "To send a message to frozen channel"
        }
      }
    },
    "/channels/{type}/{id}/messages": {
      "get": {
        "description": "Returns list messages found by IDs",
        "operationId": "GetManyMessages",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "List of comma-separated IDs",
                  "items": {
                    "type": "string"
                  },
                  "maximum": 50,
                  "minimum": 1,
                  "title": "IDs",
                  "type": "array",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "ids"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetManyMessagesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get many messages",
        "tags": [
          "Messages"
        ],
        "x-stream-permissions": {
          "ReadChannel": "To read specified messages"
        }
      }
    },
    "/channels/{type}/{id}/query": {
      "post": {
        "description": "This method creates a channel or returns an existing one with matching attributes",
        "operationId": "GetOrCreateChannel_type_id_0",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel type",
                  "maxLength": 64,
                  "title": "Type",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel ID",
                  "maxLength": 64,
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "003"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "query",
            "name": "client_id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001.003"
                }
              }
            },
            "in": "query",
            "name": "connection_id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChannelGetOrCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelStateResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get or create channel (type, id)",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "watch_channel",
        "x-stream-events": {
          "channel.created": "If channel is created",
          "member.added": "If member is added",
          "member.removed": "If member is removed",
          "member.updated": "If member is updated",
          "user.watching.start": "If `watch: true`"
        },
        "x-stream-events-v2": {
          "channel.created": {
            "description": "If channel is created",
            "schema": {
              "ref": "#/components/schemas/ChannelCreatedEvent"
            }
          },
          "member.added": {
            "description": "If member is added",
            "schema": {
              "ref": "#/components/schemas/MemberAddedEvent"
            }
          },
          "member.removed": {
            "description": "If member is removed",
            "schema": {
              "ref": "#/components/schemas/MemberRemovedEvent"
            }
          },
          "member.updated": {
            "description": "If member is updated",
            "schema": {
              "ref": "#/components/schemas/MemberUpdatedEvent"
            }
          },
          "user.watching.start": {
            "description": "If `watch: true`",
            "schema": {
              "ref": "#/components/schemas/UserWatchingStartEvent"
            }
          }
        }
      }
    },
    "/channels/{type}/{id}/read": {
      "post": {
        "description": "Marks channel as read up to the specific message",
        "operationId": "MarkRead",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkReadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarkReadResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Mark read",
        "tags": [
          "Channels",
          "Messages"
        ],
        "x-stream-events": {
          "message.read": "When the channel is marked as read"
        },
        "x-stream-events-v2": {
          "message.read": {
            "description": "When the channel is marked as read",
            "schema": {
              "ref": "#/components/schemas/MessageReadEvent"
            }
          }
        },
        "x-stream-permissions": {
          "ReadChannel": "To mark message read"
        }
      }
    },
    "/channels/{type}/{id}/show": {
      "post": {
        "description": "Shows previously hidden channel",
        "operationId": "ShowChannel",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ShowChannelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowChannelResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Show channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "channel_delete#hiding-a-channel",
        "x-stream-events": {
          "channel.visible": "When channel is shown"
        },
        "x-stream-events-v2": {
          "channel.visible": {
            "description": "When channel is shown",
            "schema": {
              "ref": "#/components/schemas/ChannelVisibleEvent"
            }
          }
        }
      }
    },
    "/channels/{type}/{id}/stop-watching": {
      "post": {
        "description": "Call this method to stop receiving channel events",
        "operationId": "StopWatchingChannel",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "query",
            "name": "client_id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001.003"
                }
              }
            },
            "in": "query",
            "name": "connection_id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChannelStopWatchingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StopWatchingResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Stop watching channel",
        "tags": [
          "Channels"
        ],
        "x-stream-events": {
          "user.watching.stop": "When successfully stopped watching"
        },
        "x-stream-events-v2": {
          "user.watching.stop": {
            "description": "When successfully stopped watching",
            "schema": {
              "ref": "#/components/schemas/UserWatchingStopEvent"
            }
          }
        }
      }
    },
    "/channels/{type}/{id}/truncate": {
      "post": {
        "description": "Truncates channel",
        "operationId": "TruncateChannel",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TruncateChannelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TruncateChannelResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Truncate channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "truncate_channel",
        "x-stream-events": {
          "channel.truncated": "When channel is truncated"
        },
        "x-stream-events-v2": {
          "channel.truncated": {
            "description": "When channel is truncated",
            "schema": {
              "ref": "#/components/schemas/ChannelTruncatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "DeleteChannel": "To truncate a channel if TruncateChannel is not allowed or hard_delete is requested",
          "TruncateChannel": "To truncate a channel if DeleteChannel is not allowed"
        }
      }
    },
    "/channels/{type}/{id}/unread": {
      "post": {
        "description": "Marks channel as unread from a specific message",
        "operationId": "MarkUnread",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.002"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MarkUnreadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Mark unread",
        "tags": [
          "Channels",
          "Messages"
        ],
        "x-stream-permissions": {
          "ReadChannel": "To mark messages unread"
        }
      }
    },
    "/channeltypes": {
      "get": {
        "description": "Lists all available channel types",
        "operationId": "ListChannelTypes",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListChannelTypesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List channel types",
        "tags": [
          "Settings",
          "Channel types"
        ],
        "x-stream-docs-page-id": "channel_features",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Creates new channel type",
        "operationId": "CreateChannelType",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateChannelTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateChannelTypeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create channel type",
        "tags": [
          "Settings",
          "Channel types"
        ],
        "x-stream-docs-page-id": "channel_features",
        "x-stream-server-side": true
      }
    },
    "/channeltypes/{name}": {
      "delete": {
        "description": "Deletes channel type",
        "operationId": "DeleteChannelType",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel type name",
                  "title": "Name",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete channel type",
        "tags": [
          "Settings",
          "Channel types"
        ],
        "x-stream-docs-page-id": "channel_features",
        "x-stream-server-side": true
      },
      "get": {
        "description": "Gets channel type",
        "operationId": "GetChannelType",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Channel type name",
                  "title": "Name",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get channel type",
        "tags": [
          "Settings",
          "Channel types"
        ],
        "x-stream-docs-page-id": "channel_features",
        "x-stream-server-side": true
      },
      "put": {
        "description": "Updates channel type",
        "operationId": "UpdateChannelType",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateChannelTypeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateChannelTypeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update channel type",
        "tags": [
          "Settings",
          "Channel types"
        ],
        "x-stream-docs-page-id": "channel_features",
        "x-stream-server-side": true
      }
    },
    "/check_push": {
      "post": {
        "description": "Sends a test message via push, this is a test endpoint to verify your push settings",
        "operationId": "CheckPush",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckPushRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckPushResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Check push",
        "tags": [
          "Settings",
          "Testing"
        ],
        "x-stream-docs-page-id": "push_test",
        "x-stream-server-side": true
      }
    },
    "/check_sqs": {
      "post": {
        "description": "Validates Amazon SQS credentials",
        "operationId": "CheckSQS",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckSQSRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckSQSResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Check SQS",
        "tags": [
          "Settings",
          "Testing"
        ],
        "x-stream-docs-page-id": "sqs",
        "x-stream-server-side": true
      }
    },
    "/commands": {
      "get": {
        "description": "Returns all custom commands",
        "operationId": "ListCommands",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCommandsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List commands",
        "tags": [
          "Custom commands"
        ],
        "x-stream-docs-page-id": "custom_commands_webhook",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Creates custom chat command",
        "operationId": "CreateCommand",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommandRequest"
              }
            }
          },
          "description": "Command",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCommandResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create command",
        "tags": [
          "Custom commands"
        ],
        "x-stream-docs-page-id": "custom_commands_webhook",
        "x-stream-server-side": true
      }
    },
    "/commands/{name}": {
      "delete": {
        "description": "Deletes custom chat command",
        "operationId": "DeleteCommand",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteCommandResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete command",
        "tags": [
          "Custom commands"
        ],
        "x-stream-docs-page-id": "custom_commands_webhook",
        "x-stream-server-side": true
      },
      "get": {
        "description": "Returns custom command by its name",
        "operationId": "GetCommand",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCommandResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get command",
        "tags": [
          "Custom commands"
        ],
        "x-stream-docs-page-id": "custom_commands_webhook",
        "x-stream-server-side": true
      },
      "put": {
        "description": "Updates custom chat command",
        "operationId": "UpdateCommand",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Unique command name",
                  "title": "Name",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCommandRequest"
              }
            }
          },
          "description": "Command",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateCommandResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update command",
        "tags": [
          "Custom commands"
        ],
        "x-stream-docs-page-id": "custom_commands_webhook",
        "x-stream-server-side": true
      }
    },
    "/connect": {
      "get": {
        "description": "Establishes WebSocket connection for user",
        "operationId": "Connect",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "json"
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Connect (WebSocket)",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "init_and_users",
        "x-stream-events": {
          "user.updated": "When user is created or updated"
        },
        "x-stream-events-v2": {
          "user.updated": {
            "description": "When user is created or updated",
            "schema": {
              "ref": "#/components/schemas/UserUpdatedEvent"
            }
          }
        }
      }
    },
    "/devices": {
      "delete": {
        "description": "Deletes device",
        "operationId": "DeleteDevice",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Device ID to delete",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "**Server-side only**. User ID which server acts upon",
                  "title": "User ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "user_id"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete device",
        "tags": [
          "Devices"
        ],
        "x-stream-docs-page-id": "push_devices"
      },
      "get": {
        "description": "Returns all available devices",
        "operationId": "ListDevices",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "**Server-side only**. User ID which server acts upon",
                  "title": "User ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "user_id"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDevicesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List devices",
        "tags": [
          "Devices"
        ],
        "x-stream-docs-page-id": "push_devices"
      },
      "post": {
        "description": "Adds a new device to a user, if the same device already exists the call will have no effect",
        "operationId": "CreateDevice",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDeviceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create device",
        "tags": [
          "Devices",
          "Push"
        ],
        "x-stream-docs-page-id": "push_devices"
      }
    },
    "/export/users": {
      "post": {
        "description": "Exports user profile, reactions and messages for list of given users",
        "operationId": "ExportUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportUsersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Export users",
        "tags": [
          "Users"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "gdpr",
        "x-stream-server-side": true
      }
    },
    "/export_channels": {
      "post": {
        "description": "Exports channel data to JSON file",
        "operationId": "ExportChannels",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExportChannelsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportChannelsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Export channels",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "exporting_channels",
        "x-stream-server-side": true
      }
    },
    "/export_channels/{id}": {
      "get": {
        "operationId": "GetExportChannelsStatus",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task ID",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetExportChannelsStatusResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Export channels status",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "exporting_channels",
        "x-stream-server-side": true
      }
    },
    "/guest": {
      "post": {
        "description": "Creates guest user",
        "operationId": "CreateGuest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuestResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create guest",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "guest_users"
      }
    },
    "/import_urls": {
      "post": {
        "description": "Creates a new import URL",
        "operationId": "CreateImportURL",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateImportURLRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateImportURLResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create import URL",
        "tags": [
          "Imports"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "imports",
        "x-stream-server-side": true
      }
    },
    "/imports": {
      "get": {
        "description": "Gets an import",
        "operationId": "ListImports",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListImportsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get import",
        "tags": [
          "Imports"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "imports",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Creates a new import",
        "operationId": "CreateImport",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateImportRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateImportResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create import",
        "tags": [
          "Imports"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "imports",
        "x-stream-server-side": true
      }
    },
    "/imports/{id}": {
      "get": {
        "description": "Gets an import",
        "operationId": "GetImport",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetImportResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get import",
        "tags": [
          "Imports"
        ],
        "x-stream-beta": true,
        "x-stream-docs-page-id": "imports",
        "x-stream-server-side": true
      }
    },
    "/longpoll": {
      "get": {
        "description": "WebSocket fallback transport endpoint",
        "operationId": "LongPoll",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConnectRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "json"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "maxLength": 36,
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "connection_id"
          }
        ],
        "responses": {
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Long Poll (Transport)",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "init_and_users",
        "x-stream-events": {
          "user.updated": "When user is created or updated"
        },
        "x-stream-events-v2": {
          "user.updated": {
            "description": "When user is created or updated",
            "schema": {
              "ref": "#/components/schemas/UserUpdatedEvent"
            }
          }
        }
      }
    },
    "/members": {
      "get": {
        "description": "Find and filter channel members",
        "operationId": "QueryMembers",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryMembersRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MembersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query members",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "query_members",
        "x-stream-permissions": {
          "ReadChannel": "To read members of specified channel"
        }
      }
    },
    "/messages/{id}": {
      "delete": {
        "description": "Deletes message",
        "operationId": "DeleteMessage",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Message ID to delete",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete all message reactions and replies as well",
                  "title": "Hard",
                  "type": "boolean",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "hard"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete message",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "send_message#delete-a-message",
        "x-stream-events": {
          "message.deleted": "When message is deleted"
        },
        "x-stream-events-v2": {
          "message.deleted": {
            "description": "When message is deleted",
            "schema": {
              "ref": "#/components/schemas/MessageDeletedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "DeleteMessage": "To delete a message"
        }
      },
      "get": {
        "description": "Returns message by ID",
        "operationId": "GetMessage",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Message ID",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageWithPendingMetadataResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get message",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "send_message#get-a-message",
        "x-stream-permissions": {
          "ReadChannel": "To read specified message"
        }
      },
      "post": {
        "description": "Updates message with new data",
        "operationId": "UpdateMessage",
        "parameters": [
          {
            "description": "Automatically added",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMessageRequest"
              }
            }
          },
          "description": "Update Message Request",
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update message",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "send_message#update-a-message",
        "x-stream-events": {
          "message.updated": "When message is updated"
        },
        "x-stream-events-v2": {
          "message.updated": {
            "description": "When message is updated",
            "schema": {
              "ref": "#/components/schemas/MessageUpdatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "AddLinks": "To add URLs to a message",
          "PinMessage": "To pin a message",
          "SkipMessageModeration": "To bypass automatic message moderation",
          "UpdateMessage": "To update message text or other data"
        }
      },
      "put": {
        "description": "Updates certain fields of the message",
        "operationId": "UpdateMessagePartial",
        "parameters": [
          {
            "description": "Automatically added",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMessagePartialRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Partially message update",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "send_message#partial-update",
        "x-stream-events": {
          "message.updated": "When message is updated"
        },
        "x-stream-events-v2": {
          "message.updated": {
            "description": "When message is updated",
            "schema": {
              "ref": "#/components/schemas/MessageUpdatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "AddLinks": "To add URLs to a message",
          "PinMessage": "To pin a message",
          "SkipMessageModeration": "To bypass automatic message moderation",
          "UpdateMessage": "To update message text or other data"
        }
      }
    },
    "/messages/{id}/action": {
      "post": {
        "description": "Executes message command action with given parameters",
        "operationId": "RunMessageAction",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Message ID",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageActionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Run message command action",
        "tags": [
          "Messages"
        ],
        "x-stream-events": {
          "message.new": "When messages became visible after command execution"
        },
        "x-stream-events-v2": {
          "message.new": {
            "description": "When messages became visible after command execution",
            "schema": {
              "ref": "#/components/schemas/MessageNewEvent"
            }
          }
        },
        "x-stream-permissions": {
          "RunMessageAction": "To execute action on specified message"
        }
      }
    },
    "/messages/{id}/commit": {
      "post": {
        "description": "Commits a pending message, which will make it visible in the channel",
        "operationId": "CommitMessage",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Commit message",
        "x-stream-events": {
          "message.new": "When the message was successfully sent",
          "message.updated": "Parent message gets this event in case the message had been sent to a thread"
        },
        "x-stream-events-v2": {
          "message.new": {
            "description": "When the message was successfully sent",
            "schema": {
              "ref": "#/components/schemas/MessageNewEvent"
            }
          },
          "message.updated": {
            "description": "Parent message gets this event in case the message had been sent to a thread",
            "schema": {
              "ref": "#/components/schemas/MessageUpdatedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/messages/{id}/reaction": {
      "post": {
        "description": "Sends reaction to specified message",
        "operationId": "SendReaction",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Message ID to send reaction for",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendReactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReactionResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Send reaction",
        "tags": [
          "Messages",
          "Reactions"
        ],
        "x-stream-docs-page-id": "send_reaction",
        "x-stream-events": {
          "reaction.new": "When new reaction is created",
          "reaction.updated": "When reaction is updated"
        },
        "x-stream-events-v2": {
          "reaction.new": {
            "description": "When new reaction is created",
            "schema": {
              "ref": "#/components/schemas/ReactionNewEvent"
            }
          },
          "reaction.updated": {
            "description": "When reaction is updated",
            "schema": {
              "ref": "#/components/schemas/ReactionUpdatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "CreateReaction": "To send a reaction",
          "UseFrozenChannel": "To send a message to frozen channel"
        }
      }
    },
    "/messages/{id}/reaction/{type}": {
      "delete": {
        "description": "Removes user reaction from the message",
        "operationId": "DeleteReaction",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Message ID to remove reaction from",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Reaction type to remove",
                  "title": "Type",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "**Server-side only**. User ID which server acts upon",
                  "title": "User ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "003"
                }
              }
            },
            "in": "query",
            "name": "user_id"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReactionRemovalResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete reaction",
        "tags": [
          "Messages",
          "Reactions"
        ],
        "x-stream-docs-page-id": "send_reaction",
        "x-stream-events": {
          "reaction.deleted": "When reaction is deleted"
        },
        "x-stream-events-v2": {
          "reaction.deleted": {
            "description": "When reaction is deleted",
            "schema": {
              "ref": "#/components/schemas/ReactionDeletedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "DeleteReaction": "To delete a reaction"
        }
      }
    },
    "/messages/{id}/reactions": {
      "get": {
        "description": "Returns list of reactions of specific message",
        "operationId": "GetReactions",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Message ID",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Number of records to return",
                  "title": "Limit",
                  "type": "number",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "limit"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Number of records to offset",
                  "title": "Offset",
                  "type": "number",
                  "writeOnly": true,
                  "x-stream-index": "003"
                }
              }
            },
            "in": "query",
            "name": "offset"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetReactionsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get reactions",
        "tags": [
          "Messages",
          "Reactions"
        ],
        "x-stream-docs-page-id": "send_reaction",
        "x-stream-permissions": {
          "ReadChannel": "To read specified reactions"
        }
      }
    },
    "/messages/{id}/translate": {
      "post": {
        "description": "Translates message to a given language using automated translation software",
        "operationId": "TranslateMessage",
        "parameters": [
          {
            "description": "Automatically added",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranslateMessageRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Translate message",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "translation",
        "x-stream-events": {
          "message.updated": "When event is updated with translation data"
        },
        "x-stream-events-v2": {
          "message.updated": {
            "description": "When event is updated with translation data",
            "schema": {
              "ref": "#/components/schemas/MessageUpdatedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "ReadChannel": "To access channel of specified message"
        }
      }
    },
    "/messages/{parent_id}/replies": {
      "get": {
        "description": "Returns replies (thread) of the message",
        "operationId": "GetReplies",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "ID of a message which replies to return",
                  "title": "Parent ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "parent_id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "002.001.003"
                }
              }
            },
            "in": "query",
            "name": "id_gte"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "002.001.004"
                }
              }
            },
            "in": "query",
            "name": "id_gt"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "002.001.005"
                }
              }
            },
            "in": "query",
            "name": "id_lte"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "002.001.006"
                }
              }
            },
            "in": "query",
            "name": "id_lt"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "format": "date-time",
                  "type": "string",
                  "x-stream-index": "002.001.007"
                }
              }
            },
            "in": "query",
            "name": "created_at_after_or_equal"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "format": "date-time",
                  "type": "string",
                  "x-stream-index": "002.001.008"
                }
              }
            },
            "in": "query",
            "name": "created_at_after"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "format": "date-time",
                  "type": "string",
                  "x-stream-index": "002.001.009"
                }
              }
            },
            "in": "query",
            "name": "created_at_before_or_equal"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "format": "date-time",
                  "type": "string",
                  "x-stream-index": "002.001.010"
                }
              }
            },
            "in": "query",
            "name": "created_at_before"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "002.001.011"
                }
              }
            },
            "in": "query",
            "name": "id_around"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "format": "date-time",
                  "type": "string",
                  "x-stream-index": "002.001.012"
                }
              }
            },
            "in": "query",
            "name": "created_at_around"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRepliesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get replies",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "threads",
        "x-stream-permissions": {
          "ReadChannel": "To read replies of specified message"
        }
      }
    },
    "/moderation/ban": {
      "delete": {
        "description": "Removes previously applied ban",
        "operationId": "Unban",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "target_user_id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "type"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "003"
                }
              }
            },
            "in": "query",
            "name": "id"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Unban user",
        "tags": [
          "Users",
          "Moderation"
        ],
        "x-stream-docs-page-id": "moderation#ban",
        "x-stream-events": {
          "user.unbanned": "When user is unbanned"
        },
        "x-stream-events-v2": {
          "user.unbanned": {
            "description": "When user is unbanned",
            "schema": {
              "ref": "#/components/schemas/UserUnbannedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "BanChannelMember": "To unban channel member",
          "BanUser": "To unban a user"
        }
      },
      "post": {
        "description": "Restricts user activity either in specific channel or globally",
        "operationId": "Ban",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Ban user",
        "tags": [
          "Users",
          "Moderation"
        ],
        "x-stream-docs-page-id": "moderation#ban",
        "x-stream-events": {
          "user.banned": "When user is banned"
        },
        "x-stream-events-v2": {
          "user.banned": {
            "description": "When user is banned",
            "schema": {
              "ref": "#/components/schemas/UserBannedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "BanChannelMember": "To ban channel member",
          "BanUser": "To ban a user"
        }
      }
    },
    "/moderation/flag": {
      "post": {
        "description": "Reports message or user for review by moderators",
        "operationId": "Flag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlagResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Flag",
        "tags": [
          "Moderation",
          "Messages",
          "Users"
        ],
        "x-stream-docs-page-id": "moderation#flag",
        "x-stream-events": {
          "message.flagged": "When message is flagged",
          "user.flagged": "When user is flagged"
        },
        "x-stream-events-v2": {
          "message.flagged": {
            "description": "When message is flagged",
            "schema": {
              "ref": "#/components/schemas/MessageFlaggedEvent"
            }
          },
          "user.flagged": {
            "description": "When user is flagged",
            "schema": {
              "ref": "#/components/schemas/UserFlaggedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "FlagMessage": "To flag a message",
          "FlagUser": "To flag a user"
        }
      }
    },
    "/moderation/flags/message": {
      "get": {
        "description": "Find and filter message flags",
        "operationId": "QueryMessageFlags",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryMessageFlagsRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryMessageFlagsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query Message Flags",
        "tags": [
          "Messages",
          "Moderation"
        ],
        "x-stream-docs-page-id": "moderation#query-message-flags",
        "x-stream-permissions": {
          "ReadMessageFlags": "To read flagged messages"
        }
      }
    },
    "/moderation/mute": {
      "post": {
        "description": "Mutes one or several users",
        "operationId": "MuteUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MuteUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MuteUserResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Mute user",
        "tags": [
          "Users",
          "Moderation"
        ],
        "x-stream-docs-page-id": "moderation#mutes",
        "x-stream-events": {
          "user.muted": "When user is muted"
        },
        "x-stream-events-v2": {
          "user.muted": {
            "description": "When user is muted",
            "schema": {
              "ref": "#/components/schemas/UserMutedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "MuteUser": "To mute a user"
        }
      }
    },
    "/moderation/mute/channel": {
      "post": {
        "description": "Mutes channel for user",
        "operationId": "MuteChannel",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MuteChannelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MuteChannelResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Mute channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "muting_channels",
        "x-stream-events": {
          "channel.muted": "When channel is muted"
        },
        "x-stream-events-v2": {
          "channel.muted": {
            "description": "When channel is muted",
            "schema": {
              "ref": "#/components/schemas/ChannelMutedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "MuteChannel": "To mute a channel"
        }
      }
    },
    "/moderation/unflag": {
      "post": {
        "description": "Removes previously created user or message flag",
        "operationId": "Unflag",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FlagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FlagResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Unflag",
        "tags": [
          "Moderation",
          "Messages",
          "Users"
        ],
        "x-stream-deprecated": true,
        "x-stream-docs-page-id": "moderation#flag",
        "x-stream-permissions": {
          "FlagMessage": "To remove message flag",
          "FlagUser": "To remove user flag"
        }
      }
    },
    "/moderation/unmute": {
      "post": {
        "description": "Unmutes previously muted user",
        "operationId": "UnmuteUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnmuteUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnmuteResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Unmute user",
        "tags": [
          "Users",
          "Moderation"
        ],
        "x-stream-docs-page-id": "moderation#mutes",
        "x-stream-events": {
          "user.unmuted": "When user is unmuted"
        },
        "x-stream-events-v2": {
          "user.unmuted": {
            "description": "When user is unmuted",
            "schema": {
              "ref": "#/components/schemas/UserUnmutedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "MuteUser": "To unmute a user"
        }
      }
    },
    "/moderation/unmute/channel": {
      "post": {
        "description": "Unmutes channel for user",
        "operationId": "UnmuteChannel",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnmuteChannelRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnmuteResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Unmute channel",
        "tags": [
          "Channels"
        ],
        "x-stream-docs-page-id": "muting_channels",
        "x-stream-events": {
          "channel.unmuted": "When channel is unmuted"
        },
        "x-stream-events-v2": {
          "channel.unmuted": {
            "description": "When channel is unmuted",
            "schema": {
              "ref": "#/components/schemas/ChannelUnmutedEvent"
            }
          }
        },
        "x-stream-permissions": {
          "MuteChannel": "To unmute a channel"
        }
      }
    },
    "/og": {
      "get": {
        "description": "Get an OpenGraph attachment for a link",
        "operationId": "GetOG",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "URL to be scraped",
                  "title": "URL",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "url"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetOGResponse"
                }
              }
            },
            "description": "Get OG Attachment"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get OG",
        "tags": [
          "Messages"
        ],
        "x-stream-docs-page-id": "og"
      }
    },
    "/permissions": {
      "get": {
        "description": "Lists all available permissions",
        "operationId": "ListPermissions",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPermissionsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List permissions",
        "tags": [
          "Permissions V2"
        ],
        "x-stream-server-side": true
      }
    },
    "/permissions/{id}": {
      "get": {
        "description": "Gets custom permission",
        "operationId": "GetPermission",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Permission ID",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCustomPermissionResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get permission",
        "tags": [
          "Permissions V2"
        ],
        "x-stream-server-side": true
      }
    },
    "/push_providers": {
      "get": {
        "description": "List details of all push providers.",
        "operationId": "ListPushProviders",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPushProvidersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List push providers",
        "tags": [
          "Push",
          "Settings"
        ],
        "x-stream-docs-page-id": "push",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Upsert a push provider for v2 with multi bundle/package support",
        "operationId": "UpsertPushProvider",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpsertPushProviderRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpsertPushProviderResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Upsert a push provider",
        "tags": [
          "Push",
          "Settings"
        ],
        "x-stream-docs-page-id": "push",
        "x-stream-server-side": true
      }
    },
    "/push_providers/{type}/{name}": {
      "delete": {
        "description": "Delete a push provider from v2 with multi bundle/package support. v1 isn't supported in this endpoint",
        "operationId": "DeletePushProvider",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "enum": [
                    "apn",
                    "firebase",
                    "huawei",
                    "xiaomi"
                  ],
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "type",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "maxLength": 36,
                  "minLength": 1,
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete a push provider",
        "tags": [
          "Push",
          "Settings"
        ],
        "x-stream-docs-page-id": "push",
        "x-stream-server-side": true
      }
    },
    "/query_banned_users": {
      "get": {
        "description": "Find and filter channel scoped or global user bans",
        "operationId": "QueryBannedUsers",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryBannedUsersRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryBannedUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query Banned Users",
        "tags": [
          "Users",
          "Moderation"
        ],
        "x-stream-docs-page-id": "moderation#query-banned-users",
        "x-stream-permissions": {
          "ReadChannel": "To read banned users of specified channels"
        }
      }
    },
    "/rate_limits": {
      "get": {
        "description": "Get rate limits usage and quotas",
        "operationId": "GetRateLimits",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Whether to include server-side platform limits or not",
                  "title": "Server-side",
                  "type": "boolean",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "server_side"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Whether to include Android platform limits or not",
                  "title": "Android",
                  "type": "boolean",
                  "writeOnly": true,
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "android"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Whether to include iOS platform limits or not",
                  "title": "iOS",
                  "type": "boolean",
                  "writeOnly": true,
                  "x-stream-index": "003"
                }
              }
            },
            "in": "query",
            "name": "ios"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Whether to include web platform limits or not",
                  "title": "Web",
                  "type": "boolean",
                  "writeOnly": true,
                  "x-stream-index": "004"
                }
              }
            },
            "in": "query",
            "name": "web"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Specific endpoints to show limits for, as a comma-separated list of values",
                  "title": "Endpoints",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "005"
                }
              }
            },
            "in": "query",
            "name": "endpoints"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRateLimitsResponse"
                }
              }
            },
            "description": "Get Rate Limits Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get rate limits",
        "tags": [
          "Settings"
        ],
        "x-stream-docs-page-id": "rate_limits",
        "x-stream-server-side": true
      }
    },
    "/recipients": {
      "get": {
        "description": "Query recipients",
        "operationId": "QueryRecipients",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryRecipientsRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryRecipientsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query recipients",
        "tags": [
          "Campaigns"
        ],
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/roles": {
      "get": {
        "description": "Lists all available roles",
        "operationId": "ListRoles",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListRolesResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "List roles",
        "tags": [
          "Permissions V2"
        ],
        "x-stream-server-side": true
      },
      "post": {
        "description": "Creates custom role",
        "operationId": "CreateRole",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRoleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateRoleResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create role",
        "tags": [
          "Permissions V2"
        ],
        "x-stream-server-side": true
      }
    },
    "/roles/{name}": {
      "delete": {
        "description": "Deletes custom role",
        "operationId": "DeleteRole",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Role name",
                  "title": "Name",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "name",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete role",
        "tags": [
          "Permissions V2"
        ],
        "x-stream-server-side": true
      }
    },
    "/search": {
      "get": {
        "description": "Search messages across channels",
        "operationId": "Search",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchRequest",
                  "description": "JSON object with search payload",
                  "title": "Payload",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Search messages",
        "tags": [
          "Channels",
          "Messages"
        ],
        "x-stream-docs-page-id": "search",
        "x-stream-permissions": {
          "ReadChannel": "To read channels that were found by search"
        }
      }
    },
    "/segments": {
      "get": {
        "description": "Query segments",
        "operationId": "QuerySegments",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuerySegmentsRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuerySegmentsResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query segments",
        "tags": [
          "Campaigns"
        ],
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      },
      "post": {
        "description": "Create a segment",
        "operationId": "CreateSegment",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateSegmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSegmentResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Create segment",
        "tags": [
          "Campaigns"
        ],
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/segments/{id}": {
      "delete": {
        "description": "Delete a segment",
        "operationId": "DeleteSegment",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteSegmentResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete segment",
        "tags": [
          "Campaigns"
        ],
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      },
      "put": {
        "description": "Update an existing segment",
        "operationId": "UpdateSegment",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "002.001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateSegmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateSegmentResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Update segment",
        "tags": [
          "Campaigns"
        ],
        "x-stream-docs-page-id": "campaigns",
        "x-stream-server-side": true
      }
    },
    "/sync": {
      "post": {
        "description": "Returns all events happened since client disconnect in specified channels",
        "operationId": "Sync",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "If set to true this will add 'inaccessible_cids' to response type",
                  "title": "With inaccessible CIDs",
                  "type": "boolean",
                  "x-stream-index": "003"
                }
              }
            },
            "in": "query",
            "name": "with_inaccessible_cids"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "If set to true this will start watching requested and newly added channels that user has access to. If error occurred with this option enabled and it is not an input error - channels will still be watched.",
                  "title": "Watch synced channels",
                  "type": "boolean",
                  "x-stream-index": "004"
                }
              }
            },
            "in": "query",
            "name": "watch"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "006.002"
                }
              }
            },
            "in": "query",
            "name": "client_id"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "006.003"
                }
              }
            },
            "in": "query",
            "name": "connection_id"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SyncRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SyncResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Sync",
        "tags": [
          "Channels",
          "Events"
        ],
        "x-stream-permissions": {
          "ReadChannel": "To access channels that were requested"
        }
      }
    },
    "/tasks/{id}": {
      "get": {
        "description": "Gets status of a task",
        "operationId": "GetTask",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Task ID",
                  "title": "ID",
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTaskResponse"
                }
              }
            },
            "description": "Get Task Response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Get status of a task",
        "tags": [
          "Tasks"
        ],
        "x-stream-docs-page-id": "tasks",
        "x-stream-server-side": true
      }
    },
    "/users": {
      "get": {
        "description": "Find and filter users",
        "operationId": "QueryUsers",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QueryUsersRequest",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "query",
            "name": "payload"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Query users",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "query_users",
        "x-stream-permissions": {
          "SearchUser": "To search users"
        }
      },
      "patch": {
        "description": "Updates certain fields of the user",
        "operationId": "UpdateUsersPartial",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserPartialRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Partially update user",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "update_users",
        "x-stream-events": {
          "user.presence.changed": "When user visibility changes",
          "user.updated": "When user is updated"
        },
        "x-stream-events-v2": {
          "user.presence.changed": {
            "description": "When user visibility changes",
            "schema": {
              "ref": "#/components/schemas/UserPresenceChangedEvent"
            }
          },
          "user.updated": {
            "description": "When user is updated",
            "schema": {
              "ref": "#/components/schemas/UserUpdatedEvent"
            }
          }
        }
      },
      "post": {
        "description": "Update or create users in bulk",
        "operationId": "UpdateUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUsersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Upsert users",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "update_users",
        "x-stream-events": {
          "user.updated": "When user is updated"
        },
        "x-stream-events-v2": {
          "user.updated": {
            "description": "When user is updated",
            "schema": {
              "ref": "#/components/schemas/UserUpdatedEvent"
            }
          }
        }
      }
    },
    "/users/deactivate": {
      "post": {
        "description": "Deactivate users in batches",
        "operationId": "DeactivateUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeactivateUsersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Deactivate users",
        "tags": [
          "Users",
          "GDPR",
          "Moderation"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "user.deactivated": "When user is deactivated"
        },
        "x-stream-events-v2": {
          "user.deactivated": {
            "description": "When user is deactivated",
            "schema": {
              "ref": "#/components/schemas/UserDeactivatedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/users/delete": {
      "post": {
        "description": "Deletes users and optionally all their belongings asynchronously.",
        "operationId": "DeleteUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteUsersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete Users",
        "tags": [
          "Users",
          "GDPR",
          "Moderation"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "channel.deleted": "When channel is deleted",
          "user.deleted": "When user is deleted"
        },
        "x-stream-events-v2": {
          "channel.deleted": {
            "description": "When channel is deleted",
            "schema": {
              "ref": "#/components/schemas/ChannelDeletedEvent"
            }
          },
          "user.deleted": {
            "description": "When user is deleted",
            "schema": {
              "ref": "#/components/schemas/UserDeletedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/users/reactivate": {
      "post": {
        "description": "Reactivate users in batches",
        "operationId": "ReactivateUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReactivateUsersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReactivateUsersResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Reactivate users",
        "tags": [
          "Users",
          "GDPR",
          "Moderation"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "user.reactivated": "When user is reactivated"
        },
        "x-stream-events-v2": {
          "user.reactivated": {
            "description": "When user is reactivated",
            "schema": {
              "ref": "#/components/schemas/UserReactivatedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/users/restore": {
      "post": {
        "description": "Restore soft deleted users",
        "operationId": "RestoreUsers",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestoreUsersRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Restore users",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "restore_users",
        "x-stream-server-side": true
      }
    },
    "/users/{user_id}": {
      "delete": {
        "description": "Deletes user and optionally all their belongings. The Endpoint is deprecated, please use 'Delete Users' endpoint instead",
        "operationId": "DeleteUser",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "ID of user to delete",
                  "title": "User ID",
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "user_id",
            "required": true
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete user messages",
                  "title": "Mark messages deleted",
                  "type": "boolean",
                  "x-stream-index": "002"
                }
              }
            },
            "in": "query",
            "name": "mark_messages_deleted"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete all user data (messages, reactions, etc.)",
                  "title": "Hard delete",
                  "type": "boolean",
                  "x-stream-index": "003"
                }
              }
            },
            "in": "query",
            "name": "hard_delete"
          },
          {
            "content": {
              "application/json": {
                "schema": {
                  "description": "Delete all one-to-one channels of the user",
                  "title": "Delete conversations",
                  "type": "boolean",
                  "x-stream-index": "004"
                }
              }
            },
            "in": "query",
            "name": "delete_conversation_channels"
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteUserResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Delete user",
        "tags": [
          "Users",
          "GDPR",
          "Moderation"
        ],
        "x-stream-deprecated": true,
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "channel.deleted": "When channel is deleted",
          "message.deleted": "When message is deleted",
          "user.deleted": "When user is deleted"
        },
        "x-stream-events-v2": {
          "channel.deleted": {
            "description": "When channel is deleted",
            "schema": {
              "ref": "#/components/schemas/ChannelDeletedEvent"
            }
          },
          "message.deleted": {
            "description": "When message is deleted",
            "schema": {
              "ref": "#/components/schemas/MessageDeletedEvent"
            }
          },
          "user.deleted": {
            "description": "When user is deleted",
            "schema": {
              "ref": "#/components/schemas/UserDeletedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/users/{user_id}/deactivate": {
      "post": {
        "description": "Deactivates user with possibility to activate it back",
        "operationId": "DeactivateUser",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "title": "User ID",
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "user_id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeactivateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeactivateUserResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Deactivate user",
        "tags": [
          "Users",
          "GDPR",
          "Moderation"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "user.deactivated": "When user is deactivated"
        },
        "x-stream-events-v2": {
          "user.deactivated": {
            "description": "When user is deactivated",
            "schema": {
              "ref": "#/components/schemas/UserDeactivatedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/users/{user_id}/event": {
      "post": {
        "description": "Sends a custom event to a user",
        "operationId": "SendUserCustomEvent",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "writeOnly": true,
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "user_id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendUserCustomEventRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Response"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Send user event",
        "tags": [
          "Events"
        ],
        "x-stream-docs-page-id": "event_object",
        "x-stream-events": {
          "custom": "Only custom event could be sent through this endpoint"
        },
        "x-stream-events-v2": {
          "custom": {
            "description": "Only custom event could be sent through this endpoint",
            "schema": {
              "ref": "#/components/schemas/AnyEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    },
    "/users/{user_id}/export": {
      "get": {
        "description": "Exports the user's profile, reactions and messages. Raises an error if a user has more than 10k messages or reactions",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "user_id",
            "required": true
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExportUserResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Export user",
        "tags": [
          "Users"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-server-side": true
      }
    },
    "/users/{user_id}/reactivate": {
      "post": {
        "description": "Activates user who's been deactivated previously",
        "operationId": "ReactivateUser",
        "parameters": [
          {
            "content": {
              "application/json": {
                "schema": {
                  "title": "User ID",
                  "type": "string",
                  "x-stream-index": "001"
                }
              }
            },
            "in": "path",
            "name": "user_id",
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReactivateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReactivateUserResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Bad request"
          },
          "429": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/APIError"
                }
              }
            },
            "description": "Too many requests",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "The number of allowed requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "The number of remaining requests in the current period",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Timestamp when number of requests will be reset",
                "schema": {
                  "type": "integer"
                }
              }
            }
          }
        },
        "summary": "Reactivate user",
        "tags": [
          "Users",
          "GDPR",
          "Moderation"
        ],
        "x-stream-docs-page-id": "gdpr",
        "x-stream-events": {
          "user.reactivated": "When user is reactivated"
        },
        "x-stream-events-v2": {
          "user.reactivated": {
            "description": "When user is reactivated",
            "schema": {
              "ref": "#/components/schemas/UserReactivatedEvent"
            }
          }
        },
        "x-stream-server-side": true
      }
    }
  },
  "components": {
    "schemas": {
      "APIError": {
        "nullable": true,
        "properties": {
          "StatusCode": {
            "description": "Response HTTP status code",
            "title": "Status code",
            "type": "number",
            "x-stream-index": "004"
          },
          "code": {
            "description": "API error code",
            "title": "Code",
            "type": "number",
            "x-stream-index": "001"
          },
          "details": {
            "description": "Additional error-specific information",
            "items": {
              "type": "number"
            },
            "title": "Details",
            "type": "array",
            "x-stream-index": "007"
          },
          "duration": {
            "description": "Request duration",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "005"
          },
          "exception_fields": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional error info",
            "title": "Exception fields",
            "type": "object",
            "x-stream-index": "003"
          },
          "message": {
            "description": "Message describing an error",
            "title": "Message",
            "type": "string",
            "x-stream-index": "002"
          },
          "more_info": {
            "description": "URL with additional information",
            "title": "More info",
            "type": "string",
            "x-stream-index": "006"
          }
        },
        "required": [
          "code",
          "message",
          "StatusCode",
          "duration",
          "more_info",
          "details"
        ],
        "title": "Error response",
        "type": "object"
      },
      "APNConfigFields": {
        "properties": {
          "auth_key": {
            "type": "string",
            "x-stream-index": "009"
          },
          "auth_type": {
            "type": "string",
            "x-stream-index": "003"
          },
          "bundle_id": {
            "type": "string",
            "x-stream-index": "006"
          },
          "development": {
            "type": "boolean",
            "x-stream-index": "002"
          },
          "enabled": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "host": {
            "type": "string",
            "x-stream-index": "005"
          },
          "key_id": {
            "type": "string",
            "x-stream-index": "008"
          },
          "notification_template": {
            "type": "string",
            "x-stream-index": "004"
          },
          "p12_cert": {
            "type": "string",
            "x-stream-index": "010"
          },
          "team_id": {
            "type": "string",
            "x-stream-index": "007"
          }
        },
        "required": [
          "enabled",
          "development",
          "notification_template"
        ],
        "type": "object"
      },
      "APNConfigRequest": {
        "properties": {
          "Disabled": {
            "type": "boolean",
            "writeOnly": true,
            "x-stream-index": "005"
          },
          "auth_key": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "auth_type": {
            "enum": [
              "certificate",
              "token"
            ],
            "type": "string",
            "x-stream-index": "001"
          },
          "bundle_id": {
            "type": "string",
            "x-stream-index": "004"
          },
          "development": {
            "type": "boolean",
            "x-stream-index": "002"
          },
          "host": {
            "type": "string",
            "x-stream-index": "003"
          },
          "key_id": {
            "type": "string",
            "x-stream-index": "006.002"
          },
          "notification_template": {
            "type": "string",
            "x-stream-index": "008"
          },
          "p12_cert": {
            "type": "string",
            "x-stream-index": "007.001"
          },
          "team_id": {
            "type": "string",
            "x-stream-index": "006.003"
          }
        },
        "type": "object"
      },
      "Action": {
        "nullable": true,
        "properties": {
          "name": {
            "type": "string",
            "x-stream-index": "001"
          },
          "style": {
            "type": "string",
            "x-stream-index": "003"
          },
          "text": {
            "type": "string",
            "x-stream-index": "002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004"
          },
          "value": {
            "type": "string",
            "x-stream-index": "005"
          }
        },
        "required": [
          "name",
          "text",
          "type"
        ],
        "type": "object"
      },
      "ActionRequest": {
        "nullable": true,
        "properties": {
          "name": {
            "type": "string",
            "x-stream-index": "001"
          },
          "style": {
            "type": "string",
            "x-stream-index": "003"
          },
          "text": {
            "type": "string",
            "x-stream-index": "002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004"
          },
          "value": {
            "type": "string",
            "x-stream-index": "005"
          }
        },
        "type": "object"
      },
      "AgoraCall": {
        "properties": {
          "channel": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "channel"
        ],
        "type": "object"
      },
      "AnyEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "AnyEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "App": {
        "properties": {
          "agora_options": {
            "$ref": "#/components/schemas/Config",
            "x-stream-index": "001.034"
          },
          "async_url_enrich_enabled": {
            "type": "boolean",
            "x-stream-index": "001.015"
          },
          "auto_translation_enabled": {
            "type": "boolean",
            "x-stream-index": "001.017"
          },
          "before_message_send_hook_url": {
            "type": "string",
            "x-stream-index": "001.018"
          },
          "campaign_enabled": {
            "type": "boolean",
            "x-stream-index": "001.028"
          },
          "cdn_expiration_seconds": {
            "type": "number",
            "x-stream-index": "001.032"
          },
          "channel_configs": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ChannelConfig"
            },
            "description": "Object with channel configs",
            "title": "Channel configs",
            "type": "object",
            "x-stream-index": "001.005",
            "x-stream-map": {
              "key": "channel_type"
            }
          },
          "custom_action_handler_url": {
            "type": "string",
            "x-stream-index": "001.019"
          },
          "disable_auth_checks": {
            "type": "boolean",
            "x-stream-index": "001.009"
          },
          "disable_permissions_checks": {
            "type": "boolean",
            "x-stream-index": "001.010"
          },
          "enforce_unique_usernames": {
            "type": "string",
            "x-stream-index": "001.020"
          },
          "file_upload_config": {
            "$ref": "#/components/schemas/FileUploadConfig",
            "x-stream-index": "001.024"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "001.027"
          },
          "hms_options": {
            "$ref": "#/components/schemas/Config",
            "x-stream-index": "001.035"
          },
          "image_moderation_enabled": {
            "type": "boolean",
            "x-stream-index": "001.014"
          },
          "image_moderation_labels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.016"
          },
          "image_upload_config": {
            "$ref": "#/components/schemas/FileUploadConfig",
            "x-stream-index": "001.025"
          },
          "multi_tenant_enabled": {
            "type": "boolean",
            "x-stream-index": "001.013"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "organization": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "permission_version": {
            "type": "string",
            "x-stream-index": "001.011"
          },
          "policies": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/Policy"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "001.006"
          },
          "push_notifications": {
            "$ref": "#/components/schemas/PushNotificationFields",
            "x-stream-index": "001.003"
          },
          "reminders_interval": {
            "type": "number",
            "x-stream-index": "001.031"
          },
          "revoke_tokens_issued_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.026"
          },
          "search_backend": {
            "description": "Backend implementation used for search",
            "enum": [
              "elasticsearch",
              "postgres",
              "disabled"
            ],
            "title": "Search Backend",
            "type": "string",
            "x-stream-index": "001.029"
          },
          "sqs_key": {
            "type": "string",
            "x-stream-index": "001.022"
          },
          "sqs_secret": {
            "type": "string",
            "x-stream-index": "001.023"
          },
          "sqs_url": {
            "type": "string",
            "x-stream-index": "001.021"
          },
          "suspended": {
            "type": "boolean",
            "x-stream-index": "001.007"
          },
          "suspended_explanation": {
            "type": "string",
            "x-stream-index": "001.008"
          },
          "user_search_disallowed_roles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.012"
          },
          "video_provider": {
            "type": "string",
            "x-stream-index": "001.033"
          },
          "webhook_events": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.030"
          },
          "webhook_url": {
            "type": "string",
            "x-stream-index": "001.004"
          }
        },
        "required": [
          "name",
          "organization",
          "push_notifications",
          "webhook_url",
          "channel_configs",
          "policies",
          "suspended",
          "suspended_explanation",
          "disable_auth_checks",
          "disable_permissions_checks",
          "permission_version",
          "user_search_disallowed_roles",
          "multi_tenant_enabled",
          "image_moderation_enabled",
          "async_url_enrich_enabled",
          "custom_action_handler_url",
          "enforce_unique_usernames",
          "sqs_url",
          "sqs_key",
          "sqs_secret",
          "file_upload_config",
          "image_upload_config",
          "grants",
          "campaign_enabled",
          "search_backend",
          "webhook_events",
          "reminders_interval",
          "cdn_expiration_seconds",
          "video_provider"
        ],
        "type": "object"
      },
      "AsyncModerationCallbackConfigRequest": {
        "properties": {
          "mode": {
            "enum": [
              "CALLBACK_MODE_NONE",
              "CALLBACK_MODE_REST",
              "CALLBACK_MODE_TWIRP"
            ],
            "type": "string",
            "x-stream-index": "002"
          },
          "server_url": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "AsyncModerationConfigurationRequest": {
        "properties": {
          "callback": {
            "$ref": "#/components/schemas/AsyncModerationCallbackConfigRequest",
            "x-stream-index": "002"
          },
          "timeout_ms": {
            "type": "number",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "Attachment": {
        "additionalProperties": true,
        "nullable": true,
        "properties": {
          "actions": {
            "items": {
              "$ref": "#/components/schemas/Action"
            },
            "type": "array",
            "x-stream-index": "015"
          },
          "asset_url": {
            "type": "string",
            "x-stream-index": "017"
          },
          "author_icon": {
            "type": "string",
            "x-stream-index": "007"
          },
          "author_link": {
            "type": "string",
            "x-stream-index": "006"
          },
          "author_name": {
            "type": "string",
            "x-stream-index": "005"
          },
          "color": {
            "type": "string",
            "x-stream-index": "003"
          },
          "fallback": {
            "type": "string",
            "x-stream-index": "002"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/Field"
            },
            "type": "array",
            "x-stream-index": "016"
          },
          "footer": {
            "type": "string",
            "x-stream-index": "013"
          },
          "footer_icon": {
            "type": "string",
            "x-stream-index": "014"
          },
          "giphy": {
            "$ref": "#/components/schemas/Images",
            "x-stream-index": "019"
          },
          "image_url": {
            "type": "string",
            "x-stream-index": "011"
          },
          "og_scrape_url": {
            "type": "string",
            "x-stream-index": "020"
          },
          "original_height": {
            "type": "number",
            "x-stream-index": "022"
          },
          "original_width": {
            "type": "number",
            "x-stream-index": "021"
          },
          "pretext": {
            "type": "string",
            "x-stream-index": "004"
          },
          "text": {
            "type": "string",
            "x-stream-index": "010"
          },
          "thumb_url": {
            "type": "string",
            "x-stream-index": "012"
          },
          "title": {
            "type": "string",
            "x-stream-index": "008"
          },
          "title_link": {
            "type": "string",
            "x-stream-index": "009"
          },
          "type": {
            "description": "Attachment type (e.g. image, video, url)",
            "title": "Type",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "title": "Attachment",
        "type": "object",
        "x-stream-docs-page-id": "file_uploads"
      },
      "AttachmentRequest": {
        "additionalProperties": true,
        "nullable": true,
        "properties": {
          "actions": {
            "items": {
              "$ref": "#/components/schemas/ActionRequest"
            },
            "type": "array",
            "x-stream-index": "015"
          },
          "asset_url": {
            "type": "string",
            "x-stream-index": "017"
          },
          "author_icon": {
            "type": "string",
            "x-stream-index": "007"
          },
          "author_link": {
            "type": "string",
            "x-stream-index": "006"
          },
          "author_name": {
            "type": "string",
            "x-stream-index": "005"
          },
          "color": {
            "type": "string",
            "x-stream-index": "003"
          },
          "fallback": {
            "type": "string",
            "x-stream-index": "002"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/FieldRequest"
            },
            "type": "array",
            "x-stream-index": "016"
          },
          "footer": {
            "type": "string",
            "x-stream-index": "013"
          },
          "footer_icon": {
            "type": "string",
            "x-stream-index": "014"
          },
          "giphy": {
            "$ref": "#/components/schemas/ImagesRequest",
            "x-stream-index": "019"
          },
          "image_url": {
            "type": "string",
            "x-stream-index": "011"
          },
          "og_scrape_url": {
            "type": "string",
            "x-stream-index": "020"
          },
          "original_height": {
            "type": "number",
            "x-stream-index": "022"
          },
          "original_width": {
            "type": "number",
            "x-stream-index": "021"
          },
          "pretext": {
            "type": "string",
            "x-stream-index": "004"
          },
          "text": {
            "type": "string",
            "x-stream-index": "010"
          },
          "thumb_url": {
            "type": "string",
            "x-stream-index": "012"
          },
          "title": {
            "type": "string",
            "x-stream-index": "008"
          },
          "title_link": {
            "type": "string",
            "x-stream-index": "009"
          },
          "type": {
            "description": "Attachment type (e.g. image, video, url)",
            "title": "Type",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "title": "Attachment",
        "type": "object",
        "x-stream-docs-page-id": "file_uploads"
      },
      "AutomodDetails": {
        "properties": {
          "action": {
            "type": "string",
            "x-stream-index": "001"
          },
          "image_labels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "005"
          },
          "message_details": {
            "$ref": "#/components/schemas/FlagMessageDetails",
            "x-stream-index": "004"
          },
          "original_message_type": {
            "type": "string",
            "x-stream-index": "002"
          },
          "result": {
            "$ref": "#/components/schemas/MessageModerationResult",
            "x-stream-index": "003"
          }
        },
        "type": "object"
      },
      "BanRequest": {
        "nullable": true,
        "properties": {
          "banned_by": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "User who issued a ban",
            "title": "Banned by",
            "x-stream-index": "009"
          },
          "banned_by_id": {
            "description": "User ID who issued a ban",
            "title": "Banned by ID",
            "type": "string",
            "x-stream-index": "008"
          },
          "id": {
            "description": "Channel ID to ban user in",
            "title": "ID",
            "type": "string",
            "x-stream-index": "005"
          },
          "ip_ban": {
            "description": "Whether to perform IP ban or not",
            "title": "IP ban",
            "type": "boolean",
            "x-stream-index": "007"
          },
          "reason": {
            "description": "Ban reason",
            "title": "Reason",
            "type": "string",
            "x-stream-index": "003"
          },
          "shadow": {
            "description": "Whether to perform shadow ban or not",
            "title": "Shadow",
            "type": "boolean",
            "x-stream-index": "006"
          },
          "target_user_id": {
            "description": "ID of user to ban",
            "title": "Target user ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "timeout": {
            "description": "Timeout of ban in minutes. User will be unbanned after this period of time",
            "title": "Timeout",
            "type": "number",
            "x-stream-index": "002"
          },
          "type": {
            "description": "Channel type to ban user in",
            "title": "Type",
            "type": "string",
            "x-stream-index": "004"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "010.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "010.001"
          }
        },
        "required": [
          "target_user_id"
        ],
        "type": "object"
      },
      "BanResponse": {
        "nullable": true,
        "properties": {
          "banned_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "006"
          },
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "expires": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003"
          },
          "reason": {
            "type": "string",
            "x-stream-index": "004"
          },
          "shadow": {
            "type": "boolean",
            "x-stream-index": "005"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002"
          }
        },
        "required": [
          "created_at"
        ],
        "type": "object"
      },
      "BlockList": {
        "description": "Block list contains restricted words",
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "004"
          },
          "name": {
            "description": "Block list name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "006"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "005"
          },
          "words": {
            "description": "List of words to block",
            "items": {
              "type": "string"
            },
            "title": "Words",
            "type": "array",
            "x-stream-index": "007"
          }
        },
        "required": [
          "name",
          "words"
        ],
        "title": "Block list",
        "type": "object",
        "x-stream-docs-page-id": "block_lists"
      },
      "Call": {
        "properties": {
          "agora": {
            "$ref": "#/components/schemas/AgoraCall",
            "x-stream-index": "005"
          },
          "hms": {
            "$ref": "#/components/schemas/HMSCall",
            "x-stream-index": "004"
          },
          "id": {
            "type": "string",
            "x-stream-index": "002"
          },
          "provider": {
            "type": "string",
            "x-stream-index": "001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "required": [
          "provider",
          "id",
          "type"
        ],
        "type": "object"
      },
      "Campaign": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "maximum": 10,
            "type": "array",
            "x-stream-index": "005.007"
          },
          "channel_type": {
            "maxLength": 64,
            "type": "string",
            "x-stream-index": "005.008"
          },
          "completed_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "defaults": {
            "additionalProperties": {
              "type": "string"
            },
            "maximum": 100,
            "type": "object",
            "x-stream-index": "005.006"
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "x-stream-index": "005.002"
          },
          "details": {
            "type": "string",
            "x-stream-index": "006.011"
          },
          "errored_messages": {
            "type": "number",
            "x-stream-index": "006.009"
          },
          "failed_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.005"
          },
          "id": {
            "type": "string",
            "x-stream-index": "003"
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "x-stream-index": "005.001"
          },
          "resumed_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.007"
          },
          "scheduled_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.003"
          },
          "scheduled_for": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.002"
          },
          "segment_id": {
            "type": "string",
            "x-stream-index": "005.004"
          },
          "sender_id": {
            "type": "string",
            "x-stream-index": "005.005"
          },
          "sent_messages": {
            "type": "number",
            "x-stream-index": "006.008"
          },
          "status": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "stopped_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.006"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "006.010"
          },
          "text": {
            "type": "string",
            "x-stream-index": "005.003"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "text",
          "segment_id",
          "sender_id",
          "defaults",
          "attachments",
          "channel_type",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "CampaignDataRequest": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/AttachmentRequest"
            },
            "maximum": 10,
            "type": "array",
            "x-stream-index": "007"
          },
          "channel_type": {
            "maxLength": 64,
            "type": "string",
            "x-stream-index": "008"
          },
          "defaults": {
            "additionalProperties": {
              "type": "string"
            },
            "maximum": 100,
            "type": "object",
            "x-stream-index": "006"
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "x-stream-index": "002"
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "x-stream-index": "001"
          },
          "segment_id": {
            "type": "string",
            "x-stream-index": "004"
          },
          "sender_id": {
            "type": "string",
            "x-stream-index": "005"
          },
          "text": {
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "required": [
          "name",
          "text",
          "segment_id",
          "sender_id"
        ],
        "type": "object"
      },
      "CampaignSort": {
        "properties": {
          "direction": {
            "enum": [
              "asc",
              "desc"
            ],
            "type": "string",
            "x-stream-index": "001"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/CampaignSortField"
            },
            "maximum": 5,
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "fields"
        ],
        "type": "object"
      },
      "CampaignSortField": {
        "properties": {
          "field": {
            "type": "string",
            "x-stream-index": "001"
          },
          "value": {
            "x-stream-index": "002"
          }
        },
        "required": [
          "field",
          "value"
        ],
        "type": "object"
      },
      "CampaignUpdateableFieldsRequest": {
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/AttachmentRequest"
            },
            "maximum": 10,
            "type": "array",
            "x-stream-index": "007"
          },
          "channel_type": {
            "maxLength": 64,
            "type": "string",
            "x-stream-index": "008"
          },
          "defaults": {
            "additionalProperties": {
              "type": "string"
            },
            "maximum": 100,
            "type": "object",
            "x-stream-index": "006"
          },
          "description": {
            "maxLength": 1024,
            "type": "string",
            "x-stream-index": "002"
          },
          "name": {
            "maxLength": 256,
            "type": "string",
            "x-stream-index": "001"
          },
          "segment_id": {
            "type": "string",
            "x-stream-index": "004"
          },
          "sender_id": {
            "type": "string",
            "x-stream-index": "005"
          },
          "text": {
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "type": "object"
      },
      "Channel": {
        "additionalProperties": true,
        "properties": {
          "auto_translation_enabled": {
            "type": "boolean",
            "x-stream-index": "027"
          },
          "auto_translation_language": {
            "type": "string",
            "x-stream-index": "028"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003"
          },
          "config": {
            "$ref": "#/components/schemas/ChannelConfig",
            "x-stream-index": "024"
          },
          "config_overrides": {
            "$ref": "#/components/schemas/ChannelConfig",
            "x-stream-index": "025"
          },
          "cooldown": {
            "type": "number",
            "x-stream-index": "029"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "009"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "008"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "011"
          },
          "disabled": {
            "type": "boolean",
            "x-stream-index": "016"
          },
          "frozen": {
            "type": "boolean",
            "x-stream-index": "015"
          },
          "id": {
            "type": "string",
            "x-stream-index": "004"
          },
          "invites": {
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "type": "array",
            "x-stream-index": "020"
          },
          "last_message_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006"
          },
          "member_count": {
            "type": "number",
            "x-stream-index": "019"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "type": "array",
            "x-stream-index": "018"
          },
          "team": {
            "type": "string",
            "x-stream-index": "026"
          },
          "truncated_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "014"
          },
          "type": {
            "type": "string",
            "x-stream-index": "005"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          }
        },
        "required": [
          "cid",
          "id",
          "type",
          "created_at",
          "updated_at",
          "frozen",
          "disabled",
          "auto_translation_language"
        ],
        "type": "object"
      },
      "ChannelConfig": {
        "properties": {
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "001.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/Thresholds",
            "x-stream-index": "001.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "001.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.020"
          },
          "commands": {
            "description": "List of commands that channel supports",
            "items": {
              "type": "string"
            },
            "title": "Commands",
            "type": "array",
            "x-stream-index": "003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "001.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.003"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "001.012"
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "001.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "001.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "001.009"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "001.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "001.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "001.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "001.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "001.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "001.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "001.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "001.002"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.004"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "001.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "001.011"
          }
        },
        "required": [
          "name",
          "typing_events",
          "read_events",
          "connect_events",
          "search",
          "reactions",
          "replies",
          "quotes",
          "mutes",
          "uploads",
          "url_enrichment",
          "custom_events",
          "push_notifications",
          "reminders",
          "message_retention",
          "max_message_length",
          "automod",
          "automod_behavior",
          "created_at",
          "updated_at",
          "commands"
        ],
        "type": "object"
      },
      "ChannelConfigRequest": {
        "description": "Channel configuration overrides",
        "properties": {
          "blocklist": {
            "type": "string",
            "x-stream-index": "008"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "009"
          },
          "commands": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "011"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Grants",
            "type": "object",
            "x-stream-index": "010",
            "x-stream-map": {
              "description": "List of grants modifiers that apply to a role",
              "key": "role",
              "title": "Grants"
            }
          },
          "max_message_length": {
            "description": "Overrides max message length",
            "maximum": 20000,
            "title": "Max Message Length",
            "type": "number",
            "x-stream-index": "007"
          },
          "quotes": {
            "description": "Enables message quotes",
            "title": "Quotes",
            "type": "boolean",
            "x-stream-index": "004"
          },
          "reactions": {
            "description": "Enables or disables reactions",
            "title": "Reactions",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "replies": {
            "description": "Enables message replies (threads)",
            "title": "Replies",
            "type": "boolean",
            "x-stream-index": "003"
          },
          "typing_events": {
            "description": "Enables or disables typing events",
            "title": "Typing events",
            "type": "boolean",
            "x-stream-index": "001"
          },
          "uploads": {
            "description": "Enables or disables file uploads",
            "title": "Uploads",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "url_enrichment": {
            "description": "Enables or disables URL enrichment",
            "title": "URL Enrichment",
            "type": "boolean",
            "x-stream-index": "006"
          }
        },
        "type": "object"
      },
      "ChannelConfigWithInfo": {
        "properties": {
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "001.002.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.002.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/Thresholds",
            "x-stream-index": "001.002.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "001.002.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.002.020"
          },
          "commands": {
            "items": {
              "$ref": "#/components/schemas/Command"
            },
            "type": "array",
            "x-stream-index": "001.003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "001.002.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.001.003"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "001.002.012"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Grants",
            "type": "object",
            "x-stream-index": "002",
            "x-stream-map": {
              "description": "List of grants modifiers that apply to a role",
              "key": "role",
              "title": "Grants"
            }
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "001.002.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "001.002.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "001.002.009"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "001.002.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "001.002.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "001.002.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "001.002.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "001.002.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "001.002.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "001.002.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "001.002.002"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.001.004"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "001.002.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "001.002.011"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "name",
          "typing_events",
          "read_events",
          "connect_events",
          "search",
          "reactions",
          "replies",
          "quotes",
          "mutes",
          "uploads",
          "url_enrichment",
          "custom_events",
          "push_notifications",
          "reminders",
          "message_retention",
          "max_message_length",
          "automod",
          "automod_behavior",
          "commands"
        ],
        "type": "object"
      },
      "ChannelConfigWithInfoRequest": {
        "properties": {
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "001.002.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.002.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/ThresholdsRequest",
            "x-stream-index": "001.002.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "001.002.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.002.020"
          },
          "commands": {
            "items": {
              "$ref": "#/components/schemas/CommandRequest"
            },
            "type": "array",
            "x-stream-index": "001.003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "001.002.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.001.003"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "001.002.012"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "title": "Grants",
            "type": "object",
            "x-stream-index": "002",
            "x-stream-map": {
              "description": "List of grants modifiers that apply to a role",
              "key": "role",
              "title": "Grants"
            }
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "001.002.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "001.002.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "001.002.009"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "001.002.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "001.002.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "001.002.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "001.002.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "001.002.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "001.002.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "001.002.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "001.002.002"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.001.004"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "001.002.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "001.002.011"
          }
        },
        "required": [
          "automod"
        ],
        "type": "object"
      },
      "ChannelCreatedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "ChannelCreatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelDeletedEvent": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "003.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "ChannelDeletedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelExportRequest": {
        "properties": {
          "cid": {
            "type": "string",
            "x-stream-index": "003"
          },
          "id": {
            "description": "Channel ID",
            "title": "ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "messages_since": {
            "description": "Date to export messages since",
            "format": "date-time",
            "title": "Messages since",
            "type": "string",
            "x-stream-index": "004"
          },
          "messages_until": {
            "description": "Date to export messages until",
            "format": "date-time",
            "title": "Messages until",
            "type": "string",
            "x-stream-index": "005"
          },
          "type": {
            "description": "Channel type",
            "title": "Type",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "title": "Channel Export",
        "type": "object"
      },
      "ChannelFrozenEvent": {
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "ChannelFrozenEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelGetOrCreateRequest": {
        "nullable": true,
        "properties": {
          "client_id": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "connection_id": {
            "type": "string",
            "x-stream-index": "001.003"
          },
          "data": {
            "$ref": "#/components/schemas/ChannelRequest",
            "x-stream-index": "004"
          },
          "members": {
            "$ref": "#/components/schemas/PaginationParamsRequest",
            "x-stream-index": "009"
          },
          "messages": {
            "$ref": "#/components/schemas/MessagePaginationParamsRequest",
            "x-stream-index": "008"
          },
          "presence": {
            "description": "Fetch user presence info",
            "title": "Presence",
            "type": "boolean",
            "x-stream-index": "007"
          },
          "state": {
            "description": "Refresh channel state",
            "title": "State",
            "type": "boolean",
            "x-stream-index": "006"
          },
          "watch": {
            "description": "Start watching the channel",
            "title": "Watch",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "watchers": {
            "$ref": "#/components/schemas/PaginationParamsRequest",
            "x-stream-index": "010"
          }
        },
        "type": "object"
      },
      "ChannelHiddenEvent": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "003.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "clear_history": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "clear_history",
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "ChannelHiddenEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelKickedEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "ChannelKickedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelMember": {
        "nullable": true,
        "properties": {
          "ban_expires": {
            "description": "Expiration date of the ban",
            "format": "date-time",
            "title": "Ban expires",
            "type": "string",
            "x-stream-index": "015"
          },
          "banned": {
            "description": "Whether member is banned this channel or not",
            "title": "Banned",
            "type": "boolean",
            "x-stream-index": "014"
          },
          "channel_role": {
            "description": "Role of the member in the channel",
            "title": "Channel Role",
            "type": "string",
            "x-stream-index": "019"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "010"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          },
          "invite_accepted_at": {
            "description": "Date when invite was accepted",
            "format": "date-time",
            "title": "Invited accepted at",
            "type": "string",
            "x-stream-index": "008"
          },
          "invite_rejected_at": {
            "description": "Date when invite was rejected",
            "format": "date-time",
            "title": "Invited rejected at",
            "type": "string",
            "x-stream-index": "009"
          },
          "invited": {
            "description": "Whether member was invited or not",
            "title": "Invited",
            "type": "boolean",
            "x-stream-index": "007"
          },
          "is_moderator": {
            "description": "Whether member is channel moderator or not",
            "title": "Is moderator",
            "type": "boolean",
            "x-stream-index": "006"
          },
          "role": {
            "description": "Permission level of the member in the channel (DEPRECATED: use channel_role instead)",
            "enum": [
              "member",
              "moderator",
              "admin",
              "owner"
            ],
            "title": "Role",
            "type": "string",
            "x-stream-index": "018"
          },
          "shadow_banned": {
            "description": "Whether member is shadow banned in this channel or not",
            "title": "Shadow banned",
            "type": "boolean",
            "x-stream-index": "017"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "011"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "005"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "created_at",
          "updated_at",
          "banned",
          "shadow_banned",
          "channel_role"
        ],
        "title": "Channel member",
        "type": "object"
      },
      "ChannelMemberRequest": {
        "nullable": true,
        "properties": {
          "ban_expires": {
            "description": "Expiration date of the ban",
            "format": "date-time",
            "title": "Ban expires",
            "type": "string",
            "x-stream-index": "015"
          },
          "banned": {
            "description": "Whether member is banned this channel or not",
            "title": "Banned",
            "type": "boolean",
            "x-stream-index": "014"
          },
          "channel_role": {
            "description": "Role of the member in the channel",
            "title": "Channel Role",
            "type": "string",
            "x-stream-index": "019"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "010"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          },
          "invite_accepted_at": {
            "description": "Date when invite was accepted",
            "format": "date-time",
            "title": "Invited accepted at",
            "type": "string",
            "x-stream-index": "008"
          },
          "invite_rejected_at": {
            "description": "Date when invite was rejected",
            "format": "date-time",
            "title": "Invited rejected at",
            "type": "string",
            "x-stream-index": "009"
          },
          "invited": {
            "description": "Whether member was invited or not",
            "title": "Invited",
            "type": "boolean",
            "x-stream-index": "007"
          },
          "is_moderator": {
            "description": "Whether member is channel moderator or not",
            "title": "Is moderator",
            "type": "boolean",
            "x-stream-index": "006"
          },
          "role": {
            "description": "Permission level of the member in the channel (DEPRECATED: use channel_role instead)",
            "enum": [
              "member",
              "moderator",
              "admin",
              "owner"
            ],
            "title": "Role",
            "type": "string",
            "x-stream-index": "018"
          },
          "shadow_banned": {
            "description": "Whether member is shadow banned in this channel or not",
            "title": "Shadow banned",
            "type": "boolean",
            "x-stream-index": "017"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "011"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "005"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "title": "Channel member",
        "type": "object"
      },
      "ChannelMessages": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "messages"
        ],
        "type": "object"
      },
      "ChannelMute": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "007"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "009"
          },
          "expires": {
            "description": "Date/time of mute expiration",
            "format": "date-time",
            "title": "Expires",
            "type": "string",
            "x-stream-index": "008"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "010"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Owner of channel mute",
            "title": "User",
            "x-stream-index": "005"
          }
        },
        "required": [
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "ChannelMuteRequest": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponseRequest",
            "x-stream-index": "007"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "009"
          },
          "expires": {
            "description": "Date/time of mute expiration",
            "format": "date-time",
            "title": "Expires",
            "type": "string",
            "x-stream-index": "008"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "010"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "Owner of channel mute",
            "title": "User",
            "x-stream-index": "005"
          }
        },
        "type": "object"
      },
      "ChannelMutedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "ChannelMutedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelRequest": {
        "additionalProperties": true,
        "properties": {
          "auto_translation_enabled": {
            "description": "Enable or disable auto translation",
            "title": "Auto translation",
            "type": "boolean",
            "x-stream-index": "007"
          },
          "auto_translation_language": {
            "description": "Switch auto translation language",
            "title": "Auto translation language",
            "type": "string",
            "x-stream-index": "008"
          },
          "config_overrides": {
            "$ref": "#/components/schemas/ChannelConfigRequest",
            "x-stream-index": "026"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObjectRequest"
          },
          "disabled": {
            "type": "boolean",
            "x-stream-index": "016"
          },
          "frozen": {
            "description": "Freeze or unfreeze the channel",
            "title": "Frozen",
            "type": "boolean",
            "x-stream-index": "015"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/ChannelMemberRequest"
            },
            "maximum": 100,
            "type": "array",
            "x-stream-index": "020"
          },
          "own_capabilities": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "x-stream-index": "027"
          },
          "team": {
            "description": "Team the channel belongs to (if multi-tenant mode is enabled)",
            "title": "Team",
            "type": "string",
            "x-stream-index": "006"
          },
          "truncated_at": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "x-stream-index": "014"
          },
          "truncated_by": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "x-stream-index": "013"
          },
          "truncated_by_id": {
            "type": "string",
            "x-stream-index": "012"
          }
        },
        "type": "object"
      },
      "ChannelResponse": {
        "additionalProperties": true,
        "description": "Represents channel in chat",
        "properties": {
          "auto_translation_enabled": {
            "description": "Whether auto translation is enabled or not",
            "title": "Auto translation",
            "type": "boolean",
            "x-stream-index": "021"
          },
          "auto_translation_language": {
            "description": "Language to translate to when auto translation is active",
            "title": "Auto translation language",
            "type": "string",
            "x-stream-index": "022"
          },
          "cid": {
            "description": "Channel CID (<type>:<id>)",
            "title": "CID",
            "type": "string",
            "x-stream-index": "005"
          },
          "config": {
            "$ref": "#/components/schemas/ChannelConfigWithInfo",
            "description": "Channel configuration",
            "title": "Config",
            "x-stream-index": "017"
          },
          "cooldown": {
            "description": "Cooldown period after sending each message",
            "title": "Cooldown",
            "type": "number",
            "x-stream-index": "024"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "008"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Creator of the channel",
            "title": "Created by",
            "x-stream-index": "011"
          },
          "deleted_at": {
            "description": "Date/time of deletion",
            "format": "date-time",
            "title": "Deleted at",
            "type": "string",
            "x-stream-index": "010"
          },
          "disabled": {
            "type": "boolean",
            "x-stream-index": "013"
          },
          "frozen": {
            "description": "Whether channel is frozen or not",
            "title": "Frozen",
            "type": "boolean",
            "x-stream-index": "012"
          },
          "hidden": {
            "description": "Whether this channel is hidden by current user or not",
            "title": "Hidden",
            "type": "boolean",
            "x-stream-index": "026"
          },
          "hide_messages_before": {
            "description": "Date since when the message history is accessible",
            "format": "date-time",
            "title": "Hide messages before",
            "type": "string",
            "x-stream-index": "023"
          },
          "id": {
            "description": "Channel unique ID",
            "title": "ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "last_message_at": {
            "description": "Date of the last message sent",
            "format": "date-time",
            "title": "Last message at",
            "type": "string",
            "x-stream-index": "006"
          },
          "member_count": {
            "description": "Number of members in the channel",
            "title": "Member count",
            "type": "number",
            "x-stream-index": "015"
          },
          "members": {
            "description": "List of channel members (max 100)",
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "title": "Members",
            "type": "array",
            "x-stream-index": "014"
          },
          "mute_expires_at": {
            "description": "Date of mute expiration",
            "format": "date-time",
            "title": "Mute expires at",
            "type": "string",
            "x-stream-index": "019"
          },
          "muted": {
            "description": "Whether this channel is muted or not",
            "title": "Muted",
            "type": "boolean",
            "x-stream-index": "018"
          },
          "own_capabilities": {
            "description": "List of channel capabilities of authenticated user",
            "items": {
              "type": "string"
            },
            "title": "Own Capabilities",
            "type": "array",
            "x-stream-index": "025"
          },
          "team": {
            "description": "Team the channel belongs to (multi-tenant only)",
            "title": "Team",
            "type": "string",
            "x-stream-index": "020"
          },
          "truncated_at": {
            "description": "Date of the latest truncation of the channel",
            "format": "date-time",
            "title": "Truncated At",
            "type": "string",
            "x-stream-index": "027"
          },
          "truncated_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "028"
          },
          "type": {
            "description": "Type of the channel",
            "title": "Type",
            "type": "string",
            "x-stream-docs-page-id": "channel_features",
            "x-stream-index": "004"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "009"
          }
        },
        "required": [
          "id",
          "type",
          "cid",
          "frozen",
          "disabled"
        ],
        "title": "Channel",
        "type": "object"
      },
      "ChannelResponseRequest": {
        "additionalProperties": true,
        "description": "Represents channel in chat",
        "properties": {
          "auto_translation_enabled": {
            "description": "Whether auto translation is enabled or not",
            "title": "Auto translation",
            "type": "boolean",
            "x-stream-index": "021"
          },
          "auto_translation_language": {
            "description": "Language to translate to when auto translation is active",
            "title": "Auto translation language",
            "type": "string",
            "x-stream-index": "022"
          },
          "cid": {
            "description": "Channel CID (<type>:<id>)",
            "title": "CID",
            "type": "string",
            "x-stream-index": "005"
          },
          "config": {
            "$ref": "#/components/schemas/ChannelConfigWithInfoRequest",
            "description": "Channel configuration",
            "title": "Config",
            "x-stream-index": "017"
          },
          "cooldown": {
            "description": "Cooldown period after sending each message",
            "title": "Cooldown",
            "type": "number",
            "x-stream-index": "024"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "008"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "Creator of the channel",
            "title": "Created by",
            "x-stream-index": "011"
          },
          "deleted_at": {
            "description": "Date/time of deletion",
            "format": "date-time",
            "title": "Deleted at",
            "type": "string",
            "x-stream-index": "010"
          },
          "disabled": {
            "type": "boolean",
            "x-stream-index": "013"
          },
          "frozen": {
            "description": "Whether channel is frozen or not",
            "title": "Frozen",
            "type": "boolean",
            "x-stream-index": "012"
          },
          "hidden": {
            "description": "Whether this channel is hidden by current user or not",
            "title": "Hidden",
            "type": "boolean",
            "x-stream-index": "026"
          },
          "hide_messages_before": {
            "description": "Date since when the message history is accessible",
            "format": "date-time",
            "title": "Hide messages before",
            "type": "string",
            "x-stream-index": "023"
          },
          "id": {
            "description": "Channel unique ID",
            "title": "ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "last_message_at": {
            "description": "Date of the last message sent",
            "format": "date-time",
            "title": "Last message at",
            "type": "string",
            "x-stream-index": "006"
          },
          "member_count": {
            "description": "Number of members in the channel",
            "title": "Member count",
            "type": "number",
            "x-stream-index": "015"
          },
          "members": {
            "description": "List of channel members (max 100)",
            "items": {
              "$ref": "#/components/schemas/ChannelMemberRequest"
            },
            "title": "Members",
            "type": "array",
            "x-stream-index": "014"
          },
          "mute_expires_at": {
            "description": "Date of mute expiration",
            "format": "date-time",
            "title": "Mute expires at",
            "type": "string",
            "x-stream-index": "019"
          },
          "muted": {
            "description": "Whether this channel is muted or not",
            "title": "Muted",
            "type": "boolean",
            "x-stream-index": "018"
          },
          "own_capabilities": {
            "description": "List of channel capabilities of authenticated user",
            "items": {
              "type": "string"
            },
            "title": "Own Capabilities",
            "type": "array",
            "x-stream-index": "025"
          },
          "team": {
            "description": "Team the channel belongs to (multi-tenant only)",
            "title": "Team",
            "type": "string",
            "x-stream-index": "020"
          },
          "truncated_at": {
            "description": "Date of the latest truncation of the channel",
            "format": "date-time",
            "title": "Truncated At",
            "type": "string",
            "x-stream-index": "027"
          },
          "truncated_by": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "028"
          },
          "type": {
            "description": "Type of the channel",
            "title": "Type",
            "type": "string",
            "x-stream-docs-page-id": "channel_features",
            "x-stream-index": "004"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "009"
          }
        },
        "title": "Channel",
        "type": "object"
      },
      "ChannelStateResponse": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001.001"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "hidden": {
            "type": "boolean",
            "x-stream-index": "001.009"
          },
          "hide_messages_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.010"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "type": "array",
            "x-stream-index": "001.007"
          },
          "membership": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "001.008"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "x-stream-index": "001.002"
          },
          "pending_messages": {
            "items": {
              "$ref": "#/components/schemas/PendingMessage"
            },
            "type": "array",
            "x-stream-index": "001.011"
          },
          "pinned_messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "x-stream-index": "001.003"
          },
          "read": {
            "items": {
              "$ref": "#/components/schemas/Read"
            },
            "type": "array",
            "x-stream-index": "001.006"
          },
          "watcher_count": {
            "type": "number",
            "x-stream-index": "001.004"
          },
          "watchers": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.005"
          }
        },
        "required": [
          "messages",
          "pinned_messages",
          "members",
          "duration"
        ],
        "type": "object"
      },
      "ChannelStateResponseFields": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001"
          },
          "hidden": {
            "description": "Whether this channel is hidden or not",
            "title": "Hidden",
            "type": "boolean",
            "x-stream-index": "009"
          },
          "hide_messages_before": {
            "description": "Messages before this date are hidden from the user",
            "format": "date-time",
            "title": "Hide messages before",
            "type": "string",
            "x-stream-index": "010"
          },
          "members": {
            "description": "List of channel members",
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "title": "Members",
            "type": "array",
            "x-stream-index": "007"
          },
          "membership": {
            "$ref": "#/components/schemas/ChannelMember",
            "description": "Current user membership object",
            "title": "Membership",
            "x-stream-index": "008"
          },
          "messages": {
            "description": "List of channel messages",
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "title": "Message",
            "type": "array",
            "x-stream-index": "002"
          },
          "pending_messages": {
            "description": "Pending messages that this user has sent",
            "items": {
              "$ref": "#/components/schemas/PendingMessage"
            },
            "title": "Pending messages",
            "type": "array",
            "x-stream-index": "011"
          },
          "pinned_messages": {
            "description": "List of pinned messages in the channel",
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "title": "Pinned messages",
            "type": "array",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "003"
          },
          "read": {
            "description": "List of read states",
            "items": {
              "$ref": "#/components/schemas/Read"
            },
            "title": "Read",
            "type": "array",
            "x-stream-index": "006"
          },
          "watcher_count": {
            "description": "Number of channel watchers",
            "title": "Watcher count",
            "type": "number",
            "x-stream-index": "004"
          },
          "watchers": {
            "description": "List of user who is watching the channel",
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "title": "Watchers",
            "type": "array",
            "x-stream-index": "005"
          }
        },
        "required": [
          "messages",
          "pinned_messages",
          "members"
        ],
        "type": "object"
      },
      "ChannelStopWatchingRequest": {
        "nullable": true,
        "properties": {
          "client_id": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "connection_id": {
            "type": "string",
            "x-stream-index": "001.003"
          }
        },
        "type": "object"
      },
      "ChannelTruncatedEvent": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "001.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "ChannelTruncatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelTypeConfig": {
        "nullable": true,
        "properties": {
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "003.002.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "003.002.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/Thresholds",
            "x-stream-index": "003.002.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "003.002.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "003.002.020"
          },
          "commands": {
            "description": "List of commands that channel supports",
            "items": {
              "$ref": "#/components/schemas/Command"
            },
            "title": "Commands",
            "type": "array",
            "x-stream-index": "003.003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "003.002.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.001.003"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "003.002.012"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "002"
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "003.002.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "003.002.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "003.002.009"
          },
          "name": {
            "type": "string",
            "x-stream-index": "003.002.001"
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/PolicyRequest_1"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "003.002.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "003.002.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "003.002.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "003.002.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "003.002.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "003.002.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "003.002.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "003.002.002"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.001.004"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "003.002.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "003.002.011"
          }
        },
        "required": [
          "permissions",
          "grants",
          "created_at",
          "updated_at",
          "name",
          "typing_events",
          "read_events",
          "connect_events",
          "search",
          "reactions",
          "replies",
          "quotes",
          "mutes",
          "uploads",
          "url_enrichment",
          "custom_events",
          "push_notifications",
          "reminders",
          "message_retention",
          "max_message_length",
          "automod",
          "automod_behavior",
          "commands"
        ],
        "type": "object"
      },
      "ChannelUnFrozenEvent": {
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "ChannelUnFrozenEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelUnmutedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "ChannelUnmutedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelUpdatedEvent": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "004.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "005.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "ChannelUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelVisibleEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "001.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "ChannelVisibleEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ChannelsResponse": {
        "nullable": true,
        "properties": {
          "channels": {
            "description": "List of channels",
            "items": {
              "$ref": "#/components/schemas/ChannelStateResponseFields"
            },
            "title": "Channels",
            "type": "array",
            "x-stream-index": "001"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "channels",
          "duration"
        ],
        "title": "Channels list",
        "type": "object"
      },
      "CheckPushRequest": {
        "nullable": true,
        "properties": {
          "apn_template": {
            "description": "Push message template for APN",
            "title": "APN template",
            "type": "string",
            "x-stream-docs-page-id": "push_template",
            "x-stream-index": "002"
          },
          "firebase_data_template": {
            "description": "Push message data template for Firebase",
            "title": "Firebase data template",
            "type": "string",
            "x-stream-docs-page-id": "push_template",
            "x-stream-index": "004"
          },
          "firebase_template": {
            "description": "Push message template for Firebase",
            "title": "Firebase template",
            "type": "string",
            "x-stream-docs-page-id": "push_template",
            "x-stream-index": "003"
          },
          "message_id": {
            "description": "Message ID to send push notification for",
            "title": "Message ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "push_provider_name": {
            "description": "Name of push provider",
            "title": "Name of push provider",
            "type": "string",
            "x-stream-index": "007"
          },
          "push_provider_type": {
            "description": "Push provider type",
            "enum": [
              "firebase",
              "apn",
              "huawei",
              "xiaomi"
            ],
            "title": "Type of push provider",
            "type": "string",
            "x-stream-index": "006"
          },
          "skip_devices": {
            "description": "Don't require existing devices to render templates",
            "title": "Skip devices",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "008.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "008.001"
          }
        },
        "type": "object"
      },
      "CheckPushResponse": {
        "nullable": true,
        "properties": {
          "device_errors": {
            "additionalProperties": {
              "$ref": "#/components/schemas/DeviceErrorInfo"
            },
            "description": "Object with device errors",
            "title": "Device errors",
            "type": "object",
            "x-stream-index": "001",
            "x-stream-map": {
              "key": "device_id"
            }
          },
          "duration": {
            "type": "string",
            "x-stream-index": "007.001"
          },
          "general_errors": {
            "description": "List of general errors",
            "items": {
              "type": "string"
            },
            "title": "General errors",
            "type": "array",
            "x-stream-index": "002"
          },
          "rendered_apn_template": {
            "title": "Rendered APN template",
            "type": "string",
            "x-stream-index": "004"
          },
          "rendered_firebase_template": {
            "title": "Rendered Firebase template",
            "type": "string",
            "x-stream-index": "005"
          },
          "rendered_message": {
            "additionalProperties": {
              "type": "string"
            },
            "title": "Rendered message",
            "type": "object",
            "x-stream-index": "006"
          },
          "skip_devices": {
            "description": "Don't require existing devices to render templates",
            "title": "Skip devices",
            "type": "boolean",
            "x-stream-index": "003"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "CheckSQSRequest": {
        "nullable": true,
        "properties": {
          "sqs_key": {
            "description": "AWS SQS access key",
            "title": "SQS key",
            "type": "string",
            "x-stream-index": "002"
          },
          "sqs_secret": {
            "description": "AWS SQS key secret",
            "title": "SQS secret",
            "type": "string",
            "x-stream-index": "003"
          },
          "sqs_url": {
            "description": "AWS SQS endpoint URL",
            "title": "SQS URL",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "CheckSQSResponse": {
        "nullable": true,
        "properties": {
          "data": {
            "additionalProperties": {},
            "description": "Error data",
            "title": "Data",
            "type": "object",
            "x-stream-index": "003"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "error": {
            "description": "Error text",
            "title": "Error",
            "type": "string",
            "x-stream-index": "002"
          },
          "status": {
            "description": "Validation result",
            "enum": [
              "ok",
              "error"
            ],
            "title": "Status",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "status",
          "duration"
        ],
        "type": "object"
      },
      "Command": {
        "description": "Represents custom chat command",
        "nullable": true,
        "properties": {
          "args": {
            "description": "Arguments help text, shown in commands auto-completion",
            "title": "Arguments",
            "type": "string",
            "x-stream-index": "006"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "readOnly": true,
            "title": "Created at",
            "type": "string",
            "x-stream-index": "001"
          },
          "description": {
            "description": "Description, shown in commands auto-completion",
            "title": "Description",
            "type": "string",
            "x-stream-index": "005"
          },
          "name": {
            "description": "Unique command name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "004"
          },
          "set": {
            "description": "Set name used for grouping commands",
            "title": "Set",
            "type": "string",
            "x-stream-index": "007"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "readOnly": true,
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "name",
          "description",
          "args",
          "set"
        ],
        "title": "Command",
        "type": "object"
      },
      "CommandRequest": {
        "description": "Represents custom chat command",
        "nullable": true,
        "properties": {
          "args": {
            "description": "Arguments help text, shown in commands auto-completion",
            "title": "Arguments",
            "type": "string",
            "x-stream-index": "006"
          },
          "description": {
            "description": "Description, shown in commands auto-completion",
            "title": "Description",
            "type": "string",
            "x-stream-index": "005"
          },
          "name": {
            "description": "Unique command name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "004"
          },
          "set": {
            "description": "Set name used for grouping commands",
            "title": "Set",
            "type": "string",
            "x-stream-index": "007"
          }
        },
        "title": "Command",
        "type": "object"
      },
      "CommitMessageRequest": {
        "nullable": true,
        "type": "object"
      },
      "Config": {
        "properties": {
          "app_certificate": {
            "type": "string",
            "x-stream-index": "002"
          },
          "app_id": {
            "type": "string",
            "x-stream-index": "001"
          },
          "default_role": {
            "enum": [
              "attendee",
              "publisher",
              "subscriber",
              "admin"
            ],
            "type": "string",
            "x-stream-index": "003"
          },
          "role_map": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "x-stream-index": "004"
          }
        },
        "required": [
          "app_id",
          "app_certificate"
        ],
        "type": "object"
      },
      "ConfigRequest": {
        "properties": {
          "app_certificate": {
            "type": "string",
            "x-stream-index": "002"
          },
          "app_id": {
            "type": "string",
            "x-stream-index": "001"
          },
          "default_role": {
            "enum": [
              "attendee",
              "publisher",
              "subscriber",
              "admin"
            ],
            "type": "string",
            "x-stream-index": "003"
          },
          "role_map": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "x-stream-index": "004"
          }
        },
        "required": [
          "app_id",
          "app_certificate"
        ],
        "type": "object"
      },
      "ConnectRequest": {
        "properties": {
          "device": {
            "$ref": "#/components/schemas/DeviceFields",
            "x-stream-index": "001.002"
          },
          "user_details": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "user_details"
        ],
        "type": "object"
      },
      "CreateBlockListRequest": {
        "description": "Block list contains restricted words",
        "nullable": true,
        "properties": {
          "name": {
            "description": "Block list name",
            "maxLength": 255,
            "title": "Name",
            "type": "string",
            "x-stream-index": "001"
          },
          "words": {
            "description": "List of words to block",
            "items": {
              "type": "string"
            },
            "title": "Words",
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "name",
          "words"
        ],
        "title": "Block list",
        "type": "object",
        "x-stream-docs-page-id": "block_lists"
      },
      "CreateCallRequest": {
        "nullable": true,
        "properties": {
          "id": {
            "type": "string",
            "x-stream-index": "004"
          },
          "options": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "005"
          },
          "type": {
            "enum": [
              "audio",
              "video"
            ],
            "type": "string",
            "x-stream-index": "003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "**Server-side only**. User object which server acts upon",
            "title": "User",
            "x-stream-index": "006.002"
          },
          "user_id": {
            "description": "**Server-side only**. User ID which server acts upon",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "006.001"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "type": "object"
      },
      "CreateCallResponse": {
        "nullable": true,
        "properties": {
          "agora_app_id": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "agora_uid": {
            "type": "number",
            "x-stream-index": "002.002"
          },
          "call": {
            "$ref": "#/components/schemas/Call",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "token": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "token",
          "duration"
        ],
        "type": "object"
      },
      "CreateCampaignRequest": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/CampaignDataRequest",
            "x-stream-index": "001"
          }
        },
        "required": [
          "campaign"
        ],
        "type": "object"
      },
      "CreateCampaignResponse": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/Campaign",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "CreateChannelTypeRequest": {
        "nullable": true,
        "properties": {
          "automod": {
            "description": "Enables automatic message moderation",
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "title": "Auto moderation",
            "type": "string",
            "x-stream-index": "015"
          },
          "automod_behavior": {
            "description": "Sets behavior of automatic moderation",
            "enum": [
              "flag",
              "block"
            ],
            "title": "Auto moderation behavior",
            "type": "string",
            "x-stream-index": "016"
          },
          "blocklist": {
            "description": "Name of the blocklist to use",
            "title": "Blocklist",
            "type": "string",
            "x-stream-index": "020"
          },
          "blocklist_behavior": {
            "description": "Sets behavior of blocklist",
            "enum": [
              "flag",
              "block"
            ],
            "title": "Blocklist behavior",
            "type": "string",
            "x-stream-index": "021"
          },
          "commands": {
            "description": "List of commands that channel supports",
            "items": {
              "type": "string"
            },
            "title": "Commands",
            "type": "array",
            "x-stream-index": "017"
          },
          "connect_events": {
            "description": "Connect events support",
            "title": "Connect events",
            "type": "boolean",
            "x-stream-index": "004"
          },
          "custom_events": {
            "description": "Enables custom events",
            "title": "Custom events",
            "type": "boolean",
            "x-stream-index": "011"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "019"
          },
          "max_message_length": {
            "description": "Number of maximum message characters",
            "title": "Maximum message length",
            "type": "number",
            "x-stream-index": "014"
          },
          "message_retention": {
            "description": "Number of days to keep messages. 'infinite' disables retention",
            "title": "Message retention",
            "type": "string",
            "x-stream-index": "013"
          },
          "mutes": {
            "description": "Enables mutes",
            "title": "Mutes",
            "type": "boolean",
            "x-stream-index": "008"
          },
          "name": {
            "description": "Channel type name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "001"
          },
          "permissions": {
            "description": "List of permissions for the channel type",
            "items": {
              "$ref": "#/components/schemas/PolicyRequest"
            },
            "title": "Permissions",
            "type": "array",
            "x-stream-index": "018"
          },
          "push_notifications": {
            "description": "Enables push notifications",
            "title": "Push notifications",
            "type": "boolean",
            "x-stream-index": "012"
          },
          "reactions": {
            "description": "Enables message reactions",
            "title": "Reactions",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "read_events": {
            "description": "Read events support",
            "title": "Read events",
            "type": "boolean",
            "x-stream-index": "003"
          },
          "replies": {
            "description": "Enables message replies (threads)",
            "title": "Replies",
            "type": "boolean",
            "x-stream-index": "006"
          },
          "search": {
            "description": "Enables message search",
            "title": "Search",
            "type": "boolean",
            "x-stream-index": "007"
          },
          "typing_events": {
            "description": "Typing events support",
            "title": "Typing events",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "uploads": {
            "description": "Enables file uploads",
            "title": "Uploads",
            "type": "boolean",
            "x-stream-index": "009"
          },
          "url_enrichment": {
            "description": "Enables URL enrichment",
            "title": "URL enrichment",
            "type": "boolean",
            "x-stream-index": "010"
          }
        },
        "required": [
          "name",
          "automod"
        ],
        "type": "object"
      },
      "CreateChannelTypeResponse": {
        "nullable": true,
        "properties": {
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "001.001.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.001.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/Thresholds",
            "x-stream-index": "001.001.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "001.001.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "001.001.020"
          },
          "commands": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "001.001.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002.003"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "001.001.012"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "003"
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "001.001.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "001.001.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "001.001.009"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001.001.001"
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/PolicyRequest_1"
            },
            "type": "array",
            "x-stream-index": "002"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "001.001.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "001.001.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "001.001.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "001.001.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "001.001.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "001.001.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "001.001.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "001.001.002"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002.004"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "001.001.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "001.001.011"
          }
        },
        "required": [
          "name",
          "typing_events",
          "read_events",
          "connect_events",
          "search",
          "reactions",
          "replies",
          "quotes",
          "mutes",
          "uploads",
          "url_enrichment",
          "custom_events",
          "push_notifications",
          "reminders",
          "message_retention",
          "max_message_length",
          "automod",
          "automod_behavior",
          "created_at",
          "updated_at",
          "commands",
          "permissions",
          "grants",
          "duration"
        ],
        "type": "object"
      },
      "CreateCommandRequest": {
        "description": "Represents custom chat command",
        "nullable": true,
        "properties": {
          "args": {
            "description": "Arguments help text, shown in commands auto-completion",
            "maxLength": 255,
            "title": "Arguments",
            "type": "string",
            "x-stream-index": "003"
          },
          "description": {
            "description": "Description, shown in commands auto-completion",
            "maxLength": 255,
            "title": "Description",
            "type": "string",
            "x-stream-index": "002"
          },
          "name": {
            "description": "Unique command name",
            "maxLength": 255,
            "minLength": 1,
            "title": "Name",
            "type": "string",
            "x-stream-index": "001"
          },
          "set": {
            "description": "Set name used for grouping commands",
            "maxLength": 255,
            "title": "Set",
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "name",
          "description"
        ],
        "title": "Command",
        "type": "object"
      },
      "CreateCommandResponse": {
        "nullable": true,
        "properties": {
          "command": {
            "$ref": "#/components/schemas/Command",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "CreateDeviceRequest": {
        "nullable": true,
        "properties": {
          "id": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "x-stream-index": "001"
          },
          "push_provider": {
            "enum": [
              "firebase",
              "apn",
              "huawei",
              "xiaomi"
            ],
            "type": "string",
            "x-stream-index": "002"
          },
          "push_provider_name": {
            "type": "string",
            "x-stream-index": "003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "**Server-side only**. User object which server acts upon",
            "title": "User",
            "x-stream-index": "004.002"
          },
          "user_id": {
            "description": "**Server-side only**. User ID which server acts upon",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "004.001"
          }
        },
        "type": "object"
      },
      "CreateImportRequest": {
        "nullable": true,
        "properties": {
          "mode": {
            "enum": [
              "insert",
              "upsert"
            ],
            "type": "string",
            "x-stream-index": "002"
          },
          "path": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "CreateImportResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "import_task": {
            "$ref": "#/components/schemas/ImportTask",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "CreateImportURLRequest": {
        "nullable": true,
        "properties": {
          "filename": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "CreateImportURLResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "path": {
            "type": "string",
            "x-stream-index": "001"
          },
          "upload_url": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "path",
          "upload_url",
          "duration"
        ],
        "type": "object"
      },
      "CreateRoleRequest": {
        "nullable": true,
        "properties": {
          "name": {
            "description": "Role name",
            "maxLength": 64,
            "title": "Name",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CreateRoleResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          },
          "role": {
            "$ref": "#/components/schemas/Role",
            "x-stream-index": "002"
          }
        },
        "required": [
          "duration",
          "role"
        ],
        "type": "object"
      },
      "CreateSegmentRequest": {
        "nullable": true,
        "properties": {
          "segment": {
            "$ref": "#/components/schemas/SegmentDataRequest",
            "x-stream-index": "001"
          }
        },
        "required": [
          "segment"
        ],
        "type": "object"
      },
      "CreateSegmentResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "segment": {
            "$ref": "#/components/schemas/Segment",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "DeactivateUserRequest": {
        "nullable": true,
        "properties": {
          "created_by_id": {
            "description": "ID of the user who deactivated the user",
            "title": "Created by ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "mark_messages_deleted": {
            "description": "Makes messages appear to be deleted",
            "title": "Mark messages deleted",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user_id"
        ],
        "type": "object"
      },
      "DeactivateUserResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "DeactivateUsersRequest": {
        "nullable": true,
        "properties": {
          "created_by_id": {
            "description": "ID of the user who deactivated the users",
            "title": "Created by ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "mark_messages_deleted": {
            "description": "Makes messages appear to be deleted",
            "title": "Mark messages deleted",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "user_ids": {
            "description": "User IDs to deactivate",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "title": "User IDs",
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user_ids"
        ],
        "type": "object"
      },
      "DeactivateUsersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "task_id",
          "duration"
        ],
        "type": "object"
      },
      "DeleteCampaignResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "DeleteChannelResponse": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "DeleteChannelsRequest": {
        "nullable": true,
        "properties": {
          "cids": {
            "description": "All channels that should be deleted",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "title": "Channels CID",
            "type": "array",
            "x-stream-index": "001"
          },
          "hard_delete": {
            "description": "Specify if channels and all ressources should be hard deleted",
            "title": "Hard delete",
            "type": "boolean",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "DeleteChannelsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "result": {
            "additionalProperties": {
              "$ref": "#/components/schemas/DeleteChannelsResult"
            },
            "type": "object",
            "x-stream-index": "001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "DeleteChannelsResult": {
        "nullable": true,
        "properties": {
          "error": {
            "type": "string",
            "x-stream-index": "003"
          },
          "status": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "status"
        ],
        "type": "object"
      },
      "DeleteCommandResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "name",
          "duration"
        ],
        "type": "object"
      },
      "DeleteSegmentResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "DeleteUserResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "task_id",
          "duration"
        ],
        "type": "object"
      },
      "DeleteUsersRequest": {
        "nullable": true,
        "properties": {
          "conversations": {
            "description": "Conversation channels delete mode.\nConversation channel is any channel which only has two members one of which is the user being deleted.\n\n* null or empty string - doesn't delete any conversation channels\n* soft - marks all conversation channels as deleted (same effect as Delete Channels with 'hard' option disabled)\n* hard - deletes channel and all its data completely including messages (same effect as Delete Channels with 'hard' option enabled)\n",
            "enum": [
              "soft",
              "hard"
            ],
            "title": "Delete Conversations",
            "type": "string",
            "x-stream-index": "001.002.003"
          },
          "messages": {
            "description": "Message delete mode.\n\n* null or empty string - doesn't delete user messages\n* soft - marks all user messages as deleted without removing any related message data\n* pruning - marks all user messages as deleted, nullifies message information and removes some message data such as reactions and flags\n* hard - deletes messages completely with all related information\n",
            "enum": [
              "soft",
              "pruning",
              "hard"
            ],
            "title": "Delete Messages",
            "type": "string",
            "x-stream-index": "001.002.002"
          },
          "new_channel_owner_id": {
            "type": "string",
            "x-stream-index": "001.002.004"
          },
          "user": {
            "description": "User delete mode.\n\n* soft - marks user as deleted and retains all user data\n* pruning - marks user as deleted and nullifies user information\n* hard - deletes user completely. Requires 'hard' option for messages and conversations as well\n",
            "enum": [
              "soft",
              "pruning",
              "hard"
            ],
            "title": "Delete User",
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "user_ids": {
            "description": "IDs of users to delete",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "title": "User IDs",
            "type": "array",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "user_ids"
        ],
        "type": "object"
      },
      "DeleteUsersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "task_id",
          "duration"
        ],
        "type": "object"
      },
      "Device": {
        "nullable": true,
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "disabled": {
            "description": "Whether device is disabled or not",
            "title": "Disabled",
            "type": "boolean",
            "x-stream-index": "002.003"
          },
          "disabled_reason": {
            "description": "Reason explaining why device had been disabled",
            "title": "Reason",
            "type": "string",
            "x-stream-index": "002.004"
          },
          "id": {
            "type": "string",
            "x-stream-index": "002.001.004"
          },
          "push_provider": {
            "type": "string",
            "x-stream-index": "002.001.001"
          },
          "push_provider_name": {
            "type": "string",
            "x-stream-index": "002.001.003"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "push_provider",
          "id",
          "created_at",
          "user_id"
        ],
        "title": "Device",
        "type": "object"
      },
      "DeviceErrorInfo": {
        "properties": {
          "error_message": {
            "type": "string",
            "x-stream-index": "003"
          },
          "provider": {
            "type": "string",
            "x-stream-index": "001"
          },
          "provider_name": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "provider",
          "provider_name",
          "error_message"
        ],
        "type": "object"
      },
      "DeviceFields": {
        "properties": {
          "id": {
            "description": "Device ID",
            "title": "ID",
            "type": "string",
            "x-stream-index": "004"
          },
          "push_provider": {
            "enum": [
              "firebase",
              "apn",
              "huawei",
              "xiaomi"
            ],
            "title": "Push provider",
            "type": "string",
            "x-stream-index": "001"
          },
          "push_provider_name": {
            "description": "Name of the push provider configuration",
            "title": "Push provider name",
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "type": "object"
      },
      "DeviceRequest": {
        "nullable": true,
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "disabled": {
            "description": "Whether device is disabled or not",
            "title": "Disabled",
            "type": "boolean",
            "x-stream-index": "002.003"
          },
          "disabled_reason": {
            "description": "Reason explaining why device had been disabled",
            "title": "Reason",
            "type": "string",
            "x-stream-index": "002.004"
          },
          "id": {
            "type": "string",
            "x-stream-index": "002.001.004"
          },
          "push_provider": {
            "type": "string",
            "x-stream-index": "002.001.001"
          },
          "push_provider_name": {
            "type": "string",
            "x-stream-index": "002.001.003"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "title": "Device",
        "type": "object"
      },
      "ErrorResult": {
        "properties": {
          "description": {
            "x-stream-index": "002"
          },
          "stacktrace": {
            "type": "string",
            "x-stream-index": "003"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001"
          },
          "version": {
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "type",
          "description"
        ],
        "type": "object"
      },
      "Event": {
        "additionalProperties": true,
        "description": "Represents an BaseEvent that happened in Stream Chat",
        "properties": {
          "automoderation": {
            "description": "Only applicable to `message.flagged` BaseEvent.",
            "title": "Auto moderation",
            "type": "boolean",
            "x-stream-index": "016"
          },
          "automoderation_scores": {
            "$ref": "#/components/schemas/ModerationResponse",
            "description": "Only applicable to `message.flagged` BaseEvent.",
            "title": "Auto moderation scores",
            "x-stream-index": "017"
          },
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "008"
          },
          "channel_id": {
            "title": "Channel ID",
            "type": "string",
            "x-stream-index": "004"
          },
          "channel_type": {
            "title": "Channel type",
            "type": "string",
            "x-stream-index": "005"
          },
          "cid": {
            "description": "Channel CID (<type>:<id>)",
            "title": "CID",
            "type": "string",
            "x-stream-index": "003"
          },
          "connection_id": {
            "description": "Only applicable to `health.check` BaseEvent",
            "title": "Connection ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "021"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObject",
            "description": "User who issued moderation action. Only applicable to moderation-related events",
            "title": "Created by",
            "x-stream-index": "015"
          },
          "me": {
            "$ref": "#/components/schemas/OwnUser",
            "x-stream-index": "012"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "009"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "006"
          },
          "parent_id": {
            "description": "ID of thread. Used in typing events",
            "title": "Parent ID",
            "type": "string",
            "x-stream-index": "018"
          },
          "reaction": {
            "$ref": "#/components/schemas/Reaction",
            "x-stream-index": "007"
          },
          "reason": {
            "description": "Ban reason. Only applicable to `user.banned` BaseEvent",
            "title": "Reason",
            "type": "string",
            "x-stream-index": "014"
          },
          "team": {
            "type": "string",
            "x-stream-index": "019"
          },
          "type": {
            "description": "Event type. To use custom BaseEvent types see Custom Events documentation",
            "title": "Type",
            "type": "string",
            "x-stream-docs-page-id": "custom_events",
            "x-stream-index": "001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "010"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "011"
          },
          "watcher_count": {
            "description": "Number of watchers who received this BaseEvent",
            "title": "Watcher count",
            "type": "number",
            "x-stream-index": "013"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "Event",
        "type": "object",
        "x-stream-docs-page-id": "event_object"
      },
      "EventRequest": {
        "additionalProperties": true,
        "description": "Represents an BaseEvent that happened in Stream Chat",
        "properties": {
          "automoderation": {
            "description": "Only applicable to `message.flagged` BaseEvent.",
            "title": "Auto moderation",
            "type": "boolean",
            "x-stream-index": "016"
          },
          "automoderation_scores": {
            "$ref": "#/components/schemas/ModerationResponseRequest",
            "description": "Only applicable to `message.flagged` BaseEvent.",
            "title": "Auto moderation scores",
            "x-stream-index": "017"
          },
          "channel": {
            "$ref": "#/components/schemas/ChannelResponseRequest",
            "x-stream-index": "008"
          },
          "channel_id": {
            "title": "Channel ID",
            "type": "string",
            "x-stream-index": "004"
          },
          "channel_type": {
            "title": "Channel type",
            "type": "string",
            "x-stream-index": "005"
          },
          "cid": {
            "description": "Channel CID (<type>:<id>)",
            "title": "CID",
            "type": "string",
            "x-stream-index": "003"
          },
          "connection_id": {
            "description": "Only applicable to `health.check` BaseEvent",
            "title": "Connection ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "021"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "User who issued moderation action. Only applicable to moderation-related events",
            "title": "Created by",
            "x-stream-index": "015"
          },
          "me": {
            "$ref": "#/components/schemas/OwnUserRequest",
            "x-stream-index": "012"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMemberRequest",
            "x-stream-index": "009"
          },
          "message": {
            "$ref": "#/components/schemas/MessageRequest_1",
            "x-stream-index": "006"
          },
          "parent_id": {
            "description": "ID of thread. Used in typing events",
            "title": "Parent ID",
            "type": "string",
            "x-stream-index": "018"
          },
          "reaction": {
            "$ref": "#/components/schemas/ReactionRequest",
            "x-stream-index": "007"
          },
          "reason": {
            "description": "Ban reason. Only applicable to `user.banned` BaseEvent",
            "title": "Reason",
            "type": "string",
            "x-stream-index": "014"
          },
          "team": {
            "type": "string",
            "x-stream-index": "019"
          },
          "type": {
            "description": "Event type. To use custom BaseEvent types see Custom Events documentation",
            "title": "Type",
            "type": "string",
            "x-stream-docs-page-id": "custom_events",
            "x-stream-index": "001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "010"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "011"
          },
          "watcher_count": {
            "description": "Number of watchers who received this BaseEvent",
            "title": "Watcher count",
            "type": "number",
            "x-stream-index": "013"
          }
        },
        "required": [
          "type"
        ],
        "title": "Event",
        "type": "object",
        "x-stream-docs-page-id": "event_object"
      },
      "EventResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "event": {
            "$ref": "#/components/schemas/Event",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "ExportChannelsRequest": {
        "nullable": true,
        "properties": {
          "channels": {
            "description": "Export options for channels",
            "items": {
              "$ref": "#/components/schemas/ChannelExportRequest"
            },
            "maximum": 25,
            "minimum": 1,
            "title": "Channels",
            "type": "array",
            "x-stream-index": "002.001"
          },
          "clear_deleted_message_text": {
            "description": "Set if deleted message text should be cleared",
            "title": "Clear deleted message text",
            "type": "boolean",
            "x-stream-index": "002.002"
          },
          "export_users": {
            "type": "boolean",
            "x-stream-index": "002.004"
          },
          "include_truncated_messages": {
            "description": "Set if you want to include truncated messages",
            "title": "Include truncated messages",
            "type": "boolean",
            "x-stream-index": "002.003"
          },
          "version": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "ExportChannelsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "task_id",
          "duration"
        ],
        "type": "object"
      },
      "ExportChannelsResult": {
        "properties": {
          "path": {
            "description": "S3 path of result",
            "title": "Path",
            "type": "string",
            "x-stream-index": "002"
          },
          "s3_bucket_name": {
            "description": "S3 bucket name result",
            "title": "S3 bucket name",
            "type": "string",
            "x-stream-index": "003"
          },
          "url": {
            "description": "URL of result",
            "title": "URL",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "ExportUserResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "004.001"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "x-stream-index": "002"
          },
          "reactions": {
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "ExportUsersRequest": {
        "nullable": true,
        "properties": {
          "user_ids": {
            "items": {
              "type": "string"
            },
            "maximum": 25,
            "minimum": 1,
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user_ids"
        ],
        "type": "object"
      },
      "ExportUsersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "task_id",
          "duration"
        ],
        "type": "object"
      },
      "Field": {
        "nullable": true,
        "properties": {
          "short": {
            "type": "boolean",
            "x-stream-index": "003"
          },
          "title": {
            "type": "string",
            "x-stream-index": "001"
          },
          "value": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "title",
          "value",
          "short"
        ],
        "type": "object"
      },
      "FieldRequest": {
        "nullable": true,
        "properties": {
          "short": {
            "type": "boolean",
            "x-stream-index": "003"
          },
          "title": {
            "type": "string",
            "x-stream-index": "001"
          },
          "value": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "FileDeleteResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "FileUploadConfig": {
        "properties": {
          "allowed_file_extensions": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "allowed_mime_types": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "blocked_file_extensions": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "002"
          },
          "blocked_mime_types": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "004"
          }
        },
        "required": [
          "allowed_file_extensions",
          "blocked_file_extensions",
          "allowed_mime_types",
          "blocked_mime_types"
        ],
        "type": "object"
      },
      "FileUploadConfigRequest": {
        "properties": {
          "allowed_file_extensions": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "allowed_mime_types": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "blocked_file_extensions": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "002"
          },
          "blocked_mime_types": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "004"
          }
        },
        "type": "object"
      },
      "FileUploadRequest": {
        "nullable": true,
        "properties": {
          "file": {
            "description": "file field",
            "title": "File",
            "type": "string",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/OnlyUserIDRequest",
            "description": "user for the request **server side only**",
            "title": "User",
            "x-stream-index": "003"
          }
        },
        "type": "object"
      },
      "FileUploadResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "file": {
            "description": "URL to the uploaded asset. Should be used to put to `asset_url` attachment field",
            "title": "File",
            "type": "string",
            "x-stream-index": "002"
          },
          "thumb_url": {
            "description": "URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field",
            "title": "Thumbnail URL",
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "FirebaseConfigFields": {
        "properties": {
          "apn_template": {
            "type": "string",
            "x-stream-index": "004"
          },
          "credentials_json": {
            "type": "string",
            "x-stream-index": "006"
          },
          "data_template": {
            "type": "string",
            "x-stream-index": "003"
          },
          "enabled": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "notification_template": {
            "type": "string",
            "x-stream-index": "002"
          },
          "server_key": {
            "type": "string",
            "x-stream-index": "005"
          }
        },
        "required": [
          "enabled",
          "notification_template",
          "data_template",
          "apn_template"
        ],
        "type": "object"
      },
      "FirebaseConfigRequest": {
        "properties": {
          "Disabled": {
            "type": "boolean",
            "writeOnly": true,
            "x-stream-index": "001"
          },
          "apn_template": {
            "type": "string",
            "x-stream-index": "005"
          },
          "credentials_json": {
            "type": "string",
            "x-stream-index": "006"
          },
          "data_template": {
            "type": "string",
            "x-stream-index": "004"
          },
          "notification_template": {
            "type": "string",
            "x-stream-index": "003"
          },
          "server_key": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "Flag": {
        "description": "Contains information about flagged user or message",
        "properties": {
          "approved_at": {
            "description": "Date of the approval",
            "format": "date-time",
            "title": "Approved at",
            "type": "string",
            "x-stream-index": "015"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "011"
          },
          "created_by_automod": {
            "type": "boolean",
            "x-stream-index": "004"
          },
          "details": {
            "$ref": "#/components/schemas/FlagDetails",
            "x-stream-index": "020"
          },
          "rejected_at": {
            "description": "Date of the rejection",
            "format": "date-time",
            "title": "Rejected at",
            "type": "string",
            "x-stream-index": "016"
          },
          "reviewed_at": {
            "description": "Date of the review",
            "format": "date-time",
            "title": "Reviewed at",
            "type": "string",
            "x-stream-index": "013"
          },
          "target_message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "008"
          },
          "target_message_id": {
            "description": "ID of flagged message",
            "title": "Target Message ID",
            "type": "string",
            "x-stream-index": "007"
          },
          "target_user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Flagged user",
            "title": "User",
            "x-stream-index": "010"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "012"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "User who flagged a message or a user",
            "title": "User",
            "x-stream-index": "006"
          }
        },
        "required": [
          "created_by_automod",
          "created_at",
          "updated_at"
        ],
        "title": "Flag",
        "type": "object"
      },
      "FlagDetails": {
        "additionalProperties": true,
        "properties": {
          "automod": {
            "$ref": "#/components/schemas/AutomodDetails",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "FlagMessageDetails": {
        "properties": {
          "pin_changed": {
            "type": "boolean",
            "x-stream-index": "002"
          },
          "should_enrich": {
            "type": "boolean",
            "x-stream-index": "003"
          },
          "skip_push": {
            "type": "boolean",
            "x-stream-index": "004"
          },
          "updated_by_id": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "FlagRequest": {
        "nullable": true,
        "properties": {
          "target_message_id": {
            "description": "ID of the message when reporting a message",
            "title": "Target Message ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "target_user_id": {
            "description": "ID of the user when reporting a user",
            "title": "Target User ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "type": "object"
      },
      "FlagResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "flag": {
            "$ref": "#/components/schemas/Flag",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "GetApplicationResponse": {
        "nullable": true,
        "properties": {
          "app": {
            "$ref": "#/components/schemas/App",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "app",
          "duration"
        ],
        "type": "object"
      },
      "GetBlockListResponse": {
        "nullable": true,
        "properties": {
          "blocklist": {
            "$ref": "#/components/schemas/BlockList",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "GetCallTokenRequest": {
        "nullable": true,
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "**Server-side only**. User object which server acts upon",
            "title": "User",
            "x-stream-index": "002.002"
          },
          "user_id": {
            "description": "**Server-side only**. User ID which server acts upon",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "type": "object"
      },
      "GetCallTokenResponse": {
        "nullable": true,
        "properties": {
          "agora_app_id": {
            "type": "string",
            "x-stream-index": "001.003"
          },
          "agora_uid": {
            "type": "number",
            "x-stream-index": "001.002"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "token": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "token",
          "duration"
        ],
        "type": "object"
      },
      "GetCommandResponse": {
        "nullable": true,
        "properties": {
          "args": {
            "type": "string",
            "x-stream-index": "001.006"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.001"
          },
          "description": {
            "type": "string",
            "x-stream-index": "001.005"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "name": {
            "type": "string",
            "x-stream-index": "001.004"
          },
          "set": {
            "type": "string",
            "x-stream-index": "001.007"
          },
          "updated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.002"
          }
        },
        "required": [
          "name",
          "description",
          "args",
          "set",
          "duration"
        ],
        "type": "object"
      },
      "GetCustomPermissionResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "permission": {
            "$ref": "#/components/schemas/Permission",
            "x-stream-index": "001"
          }
        },
        "required": [
          "permission",
          "duration"
        ],
        "type": "object"
      },
      "GetExportChannelsStatusResponse": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.003"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "001.007.001"
          },
          "error": {
            "$ref": "#/components/schemas/ErrorResult",
            "description": "Contains task error in case of failure",
            "title": "Error",
            "x-stream-index": "003"
          },
          "result": {
            "$ref": "#/components/schemas/ExportChannelsResult",
            "description": "Contains task result in case of success",
            "title": "Result",
            "x-stream-index": "002"
          },
          "status": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.004"
          }
        },
        "required": [
          "task_id",
          "status",
          "created_at",
          "updated_at",
          "duration"
        ],
        "type": "object"
      },
      "GetImportResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "import_task": {
            "$ref": "#/components/schemas/ImportTask",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "GetManyMessagesResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "messages": {
            "description": "List of messages",
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "title": "Messages",
            "type": "array",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "messages",
          "duration"
        ],
        "type": "object"
      },
      "GetOGResponse": {
        "additionalProperties": true,
        "nullable": true,
        "properties": {
          "actions": {
            "items": {
              "$ref": "#/components/schemas/Action"
            },
            "type": "array",
            "x-stream-index": "001.015"
          },
          "asset_url": {
            "description": "URL of detected video or audio",
            "title": "Image URL",
            "type": "string",
            "x-stream-index": "001.017"
          },
          "author_icon": {
            "type": "string",
            "x-stream-index": "001.007"
          },
          "author_link": {
            "description": "og:site",
            "title": "Author Link",
            "type": "string",
            "x-stream-index": "001.006"
          },
          "author_name": {
            "description": "og:site_name",
            "title": "Author Name",
            "type": "string",
            "x-stream-index": "001.005"
          },
          "color": {
            "type": "string",
            "x-stream-index": "001.003"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "fallback": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "fields": {
            "items": {
              "$ref": "#/components/schemas/Field"
            },
            "type": "array",
            "x-stream-index": "001.016"
          },
          "footer": {
            "type": "string",
            "x-stream-index": "001.013"
          },
          "footer_icon": {
            "type": "string",
            "x-stream-index": "001.014"
          },
          "giphy": {
            "$ref": "#/components/schemas/Images",
            "x-stream-index": "001.019"
          },
          "image_url": {
            "description": "URL of detected image",
            "title": "Image URL",
            "type": "string",
            "x-stream-index": "001.011"
          },
          "og_scrape_url": {
            "description": "extracted url from the text",
            "title": "OG Scrape URL",
            "type": "string",
            "x-stream-index": "001.020"
          },
          "original_height": {
            "type": "number",
            "x-stream-index": "001.022"
          },
          "original_width": {
            "type": "number",
            "x-stream-index": "001.021"
          },
          "pretext": {
            "type": "string",
            "x-stream-index": "001.004"
          },
          "text": {
            "description": "og:description",
            "title": "Text",
            "type": "string",
            "x-stream-index": "001.010"
          },
          "thumb_url": {
            "description": "URL of detected thumb image",
            "title": "Image URL",
            "type": "string",
            "x-stream-index": "001.012"
          },
          "title": {
            "description": "og:title",
            "title": "Title",
            "type": "string",
            "x-stream-index": "001.008"
          },
          "title_link": {
            "description": "og:url",
            "title": "Title Link",
            "type": "string",
            "x-stream-index": "001.009"
          },
          "type": {
            "description": "Attachment type, could be empty, image, audio or video",
            "title": "Type",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "title": "Get OG Attachment",
        "type": "object",
        "x-stream-docs-page-id": "og"
      },
      "GetRateLimitsResponse": {
        "nullable": true,
        "properties": {
          "android": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LimitInfo"
            },
            "description": "Map of endpoint rate limits for the Android platform",
            "title": "Android",
            "type": "object",
            "x-stream-index": "002",
            "x-stream-map": {
              "description": "The name of the endpoint for which the limits apply",
              "key": "endpoint",
              "title": "Endpoint name"
            }
          },
          "duration": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "ios": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LimitInfo"
            },
            "description": "Map of endpoint rate limits for the iOS platform",
            "title": "iOS",
            "type": "object",
            "x-stream-index": "003",
            "x-stream-map": {
              "description": "The name of the endpoint for which the limits apply",
              "key": "endpoint",
              "title": "Endpoint name"
            }
          },
          "server_side": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LimitInfo"
            },
            "description": "Map of endpoint rate limits for the server-side platform",
            "title": "Server-side",
            "type": "object",
            "x-stream-index": "001",
            "x-stream-map": {
              "description": "The name of the endpoint for which the limits apply",
              "key": "endpoint",
              "title": "Endpoint name"
            }
          },
          "web": {
            "additionalProperties": {
              "$ref": "#/components/schemas/LimitInfo"
            },
            "description": "Map of endpoint rate limits for the web platform",
            "title": "Web",
            "type": "object",
            "x-stream-index": "004",
            "x-stream-map": {
              "description": "The name of the endpoint for which the limits apply",
              "key": "endpoint",
              "title": "Endpoint name"
            }
          }
        },
        "required": [
          "duration"
        ],
        "title": "Get Rate Limits Response",
        "type": "object",
        "x-stream-docs-page-id": "rate_limits"
      },
      "GetReactionsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "reactions": {
            "description": "List of reactions",
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "title": "Reactions",
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "reactions",
          "duration"
        ],
        "type": "object"
      },
      "GetRepliesResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "messages": {
            "description": "List of messages",
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "title": "Messages",
            "type": "array",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "messages",
          "duration"
        ],
        "type": "object"
      },
      "GetTaskResponse": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.003"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "error": {
            "$ref": "#/components/schemas/ErrorResult",
            "description": "Error produced by task",
            "title": "Error",
            "x-stream-index": "003"
          },
          "result": {
            "additionalProperties": {},
            "description": "Result produced by task after completion",
            "title": "Result",
            "type": "object",
            "x-stream-index": "002"
          },
          "status": {
            "description": "Current status of task",
            "title": "Status",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "task_id": {
            "description": "ID of task",
            "title": "Task ID",
            "type": "string",
            "x-stream-index": "001.001"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.004"
          }
        },
        "required": [
          "task_id",
          "status",
          "created_at",
          "updated_at",
          "duration"
        ],
        "title": "Get Task Response",
        "type": "object",
        "x-stream-docs-page-id": "tasks"
      },
      "GuestRequest": {
        "nullable": true,
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user"
        ],
        "type": "object"
      },
      "GuestResponse": {
        "nullable": true,
        "properties": {
          "access_token": {
            "description": "Authentication token to use for guest user",
            "title": "Access token",
            "type": "string",
            "x-stream-index": "002"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Created user object",
            "title": "User",
            "x-stream-index": "001"
          }
        },
        "required": [
          "access_token",
          "duration"
        ],
        "type": "object"
      },
      "HMSCall": {
        "properties": {
          "room_id": {
            "type": "string",
            "x-stream-index": "001"
          },
          "room_name": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "room_id",
          "room_name"
        ],
        "type": "object"
      },
      "HealthCheckEvent": {
        "properties": {
          "cid": {
            "type": "string",
            "x-stream-index": "001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "me": {
            "$ref": "#/components/schemas/OwnUser",
            "x-stream-index": "002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "cid",
          "type",
          "created_at"
        ],
        "title": "HealthCheckEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "HideChannelRequest": {
        "nullable": true,
        "properties": {
          "clear_history": {
            "description": "Whether to clear message history of the channel or not",
            "title": "Clear history",
            "type": "boolean",
            "x-stream-index": "001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "type": "object"
      },
      "HideChannelResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "HuaweiConfigFields": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "id": {
            "type": "string",
            "x-stream-index": "002"
          },
          "secret": {
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "required": [
          "enabled"
        ],
        "type": "object"
      },
      "HuaweiConfigRequest": {
        "properties": {
          "Disabled": {
            "type": "boolean",
            "writeOnly": true,
            "x-stream-index": "003"
          },
          "id": {
            "type": "string",
            "x-stream-index": "001"
          },
          "secret": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "ImageData": {
        "properties": {
          "frames": {
            "type": "string",
            "x-stream-index": "005"
          },
          "height": {
            "type": "string",
            "x-stream-index": "003"
          },
          "size": {
            "type": "string",
            "x-stream-index": "004"
          },
          "url": {
            "type": "string",
            "x-stream-index": "001"
          },
          "width": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "required": [
          "url",
          "width",
          "height",
          "size",
          "frames"
        ],
        "type": "object"
      },
      "ImageDataRequest": {
        "properties": {
          "frames": {
            "type": "string",
            "x-stream-index": "005"
          },
          "height": {
            "type": "string",
            "x-stream-index": "003"
          },
          "size": {
            "type": "string",
            "x-stream-index": "004"
          },
          "url": {
            "type": "string",
            "x-stream-index": "001"
          },
          "width": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "ImageSize": {
        "properties": {
          "crop": {
            "description": "Crop mode",
            "enum": [
              "top",
              "bottom",
              "left",
              "right",
              "center"
            ],
            "title": "Crop",
            "type": "string",
            "x-stream-index": "001"
          },
          "height": {
            "description": "Target image height",
            "title": "Height",
            "type": "number",
            "x-stream-index": "003"
          },
          "resize": {
            "description": "Resize method",
            "enum": [
              "clip",
              "crop",
              "scale",
              "fill"
            ],
            "title": "Resize",
            "type": "string",
            "x-stream-index": "002"
          },
          "width": {
            "description": "Target image width",
            "title": "Width",
            "type": "number",
            "x-stream-index": "004"
          }
        },
        "required": [
          "crop",
          "resize",
          "height",
          "width"
        ],
        "title": "Image size configuration",
        "type": "object"
      },
      "ImageSizeRequest": {
        "properties": {
          "crop": {
            "description": "Crop mode",
            "enum": [
              "top",
              "bottom",
              "left",
              "right",
              "center"
            ],
            "title": "Crop",
            "type": "string",
            "x-stream-index": "001"
          },
          "height": {
            "description": "Target image height",
            "title": "Height",
            "type": "number",
            "x-stream-index": "003"
          },
          "resize": {
            "description": "Resize method",
            "enum": [
              "clip",
              "crop",
              "scale",
              "fill"
            ],
            "title": "Resize",
            "type": "string",
            "x-stream-index": "002"
          },
          "width": {
            "description": "Target image width",
            "title": "Width",
            "type": "number",
            "x-stream-index": "004"
          }
        },
        "title": "Image size configuration",
        "type": "object"
      },
      "ImageUploadRequest": {
        "nullable": true,
        "properties": {
          "file": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "upload_sizes": {
            "description": "field with JSON-encoded array of image size configurations",
            "items": {
              "$ref": "#/components/schemas/ImageSizeRequest"
            },
            "title": "Upload sizes",
            "type": "array",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/OnlyUserIDRequest",
            "x-stream-index": "001.003"
          }
        },
        "type": "object"
      },
      "ImageUploadResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "001.001.001"
          },
          "file": {
            "description": "URL to the uploaded asset. Should be used to put to `asset_url` attachment field",
            "title": "File",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "thumb_url": {
            "description": "URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field",
            "title": "Thumbnail URL",
            "type": "string",
            "x-stream-index": "001.003"
          },
          "upload_sizes": {
            "items": {
              "$ref": "#/components/schemas/ImageSize"
            },
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "Images": {
        "properties": {
          "fixed_height": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "002"
          },
          "fixed_height_downsampled": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "004"
          },
          "fixed_height_still": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "003"
          },
          "fixed_width": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "005"
          },
          "fixed_width_downsampled": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "007"
          },
          "fixed_width_still": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "006"
          },
          "original": {
            "$ref": "#/components/schemas/ImageData",
            "x-stream-index": "001"
          }
        },
        "required": [
          "original",
          "fixed_height",
          "fixed_height_still",
          "fixed_height_downsampled",
          "fixed_width",
          "fixed_width_still",
          "fixed_width_downsampled"
        ],
        "type": "object"
      },
      "ImagesRequest": {
        "properties": {
          "fixed_height": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "002"
          },
          "fixed_height_downsampled": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "004"
          },
          "fixed_height_still": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "003"
          },
          "fixed_width": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "005"
          },
          "fixed_width_downsampled": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "007"
          },
          "fixed_width_still": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "006"
          },
          "original": {
            "$ref": "#/components/schemas/ImageDataRequest",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "ImportTask": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "011"
          },
          "history": {
            "items": {
              "$ref": "#/components/schemas/ImportTaskHistory"
            },
            "type": "array",
            "x-stream-index": "010"
          },
          "id": {
            "type": "string",
            "x-stream-index": "003"
          },
          "mode": {
            "type": "string",
            "x-stream-index": "006"
          },
          "path": {
            "type": "string",
            "x-stream-index": "005"
          },
          "result": {
            "x-stream-index": "009"
          },
          "size": {
            "type": "number",
            "x-stream-index": "007"
          },
          "state": {
            "type": "string",
            "x-stream-index": "008"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          }
        },
        "required": [
          "id",
          "path",
          "mode",
          "state",
          "history",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "ImportTaskHistory": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "next_state": {
            "type": "string",
            "x-stream-index": "006"
          },
          "prev_state": {
            "type": "string",
            "x-stream-index": "005"
          }
        },
        "required": [
          "prev_state",
          "next_state",
          "created_at"
        ],
        "type": "object"
      },
      "LabelThresholds": {
        "properties": {
          "block": {
            "description": "Threshold for automatic message block",
            "format": "float",
            "maximum": 1,
            "minimum": 0,
            "title": "Block",
            "type": "number",
            "x-stream-index": "002"
          },
          "flag": {
            "description": "Threshold for automatic message flag",
            "format": "float",
            "maximum": 1,
            "minimum": 0,
            "title": "Flag",
            "type": "number",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "LabelThresholdsRequest": {
        "properties": {
          "block": {
            "description": "Threshold for automatic message block",
            "format": "float",
            "maximum": 1,
            "minimum": 0,
            "title": "Block",
            "type": "number",
            "x-stream-index": "002"
          },
          "flag": {
            "description": "Threshold for automatic message flag",
            "format": "float",
            "maximum": 1,
            "minimum": 0,
            "title": "Flag",
            "type": "number",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "LimitInfo": {
        "properties": {
          "limit": {
            "description": "The maximum number of calls allowed for the time window",
            "title": "Limit",
            "type": "number",
            "x-stream-index": "001"
          },
          "remaining": {
            "description": "The number of remaining calls in the current window",
            "title": "Remaining",
            "type": "number",
            "x-stream-index": "002"
          },
          "reset": {
            "description": "The Unix timestamp of the next window",
            "title": "Reset",
            "type": "number",
            "x-stream-index": "003"
          }
        },
        "required": [
          "limit",
          "remaining",
          "reset"
        ],
        "title": "Rate Limit info",
        "type": "object",
        "x-stream-docs-page-id": "rate_limits"
      },
      "ListBlockListResponse": {
        "nullable": true,
        "properties": {
          "blocklists": {
            "items": {
              "$ref": "#/components/schemas/BlockList"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "blocklists",
          "duration"
        ],
        "type": "object"
      },
      "ListChannelTypesResponse": {
        "nullable": true,
        "properties": {
          "channel_types": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ChannelTypeConfig"
            },
            "description": "Object with all channel types",
            "title": "Channel types",
            "type": "object",
            "x-stream-index": "001",
            "x-stream-map": {
              "description": "Channel type config object",
              "key": "channel_type",
              "title": "Channel type"
            }
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "channel_types",
          "duration"
        ],
        "type": "object"
      },
      "ListCommandsResponse": {
        "nullable": true,
        "properties": {
          "commands": {
            "items": {
              "$ref": "#/components/schemas/Command"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "commands",
          "duration"
        ],
        "type": "object"
      },
      "ListDevicesResponse": {
        "nullable": true,
        "properties": {
          "devices": {
            "description": "List of devices",
            "items": {
              "$ref": "#/components/schemas/Device"
            },
            "title": "Devices",
            "type": "array",
            "x-stream-index": "001"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "devices",
          "duration"
        ],
        "type": "object"
      },
      "ListImportsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "import_tasks": {
            "items": {
              "$ref": "#/components/schemas/ImportTask"
            },
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "import_tasks",
          "duration"
        ],
        "type": "object"
      },
      "ListPermissionsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "permissions",
          "duration"
        ],
        "type": "object"
      },
      "ListPushProvidersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "push_providers": {
            "items": {
              "$ref": "#/components/schemas/PushProvider"
            },
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "push_providers",
          "duration"
        ],
        "type": "object"
      },
      "ListRolesResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "roles": {
            "items": {
              "$ref": "#/components/schemas/Role"
            },
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "roles",
          "duration"
        ],
        "type": "object"
      },
      "MarkChannelsReadRequest": {
        "nullable": true,
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "002.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "type": "object"
      },
      "MarkReadRequest": {
        "nullable": true,
        "properties": {
          "message_id": {
            "description": "ID of the message that is considered last read by client",
            "title": "Message ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "type": "object"
      },
      "MarkReadResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "event": {
            "$ref": "#/components/schemas/Event",
            "description": "Mark read event",
            "title": "Event",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "MarkUnreadRequest": {
        "nullable": true,
        "properties": {
          "message_id": {
            "description": "ID of the message from where the channel is marked unread",
            "title": "Message ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "message_id"
        ],
        "type": "object"
      },
      "MemberAddedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "001.001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "005.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "MemberAddedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MemberRemovedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "001.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "MemberRemovedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MemberUpdatedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "005.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "005.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "001.001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "MemberUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MembersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "members": {
            "description": "List of found members",
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "title": "Members",
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "members",
          "duration"
        ],
        "type": "object"
      },
      "Message": {
        "additionalProperties": true,
        "description": "Represents any chat message",
        "nullable": true,
        "properties": {
          "attachments": {
            "description": "Array of message attachments",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "title": "Message attachments",
            "type": "array",
            "x-stream-docs-page-id": "message_format#attachment-format",
            "x-stream-index": "011"
          },
          "before_message_send_failed": {
            "description": "Whether `before_message_send webhook` failed or not. Field is only accessible in push webhook",
            "title": "Before Message Send Failed",
            "type": "boolean",
            "x-stream-docs-page-id": "before_message_send_webhook",
            "x-stream-index": "041"
          },
          "cid": {
            "description": "Channel unique identifier in <type>:<id> format",
            "title": "Channel CID",
            "type": "string",
            "x-stream-index": "025"
          },
          "command": {
            "description": "Contains provided slash command",
            "title": "Command",
            "type": "string",
            "x-stream-docs-page-id": "custom_commands_webhook",
            "x-stream-index": "006"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "027"
          },
          "deleted_at": {
            "description": "Date/time of deletion",
            "format": "date-time",
            "title": "Deleted at",
            "type": "string",
            "x-stream-index": "029"
          },
          "html": {
            "description": "Contains HTML markup of the message. Can only be set when using server-side API",
            "title": "HTML content",
            "type": "string",
            "x-stream-index": "007"
          },
          "i18n": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Object with translations. Key `language` contains the original language key. Other keys contain translations",
            "title": "Internationalization info",
            "type": "object",
            "x-stream-docs-page-id": "translation",
            "x-stream-index": "039"
          },
          "id": {
            "description": "Message ID is unique string identifier of the message",
            "title": "ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "image_labels": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "Contains image moderation information",
            "title": "Image moderation labels",
            "type": "object",
            "x-stream-index": "035"
          },
          "latest_reactions": {
            "description": "List of 10 latest reactions to this message",
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "title": "Latest reactions",
            "type": "array",
            "x-stream-index": "012"
          },
          "mentioned_users": {
            "description": "List of mentioned users",
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "title": "Mentioned Users",
            "type": "array",
            "x-stream-index": "038"
          },
          "mml": {
            "description": "Should be empty if `text` is provided. Can only be set when using server-side API",
            "title": "Messaging Markup Language",
            "type": "string",
            "x-stream-docs-page-id": "mml_overview",
            "x-stream-index": "005"
          },
          "own_reactions": {
            "description": "List of 10 latest reactions of authenticated user to this message",
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "title": "Own reactions",
            "type": "array",
            "x-stream-index": "013"
          },
          "parent_id": {
            "description": "ID of parent message (thread)",
            "title": "Parent message ID",
            "type": "string",
            "x-stream-docs-page-id": "threads",
            "x-stream-index": "017"
          },
          "pin_expires": {
            "description": "Date when pinned message expires",
            "format": "date-time",
            "title": "Pin expiration date",
            "type": "string",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "046"
          },
          "pinned": {
            "description": "Whether message is pinned or not",
            "title": "Pinned",
            "type": "boolean",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "042"
          },
          "pinned_at": {
            "description": "Date when message got pinned",
            "format": "date-time",
            "title": "Pinned at",
            "type": "string",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "043"
          },
          "pinned_by": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Contains user who pinned the message",
            "title": "Pinned by",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "045"
          },
          "quoted_message": {
            "$ref": "#/components/schemas/Message",
            "description": "Contains quoted message",
            "title": "Quoted message",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "022"
          },
          "quoted_message_id": {
            "title": "ID of quoted message",
            "type": "string",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "021"
          },
          "reaction_counts": {
            "additionalProperties": {
              "type": "number"
            },
            "description": "An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)",
            "title": "Reaction counts",
            "type": "object",
            "x-stream-index": "014"
          },
          "reaction_scores": {
            "additionalProperties": {
              "type": "number"
            },
            "description": "An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)",
            "title": "Reaction scores",
            "type": "object",
            "x-stream-index": "015"
          },
          "reply_count": {
            "description": "Number of replies to this message",
            "title": "Reply count",
            "type": "number",
            "x-stream-index": "020"
          },
          "shadowed": {
            "description": "Whether the message was shadowed or not",
            "title": "Shadowed",
            "type": "boolean",
            "x-stream-docs-page-id": "moderation#shadow-ban",
            "x-stream-index": "031"
          },
          "show_in_channel": {
            "description": "Whether thread reply should be shown in the channel as well",
            "title": "Show in channel",
            "type": "boolean",
            "x-stream-docs-page-id": "threads",
            "x-stream-index": "019"
          },
          "silent": {
            "description": "Whether message is silent or not",
            "title": "Silent",
            "type": "boolean",
            "x-stream-index": "040"
          },
          "text": {
            "description": "Text of the message. Should be empty if `mml` is provided",
            "title": "Text",
            "type": "string",
            "x-stream-index": "004"
          },
          "thread_participants": {
            "description": "List of users who participate in thread",
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "title": "Thread participants",
            "type": "array",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "024"
          },
          "type": {
            "description": "Contains type of the message",
            "enum": [
              "regular",
              "ephemeral",
              "error",
              "reply",
              "system",
              "deleted"
            ],
            "title": "Message Type",
            "type": "string",
            "x-stream-docs-page-id": "message_format#message-types",
            "x-stream-index": "008"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "028"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Sender of the message. Required when using server-side API",
            "title": "User object",
            "x-stream-index": "010"
          }
        },
        "required": [
          "id",
          "text",
          "html",
          "type",
          "attachments",
          "latest_reactions",
          "own_reactions",
          "reaction_counts",
          "reaction_scores",
          "reply_count",
          "cid",
          "created_at",
          "updated_at",
          "shadowed",
          "mentioned_users",
          "silent",
          "pinned"
        ],
        "title": "Message",
        "type": "object",
        "x-stream-docs-page-id": "send_message"
      },
      "MessageActionRequest": {
        "nullable": true,
        "properties": {
          "ID": {
            "type": "string",
            "writeOnly": true,
            "x-stream-index": "001"
          },
          "form_data": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Data to execute command with",
            "title": "Form data",
            "type": "object",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "form_data"
        ],
        "type": "object"
      },
      "MessageDeletedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.002"
          },
          "hard_delete": {
            "type": "boolean",
            "x-stream-index": "002.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "hard_delete",
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "MessageDeletedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MessageFlag": {
        "nullable": true,
        "properties": {
          "approved_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "009"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "005"
          },
          "created_by_automod": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "004"
          },
          "moderation_result": {
            "$ref": "#/components/schemas/MessageModerationResult",
            "x-stream-index": "002"
          },
          "rejected_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "reviewed_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "reviewed_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "008"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003"
          }
        },
        "required": [
          "created_by_automod",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "MessageFlaggedEvent": {
        "nullable": true,
        "properties": {
          "cid": {
            "type": "string",
            "x-stream-index": "001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "005.002"
          },
          "flag": {
            "$ref": "#/components/schemas/Flag",
            "x-stream-index": "003.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "002.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004"
          }
        },
        "required": [
          "cid",
          "type",
          "created_at"
        ],
        "title": "MessageFlaggedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MessageModerationResult": {
        "properties": {
          "action": {
            "type": "string",
            "x-stream-index": "004"
          },
          "ai_moderation_response": {
            "$ref": "#/components/schemas/ModerationResponse",
            "x-stream-index": "009"
          },
          "blocked_word": {
            "type": "string",
            "x-stream-index": "006"
          },
          "blocklist_name": {
            "type": "string",
            "x-stream-index": "007"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          },
          "message_id": {
            "type": "string",
            "x-stream-index": "003"
          },
          "moderated_by": {
            "type": "string",
            "x-stream-index": "005"
          },
          "moderation_thresholds": {
            "$ref": "#/components/schemas/Thresholds",
            "x-stream-index": "008"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "013"
          },
          "user_bad_karma": {
            "type": "boolean",
            "x-stream-index": "011"
          },
          "user_karma": {
            "format": "float",
            "type": "number",
            "x-stream-index": "010"
          }
        },
        "required": [
          "message_id",
          "action",
          "user_karma",
          "user_bad_karma",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "MessageNewEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "005.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "005.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          },
          "watcher_count": {
            "type": "number",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "watcher_count",
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "MessageNewEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MessagePaginationParamsRequest": {
        "properties": {
          "created_at_after": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008"
          },
          "created_at_after_or_equal": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "created_at_around": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          },
          "created_at_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "created_at_before_or_equal": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "009"
          },
          "id_around": {
            "type": "string",
            "x-stream-index": "011"
          },
          "id_gt": {
            "type": "string",
            "x-stream-index": "004"
          },
          "id_gte": {
            "type": "string",
            "x-stream-index": "003"
          },
          "id_lt": {
            "type": "string",
            "x-stream-index": "006"
          },
          "id_lte": {
            "type": "string",
            "x-stream-index": "005"
          },
          "limit": {
            "minimum": 0,
            "type": "number",
            "x-stream-index": "001"
          },
          "offset": {
            "type": "number",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "MessageReadEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "MessageReadEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MessageRequest": {
        "additionalProperties": true,
        "description": "Represents any chat message",
        "properties": {
          "attachments": {
            "description": "Array of message attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequest"
            },
            "maximum": 10,
            "title": "Message attachments",
            "type": "array",
            "x-stream-docs-page-id": "message_format#attachment-format",
            "x-stream-index": "005"
          },
          "cid": {
            "description": "Channel unique identifier in <type>:<id> format",
            "items": {
              "type": "number"
            },
            "title": "Channel CID",
            "type": "array",
            "x-stream-index": "027"
          },
          "html": {
            "description": "Contains HTML markup of the message. Can only be set when using server-side API",
            "title": "HTML content",
            "type": "string",
            "x-stream-index": "016"
          },
          "id": {
            "description": "Message ID is unique string identifier of the message",
            "maxLength": 255,
            "title": "ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "mentioned_users": {
            "description": "List of mentioned users",
            "items": {
              "type": "string"
            },
            "maximum": 25,
            "title": "Mentioned Users",
            "type": "array",
            "x-stream-index": "009"
          },
          "mml": {
            "description": "Should be empty if `text` is provided. Can only be set when using server-side API",
            "title": "Messaging Markup Language",
            "type": "string",
            "x-stream-docs-page-id": "mml_overview",
            "x-stream-index": "003"
          },
          "parent": {
            "items": {
              "type": "number"
            },
            "type": "array",
            "x-stream-index": "007"
          },
          "parent_id": {
            "description": "ID of parent message (thread)",
            "title": "Parent message ID",
            "type": "string",
            "x-stream-docs-page-id": "threads",
            "x-stream-index": "006"
          },
          "pin_expires": {
            "description": "Date when pinned message expires",
            "format": "date-time",
            "title": "Pin expiration date",
            "type": "string",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "035"
          },
          "pinned": {
            "description": "Whether message is pinned or not",
            "title": "Pinned",
            "type": "boolean",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "034"
          },
          "pinned_at": {
            "description": "Date when message got pinned",
            "format": "date-time",
            "nullable": true,
            "title": "Pinned at",
            "type": "string",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "037"
          },
          "pinned_by": {
            "description": "Contains user who pinned the message",
            "items": {
              "type": "number"
            },
            "title": "Pinned by",
            "type": "array",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "036"
          },
          "quoted_message_id": {
            "title": "ID of quoted message",
            "type": "string",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "024"
          },
          "reaction_scores": {
            "description": "An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)",
            "items": {
              "type": "number"
            },
            "title": "Reaction scores",
            "type": "array",
            "x-stream-index": "022"
          },
          "show_in_channel": {
            "description": "Whether thread reply should be shown in the channel as well",
            "title": "Show in channel",
            "type": "boolean",
            "x-stream-docs-page-id": "threads",
            "x-stream-index": "008"
          },
          "silent": {
            "description": "Whether message is silent or not",
            "title": "Silent",
            "type": "boolean",
            "x-stream-index": "032"
          },
          "text": {
            "description": "Text of the message. Should be empty if `mml` is provided",
            "title": "Text",
            "type": "string",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "Sender of the message. Required when using server-side API",
            "title": "User object",
            "x-stream-index": "004"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "012"
          }
        },
        "required": [
          "attachments"
        ],
        "title": "Message",
        "type": "object",
        "x-stream-docs-page-id": "send_message"
      },
      "MessageRequest_1": {
        "additionalProperties": true,
        "description": "Represents any chat message",
        "properties": {
          "attachments": {
            "description": "Array of message attachments",
            "items": {
              "$ref": "#/components/schemas/AttachmentRequest"
            },
            "title": "Message attachments",
            "type": "array",
            "x-stream-docs-page-id": "message_format#attachment-format",
            "x-stream-index": "011"
          },
          "before_message_send_failed": {
            "description": "Whether `before_message_send webhook` failed or not. Field is only accessible in push webhook",
            "title": "Before Message Send Failed",
            "type": "boolean",
            "x-stream-docs-page-id": "before_message_send_webhook",
            "x-stream-index": "041"
          },
          "cid": {
            "description": "Channel unique identifier in <type>:<id> format",
            "title": "Channel CID",
            "type": "string",
            "x-stream-index": "025"
          },
          "command": {
            "description": "Contains provided slash command",
            "title": "Command",
            "type": "string",
            "x-stream-docs-page-id": "custom_commands_webhook",
            "x-stream-index": "006"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "027"
          },
          "deleted_at": {
            "description": "Date/time of deletion",
            "format": "date-time",
            "title": "Deleted at",
            "type": "string",
            "x-stream-index": "029"
          },
          "html": {
            "description": "Contains HTML markup of the message. Can only be set when using server-side API",
            "title": "HTML content",
            "type": "string",
            "x-stream-index": "007"
          },
          "i18n": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Object with translations. Key `language` contains the original language key. Other keys contain translations",
            "title": "Internationalization info",
            "type": "object",
            "x-stream-docs-page-id": "translation",
            "x-stream-index": "039"
          },
          "id": {
            "description": "Message ID is unique string identifier of the message",
            "title": "ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "image_labels": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "description": "Contains image moderation information",
            "title": "Image moderation labels",
            "type": "object",
            "x-stream-index": "035"
          },
          "latest_reactions": {
            "description": "List of 10 latest reactions to this message",
            "items": {
              "$ref": "#/components/schemas/ReactionRequest"
            },
            "title": "Latest reactions",
            "type": "array",
            "x-stream-index": "012"
          },
          "mentioned_users": {
            "description": "List of mentioned users",
            "items": {
              "$ref": "#/components/schemas/UserObjectRequest"
            },
            "title": "Mentioned Users",
            "type": "array",
            "x-stream-index": "038"
          },
          "mml": {
            "description": "Should be empty if `text` is provided. Can only be set when using server-side API",
            "title": "Messaging Markup Language",
            "type": "string",
            "x-stream-docs-page-id": "mml_overview",
            "x-stream-index": "005"
          },
          "own_reactions": {
            "description": "List of 10 latest reactions of authenticated user to this message",
            "items": {
              "$ref": "#/components/schemas/ReactionRequest"
            },
            "title": "Own reactions",
            "type": "array",
            "x-stream-index": "013"
          },
          "parent_id": {
            "description": "ID of parent message (thread)",
            "title": "Parent message ID",
            "type": "string",
            "x-stream-docs-page-id": "threads",
            "x-stream-index": "017"
          },
          "pin_expires": {
            "description": "Date when pinned message expires",
            "format": "date-time",
            "title": "Pin expiration date",
            "type": "string",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "046"
          },
          "pinned": {
            "description": "Whether message is pinned or not",
            "title": "Pinned",
            "type": "boolean",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "042"
          },
          "pinned_at": {
            "description": "Date when message got pinned",
            "format": "date-time",
            "title": "Pinned at",
            "type": "string",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "043"
          },
          "pinned_by": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "Contains user who pinned the message",
            "title": "Pinned by",
            "x-stream-docs-page-id": "pinned_messages",
            "x-stream-index": "045"
          },
          "quoted_message": {
            "$ref": "#/components/schemas/MessageRequest_1",
            "description": "Contains quoted message",
            "title": "Quoted message",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "022"
          },
          "quoted_message_id": {
            "title": "ID of quoted message",
            "type": "string",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "021"
          },
          "reaction_counts": {
            "additionalProperties": {
              "type": "number"
            },
            "description": "An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)",
            "title": "Reaction counts",
            "type": "object",
            "x-stream-index": "014"
          },
          "reaction_scores": {
            "additionalProperties": {
              "type": "number"
            },
            "description": "An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)",
            "title": "Reaction scores",
            "type": "object",
            "x-stream-index": "015"
          },
          "reply_count": {
            "description": "Number of replies to this message",
            "title": "Reply count",
            "type": "number",
            "x-stream-index": "020"
          },
          "shadowed": {
            "description": "Whether the message was shadowed or not",
            "title": "Shadowed",
            "type": "boolean",
            "x-stream-docs-page-id": "moderation#shadow-ban",
            "x-stream-index": "031"
          },
          "show_in_channel": {
            "description": "Whether thread reply should be shown in the channel as well",
            "title": "Show in channel",
            "type": "boolean",
            "x-stream-docs-page-id": "threads",
            "x-stream-index": "019"
          },
          "silent": {
            "description": "Whether message is silent or not",
            "title": "Silent",
            "type": "boolean",
            "x-stream-index": "040"
          },
          "text": {
            "description": "Text of the message. Should be empty if `mml` is provided",
            "title": "Text",
            "type": "string",
            "x-stream-index": "004"
          },
          "thread_participants": {
            "description": "List of users who participate in thread",
            "items": {
              "$ref": "#/components/schemas/UserObjectRequest"
            },
            "title": "Thread participants",
            "type": "array",
            "x-stream-docs-page-id": "threads#quote-message",
            "x-stream-index": "024"
          },
          "type": {
            "description": "Contains type of the message",
            "enum": [
              "regular",
              "ephemeral",
              "error",
              "reply",
              "system",
              "deleted"
            ],
            "title": "Message Type",
            "type": "string",
            "x-stream-docs-page-id": "message_format#message-types",
            "x-stream-index": "008"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "028"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "Sender of the message. Required when using server-side API",
            "title": "User object",
            "x-stream-index": "010"
          }
        },
        "required": [
          "text",
          "mml"
        ],
        "title": "Message",
        "type": "object",
        "x-stream-docs-page-id": "send_message"
      },
      "MessageResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "MessageUnblockedEvent": {
        "properties": {
          "cid": {
            "type": "string",
            "x-stream-index": "001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "002.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "cid",
          "type",
          "created_at"
        ],
        "title": "MessageUnblockedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MessageUpdatedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "005.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "005.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "MessageUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "MessageWithPendingMetadataResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.001"
          },
          "pending_message_metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata attached to a message while it is pending",
            "title": "Pending message metadata",
            "type": "object",
            "x-stream-index": "002"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "ModerationResponse": {
        "properties": {
          "action": {
            "type": "string",
            "x-stream-index": "004"
          },
          "explicit": {
            "format": "float",
            "type": "number",
            "x-stream-index": "002"
          },
          "spam": {
            "format": "float",
            "type": "number",
            "x-stream-index": "003"
          },
          "toxic": {
            "format": "float",
            "type": "number",
            "x-stream-index": "001"
          }
        },
        "required": [
          "toxic",
          "explicit",
          "spam",
          "action"
        ],
        "type": "object"
      },
      "ModerationResponseRequest": {
        "properties": {
          "action": {
            "type": "string",
            "x-stream-index": "004"
          },
          "explicit": {
            "format": "float",
            "type": "number",
            "x-stream-index": "002"
          },
          "spam": {
            "format": "float",
            "type": "number",
            "x-stream-index": "003"
          },
          "toxic": {
            "format": "float",
            "type": "number",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "MuteChannelRequest": {
        "nullable": true,
        "properties": {
          "channel_cids": {
            "description": "Channel CIDs to mute (if multiple channels)",
            "items": {
              "type": "string"
            },
            "maximum": 25,
            "title": "Channel CIDs",
            "type": "array",
            "x-stream-index": "002"
          },
          "expiration": {
            "description": "Duration of mute in milliseconds",
            "title": "Expiration",
            "type": "number",
            "x-stream-index": "003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "004.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "channel_cid",
          "channel_cids"
        ],
        "type": "object"
      },
      "MuteChannelResponse": {
        "nullable": true,
        "properties": {
          "channel_mute": {
            "$ref": "#/components/schemas/ChannelMute",
            "description": "Object with channel mute (if one channel was muted)",
            "title": "Channel mute",
            "x-stream-index": "001"
          },
          "channel_mutes": {
            "description": "Object with mutes (if multiple channels were muted)",
            "items": {
              "$ref": "#/components/schemas/ChannelMute"
            },
            "title": "Channel mutes",
            "type": "array",
            "x-stream-index": "002"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "own_user": {
            "$ref": "#/components/schemas/OwnUser",
            "description": "Authorized user object with fresh mutes information",
            "title": "Own user",
            "x-stream-index": "003"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "MuteUserRequest": {
        "nullable": true,
        "properties": {
          "target_ids": {
            "description": "User IDs to mute (if multiple users)",
            "items": {
              "type": "string"
            },
            "maximum": 1000,
            "title": "Target IDs",
            "type": "array",
            "x-stream-index": "002"
          },
          "timeout": {
            "description": "Duration of mute in minutes",
            "minimum": 0,
            "title": "Timeout",
            "type": "number",
            "x-stream-index": "003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "004.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "target_id",
          "target_ids"
        ],
        "type": "object"
      },
      "MuteUserResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "mute": {
            "$ref": "#/components/schemas/UserMute",
            "description": "Object with user mute (if one user was muted)",
            "title": "Mute",
            "x-stream-index": "001"
          },
          "mutes": {
            "description": "Object with mutes (if multiple users were muted)",
            "items": {
              "$ref": "#/components/schemas/UserMute"
            },
            "title": "Mutes",
            "type": "array",
            "x-stream-index": "002"
          },
          "own_user": {
            "$ref": "#/components/schemas/OwnUser",
            "description": "Authorized user object with fresh mutes information",
            "title": "Own user",
            "x-stream-index": "003"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "NotificationAddedToChannelEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "003.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "001.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationAddedToChannelEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationChannelDeletedEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "003.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationChannelDeletedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationChannelMutesUpdatedEvent": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "me": {
            "$ref": "#/components/schemas/OwnUser",
            "x-stream-index": "001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "me",
          "type",
          "created_at"
        ],
        "title": "NotificationChannelMutesUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationChannelTruncatedEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationChannelTruncatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationInviteAcceptedEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "004.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationInviteAcceptedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationInviteRejectedEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "004.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationInviteRejectedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationInvitedEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "004.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationInvitedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationMarkReadEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "003.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "total_unread_count": {
            "type": "number",
            "x-stream-index": "006"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "unread_channels": {
            "type": "number",
            "x-stream-index": "007"
          },
          "unread_count": {
            "type": "number",
            "x-stream-index": "005"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type",
          "unread_count",
          "total_unread_count",
          "unread_channels"
        ],
        "title": "NotificationMarkReadEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationMarkUnreadEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "003.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "total_unread_count": {
            "type": "number",
            "x-stream-index": "006"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "unread_channels": {
            "type": "number",
            "x-stream-index": "007"
          },
          "unread_count": {
            "type": "number",
            "x-stream-index": "005"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type",
          "unread_count",
          "total_unread_count",
          "unread_channels"
        ],
        "title": "NotificationMarkUnreadEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationMutesUpdatedEvent": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "me": {
            "$ref": "#/components/schemas/OwnUser",
            "x-stream-index": "001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "me",
          "type",
          "created_at"
        ],
        "title": "NotificationMutesUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationNewMessageEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "004.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "message",
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationNewMessageEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "NotificationRemovedFromChannelEvent": {
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002.004"
          },
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "member": {
            "$ref": "#/components/schemas/ChannelMember",
            "x-stream-index": "004.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "NotificationRemovedFromChannelEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "OnlyUserIDRequest": {
        "properties": {
          "id": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "OwnUser": {
        "additionalProperties": true,
        "properties": {
          "banned": {
            "type": "boolean",
            "x-stream-index": "014"
          },
          "channel_mutes": {
            "items": {
              "$ref": "#/components/schemas/ChannelMute"
            },
            "type": "array",
            "x-stream-index": "026"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "deactivated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "011"
          },
          "devices": {
            "items": {
              "$ref": "#/components/schemas/Device"
            },
            "type": "array",
            "x-stream-index": "024"
          },
          "id": {
            "type": "string",
            "x-stream-index": "003"
          },
          "invisible": {
            "type": "boolean",
            "x-stream-index": "021"
          },
          "language": {
            "type": "string",
            "x-stream-index": "030"
          },
          "last_active": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "latest_hidden_channels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "032"
          },
          "mutes": {
            "items": {
              "$ref": "#/components/schemas/UserMute"
            },
            "type": "array",
            "x-stream-index": "025"
          },
          "online": {
            "type": "boolean",
            "x-stream-index": "020"
          },
          "push_notifications": {
            "$ref": "#/components/schemas/PushNotificationSettings",
            "x-stream-index": "023"
          },
          "role": {
            "type": "string",
            "x-stream-index": "004"
          },
          "teams": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "031"
          },
          "total_unread_count": {
            "type": "number",
            "x-stream-index": "028"
          },
          "unread_channels": {
            "type": "number",
            "x-stream-index": "029"
          },
          "unread_count": {
            "type": "number",
            "x-stream-index": "027"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008"
          }
        },
        "required": [
          "id",
          "role",
          "created_at",
          "updated_at",
          "banned",
          "online",
          "devices",
          "mutes",
          "channel_mutes",
          "unread_count",
          "total_unread_count",
          "unread_channels",
          "language"
        ],
        "type": "object"
      },
      "OwnUserRequest": {
        "additionalProperties": true,
        "properties": {
          "banned": {
            "type": "boolean",
            "x-stream-index": "014"
          },
          "channel_mutes": {
            "items": {
              "$ref": "#/components/schemas/ChannelMuteRequest"
            },
            "type": "array",
            "x-stream-index": "026"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "007"
          },
          "deactivated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "012"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "011"
          },
          "devices": {
            "items": {
              "$ref": "#/components/schemas/DeviceRequest"
            },
            "type": "array",
            "x-stream-index": "024"
          },
          "id": {
            "type": "string",
            "x-stream-index": "003"
          },
          "invisible": {
            "type": "boolean",
            "x-stream-index": "021"
          },
          "language": {
            "type": "string",
            "x-stream-index": "030"
          },
          "last_active": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "latest_hidden_channels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "032"
          },
          "mutes": {
            "items": {
              "$ref": "#/components/schemas/UserMuteRequest"
            },
            "type": "array",
            "x-stream-index": "025"
          },
          "online": {
            "type": "boolean",
            "x-stream-index": "020"
          },
          "push_notifications": {
            "$ref": "#/components/schemas/PushNotificationSettingsRequest",
            "x-stream-index": "023"
          },
          "role": {
            "type": "string",
            "x-stream-index": "004"
          },
          "teams": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "031"
          },
          "total_unread_count": {
            "type": "number",
            "x-stream-index": "028"
          },
          "unread_channels": {
            "type": "number",
            "x-stream-index": "029"
          },
          "unread_count": {
            "type": "number",
            "x-stream-index": "027"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008"
          }
        },
        "type": "object"
      },
      "PaginationParamsRequest": {
        "properties": {
          "id_gt": {
            "type": "number",
            "x-stream-index": "004"
          },
          "id_gte": {
            "type": "number",
            "x-stream-index": "003"
          },
          "id_lt": {
            "type": "number",
            "x-stream-index": "006"
          },
          "id_lte": {
            "type": "number",
            "x-stream-index": "005"
          },
          "limit": {
            "minimum": 0,
            "type": "number",
            "x-stream-index": "001"
          },
          "offset": {
            "type": "number",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "PendingMessage": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/Channel",
            "x-stream-index": "007"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "description": "The message",
            "title": "Message",
            "x-stream-index": "009"
          },
          "metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Additional data attached to the pending message. This data is discarded once the pending message is committed.",
            "title": "Metadata",
            "type": "object",
            "x-stream-index": "010"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "Permission": {
        "properties": {
          "action": {
            "description": "Action name this permission is for (e.g. SendMessage)",
            "title": "Action",
            "type": "string",
            "x-stream-index": "004"
          },
          "condition": {
            "additionalProperties": {},
            "description": "MongoDB style condition which decides whether or not the permission is granted",
            "title": "Condition",
            "type": "object",
            "x-stream-index": "007"
          },
          "custom": {
            "description": "Whether this is a custom permission or built-in",
            "title": "Custom",
            "type": "boolean",
            "x-stream-index": "009"
          },
          "description": {
            "description": "Description of the permission",
            "title": "Description",
            "type": "string",
            "x-stream-index": "003"
          },
          "id": {
            "description": "Unique permission ID",
            "title": "ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "level": {
            "description": "Level at which permission could be applied (app or channel)",
            "enum": [
              "app",
              "channel"
            ],
            "title": "Level",
            "type": "string",
            "x-stream-index": "010"
          },
          "name": {
            "description": "Name of the permission",
            "title": "Name",
            "type": "string",
            "x-stream-index": "002"
          },
          "owner": {
            "description": "Whether this permission applies to resource owner or not",
            "title": "Owner",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "same_team": {
            "description": "Whether this permission applies to teammates (multi-tenancy mode only)",
            "title": "Same team",
            "type": "boolean",
            "x-stream-index": "006"
          },
          "tags": {
            "description": "List of tags of the permission",
            "items": {
              "type": "string"
            },
            "title": "Tags",
            "type": "array",
            "x-stream-index": "011"
          }
        },
        "required": [
          "id",
          "name",
          "description",
          "action",
          "owner",
          "same_team",
          "custom",
          "level",
          "tags"
        ],
        "type": "object"
      },
      "Policy": {
        "properties": {
          "action": {
            "type": "number",
            "x-stream-index": "007"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "name": {
            "type": "string",
            "x-stream-index": "004"
          },
          "owner": {
            "type": "boolean",
            "x-stream-index": "008"
          },
          "priority": {
            "type": "number",
            "x-stream-index": "009"
          },
          "resources": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "005"
          },
          "roles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "006"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "011"
          }
        },
        "required": [
          "name",
          "resources",
          "roles",
          "action",
          "owner",
          "priority",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "PolicyRequest": {
        "properties": {
          "action": {
            "enum": [
              "Deny",
              "Allow"
            ],
            "title": "Action",
            "type": "string",
            "x-stream-index": "001"
          },
          "name": {
            "description": "User-friendly policy name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "002"
          },
          "owner": {
            "description": "Whether policy applies to resource owner or not",
            "title": "Owner",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "priority": {
            "description": "Policy priority",
            "maximum": 999,
            "minimum": 1,
            "title": "Priority",
            "type": "number",
            "x-stream-index": "006"
          },
          "resources": {
            "description": "List of resources to apply policy to",
            "items": {
              "type": "string"
            },
            "minimum": 1,
            "title": "Resources",
            "type": "array",
            "x-stream-index": "003"
          },
          "roles": {
            "description": "List of roles to apply policy to",
            "items": {
              "type": "string"
            },
            "title": "Roles",
            "type": "array",
            "x-stream-index": "004"
          }
        },
        "required": [
          "name",
          "priority"
        ],
        "type": "object"
      },
      "PolicyRequest_1": {
        "properties": {
          "action": {
            "enum": [
              "Deny",
              "Allow"
            ],
            "title": "Action",
            "type": "string",
            "x-stream-index": "001"
          },
          "name": {
            "description": "User-friendly policy name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "002"
          },
          "owner": {
            "description": "Whether policy applies to resource owner or not",
            "title": "Owner",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "priority": {
            "description": "Policy priority",
            "maximum": 999,
            "minimum": 1,
            "title": "Priority",
            "type": "number",
            "x-stream-index": "006"
          },
          "resources": {
            "description": "List of resources to apply policy to",
            "items": {
              "type": "string"
            },
            "minimum": 1,
            "title": "Resources",
            "type": "array",
            "x-stream-index": "003"
          },
          "roles": {
            "description": "List of roles to apply policy to",
            "items": {
              "type": "string"
            },
            "title": "Roles",
            "type": "array",
            "x-stream-index": "004"
          }
        },
        "required": [
          "action",
          "name",
          "resources",
          "roles",
          "owner",
          "priority"
        ],
        "type": "object"
      },
      "PushConfigRequest": {
        "properties": {
          "offline_only": {
            "type": "boolean",
            "x-stream-index": "002"
          },
          "version": {
            "enum": [
              "v1",
              "v2"
            ],
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "PushNotificationFields": {
        "properties": {
          "apn": {
            "$ref": "#/components/schemas/APNConfigFields",
            "x-stream-index": "002"
          },
          "firebase": {
            "$ref": "#/components/schemas/FirebaseConfigFields",
            "x-stream-index": "003"
          },
          "huawei": {
            "$ref": "#/components/schemas/HuaweiConfigFields",
            "x-stream-index": "004"
          },
          "offline_only": {
            "type": "boolean",
            "x-stream-index": "001.002"
          },
          "providers": {
            "items": {
              "$ref": "#/components/schemas/PushProvider"
            },
            "type": "array",
            "x-stream-index": "006"
          },
          "version": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "xiaomi": {
            "$ref": "#/components/schemas/XiaomiConfigFields",
            "x-stream-index": "005"
          }
        },
        "required": [
          "version",
          "offline_only",
          "apn",
          "firebase",
          "huawei",
          "xiaomi"
        ],
        "type": "object"
      },
      "PushNotificationSettings": {
        "properties": {
          "disabled": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "disabled_until": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "PushNotificationSettingsRequest": {
        "properties": {
          "disabled": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "disabled_until": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "PushProvider": {
        "nullable": true,
        "properties": {
          "apn_auth_key": {
            "type": "string",
            "x-stream-index": "012"
          },
          "apn_auth_type": {
            "type": "string",
            "x-stream-index": "017"
          },
          "apn_development": {
            "type": "boolean",
            "x-stream-index": "018"
          },
          "apn_host": {
            "type": "string",
            "x-stream-index": "019"
          },
          "apn_key_id": {
            "type": "string",
            "x-stream-index": "013"
          },
          "apn_notification_template": {
            "type": "string",
            "x-stream-index": "020"
          },
          "apn_p12_cert": {
            "type": "string",
            "x-stream-index": "014"
          },
          "apn_team_id": {
            "type": "string",
            "x-stream-index": "015"
          },
          "apn_topic": {
            "type": "string",
            "x-stream-index": "016"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008"
          },
          "description": {
            "maxLength": 128,
            "type": "string",
            "x-stream-index": "007"
          },
          "disabled_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "disabled_reason": {
            "maxLength": 255,
            "type": "string",
            "x-stream-index": "011"
          },
          "firebase_apn_template": {
            "type": "string",
            "x-stream-index": "025"
          },
          "firebase_credentials": {
            "type": "string",
            "x-stream-index": "022"
          },
          "firebase_data_template": {
            "type": "string",
            "x-stream-index": "023"
          },
          "firebase_notification_template": {
            "type": "string",
            "x-stream-index": "024"
          },
          "firebase_server_key": {
            "type": "string",
            "x-stream-index": "021"
          },
          "huawei_app_id": {
            "type": "string",
            "x-stream-index": "026"
          },
          "huawei_app_secret": {
            "type": "string",
            "x-stream-index": "027"
          },
          "name": {
            "maxLength": 36,
            "minLength": 1,
            "type": "string",
            "x-stream-index": "005"
          },
          "type": {
            "type": "number",
            "x-stream-index": "006"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "009"
          },
          "xiaomi_app_secret": {
            "type": "string",
            "x-stream-index": "029"
          },
          "xiaomi_package_name": {
            "type": "string",
            "x-stream-index": "028"
          }
        },
        "required": [
          "name",
          "type",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "PushProviderRequest": {
        "properties": {
          "apn_auth_key": {
            "type": "string",
            "x-stream-index": "012"
          },
          "apn_auth_type": {
            "type": "string",
            "x-stream-index": "017"
          },
          "apn_development": {
            "type": "boolean",
            "x-stream-index": "018"
          },
          "apn_host": {
            "type": "string",
            "x-stream-index": "019"
          },
          "apn_key_id": {
            "type": "string",
            "x-stream-index": "013"
          },
          "apn_notification_template": {
            "type": "string",
            "x-stream-index": "020"
          },
          "apn_p12_cert": {
            "type": "string",
            "x-stream-index": "014"
          },
          "apn_team_id": {
            "type": "string",
            "x-stream-index": "015"
          },
          "apn_topic": {
            "type": "string",
            "x-stream-index": "016"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008"
          },
          "description": {
            "maxLength": 128,
            "type": "string",
            "x-stream-index": "007"
          },
          "disabled_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "disabled_reason": {
            "maxLength": 255,
            "type": "string",
            "x-stream-index": "011"
          },
          "firebase_apn_template": {
            "type": "string",
            "x-stream-index": "025"
          },
          "firebase_credentials": {
            "type": "string",
            "x-stream-index": "022"
          },
          "firebase_data_template": {
            "type": "string",
            "x-stream-index": "023"
          },
          "firebase_notification_template": {
            "type": "string",
            "x-stream-index": "024"
          },
          "firebase_server_key": {
            "type": "string",
            "x-stream-index": "021"
          },
          "huawei_app_id": {
            "type": "string",
            "x-stream-index": "026"
          },
          "huawei_app_secret": {
            "type": "string",
            "x-stream-index": "027"
          },
          "name": {
            "maxLength": 36,
            "minLength": 1,
            "type": "string",
            "x-stream-index": "005"
          },
          "type": {
            "type": "number",
            "x-stream-index": "006"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "009"
          },
          "xiaomi_app_secret": {
            "type": "string",
            "x-stream-index": "029"
          },
          "xiaomi_package_name": {
            "type": "string",
            "x-stream-index": "028"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "QueryBannedUsersRequest": {
        "properties": {
          "created_at_after": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.006"
          },
          "created_at_after_or_equal": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.005"
          },
          "created_at_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.008"
          },
          "created_at_before_or_equal": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.007"
          },
          "filter_conditions": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "001"
          },
          "limit": {
            "maximum": 300,
            "type": "number",
            "x-stream-index": "004"
          },
          "offset": {
            "maximum": 10000,
            "type": "number",
            "x-stream-index": "005"
          },
          "sort": {
            "items": {
              "$ref": "#/components/schemas/SortParam"
            },
            "maximum": 1,
            "type": "array",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "**Server-side only**. User object which server acts upon",
            "title": "User",
            "x-stream-index": "006.002"
          },
          "user_id": {
            "description": "**Server-side only**. User ID which server acts upon",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "006.001"
          }
        },
        "required": [
          "filter_conditions"
        ],
        "type": "object"
      },
      "QueryBannedUsersResponse": {
        "nullable": true,
        "properties": {
          "bans": {
            "items": {
              "$ref": "#/components/schemas/BanResponse"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "bans",
          "duration"
        ],
        "type": "object"
      },
      "QueryCampaignsRequest": {
        "properties": {
          "filter_conditions": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "001"
          },
          "limit": {
            "maximum": 20,
            "minimum": 1,
            "type": "number",
            "x-stream-index": "002.002"
          },
          "sort": {
            "$ref": "#/components/schemas/CampaignSort",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "filter_conditions"
        ],
        "type": "object"
      },
      "QueryCampaignsResponse": {
        "nullable": true,
        "properties": {
          "campaigns": {
            "items": {
              "$ref": "#/components/schemas/Campaign"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "channels": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Channel"
            },
            "type": "object",
            "x-stream-index": "004"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "005.001"
          },
          "segments": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Segment"
            },
            "type": "object",
            "x-stream-index": "002"
          },
          "users": {
            "additionalProperties": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "object",
            "x-stream-index": "003"
          }
        },
        "required": [
          "campaigns",
          "segments",
          "users",
          "channels",
          "duration"
        ],
        "type": "object"
      },
      "QueryChannelsRequest": {
        "nullable": true,
        "properties": {
          "client_id": {
            "type": "string",
            "x-stream-index": "011.002"
          },
          "connection_id": {
            "type": "string",
            "x-stream-index": "011.003"
          },
          "filter_conditions": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "001"
          },
          "limit": {
            "description": "Number of channels to limit",
            "title": "Limit",
            "type": "number",
            "x-stream-index": "008"
          },
          "member_limit": {
            "description": "Number of members to limit",
            "maximum": 100,
            "minimum": 0,
            "title": "Member limit",
            "type": "number",
            "x-stream-index": "007"
          },
          "message_limit": {
            "description": "Number of messages to limit",
            "minimum": 0,
            "title": "Message limit",
            "type": "number",
            "x-stream-index": "006"
          },
          "offset": {
            "description": "Channel pagination offset",
            "title": "Offset",
            "type": "number",
            "x-stream-index": "009"
          },
          "presence": {
            "title": "Presence",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "sort": {
            "description": "List of sort parameters",
            "items": {
              "$ref": "#/components/schemas/SortParamRequest"
            },
            "maximum": 5,
            "title": "Sort",
            "type": "array",
            "x-stream-index": "002"
          },
          "state": {
            "description": "Whether to update channel state or not",
            "title": "State",
            "type": "boolean",
            "x-stream-index": "004"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "010.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "010.001"
          },
          "watch": {
            "description": "Whether to start watching found channels or not",
            "title": "Watch",
            "type": "boolean",
            "x-stream-index": "003"
          }
        },
        "required": [
          "sort"
        ],
        "title": "Query Channels Request",
        "type": "object",
        "x-stream-docs-page-id": "query_channels"
      },
      "QueryMembersRequest": {
        "properties": {
          "created_at_after": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.010"
          },
          "created_at_after_or_equal": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.009"
          },
          "created_at_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.012"
          },
          "created_at_before_or_equal": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.011"
          },
          "filter_conditions": {
            "additionalProperties": {},
            "description": "Filter to apply to members",
            "title": "Filter conditions",
            "type": "object",
            "x-stream-index": "004"
          },
          "id": {
            "description": "Channel ID to interact with",
            "maxLength": 64,
            "title": "Channel ID",
            "type": "string",
            "x-stream-index": "002"
          },
          "limit": {
            "description": "Number of records to return",
            "maximum": 300,
            "minimum": 0,
            "title": "Limit",
            "type": "number",
            "x-stream-index": "006.003"
          },
          "members": {
            "description": "List of members to search in distinct channels",
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "maximum": 100,
            "title": "Members",
            "type": "array",
            "x-stream-index": "003"
          },
          "offset": {
            "description": "Number of records to offset",
            "maximum": 10000,
            "title": "Offset",
            "type": "number",
            "x-stream-index": "006.004"
          },
          "sort": {
            "description": "Array of sort parameters",
            "items": {
              "$ref": "#/components/schemas/SortParam"
            },
            "maximum": 1,
            "title": "Sort",
            "type": "array",
            "x-stream-index": "005"
          },
          "type": {
            "description": "Channel type to interact with",
            "maxLength": 64,
            "title": "Channel type",
            "type": "string",
            "x-stream-index": "001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "007.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "007.001"
          },
          "user_id_gt": {
            "type": "string",
            "x-stream-index": "006.006"
          },
          "user_id_gte": {
            "type": "string",
            "x-stream-index": "006.005"
          },
          "user_id_lt": {
            "type": "string",
            "x-stream-index": "006.008"
          },
          "user_id_lte": {
            "type": "string",
            "x-stream-index": "006.007"
          }
        },
        "required": [
          "type",
          "filter_conditions"
        ],
        "type": "object"
      },
      "QueryMessageFlagsRequest": {
        "properties": {
          "filter_conditions": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "001"
          },
          "limit": {
            "maximum": 300,
            "minimum": 0,
            "type": "number",
            "x-stream-index": "002.003"
          },
          "offset": {
            "maximum": 10000,
            "type": "number",
            "x-stream-index": "002.004"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "**Server-side only**. User object which server acts upon",
            "title": "User",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "description": "**Server-side only**. User ID which server acts upon",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "type": "object"
      },
      "QueryMessageFlagsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "flags": {
            "items": {
              "$ref": "#/components/schemas/MessageFlag"
            },
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "flags",
          "duration"
        ],
        "type": "object"
      },
      "QueryRecipientsRequest": {
        "properties": {
          "filter_conditions": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "001"
          },
          "limit": {
            "maximum": 20,
            "minimum": 1,
            "type": "number",
            "x-stream-index": "002.002"
          },
          "sort": {
            "$ref": "#/components/schemas/CampaignSort",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "filter_conditions"
        ],
        "type": "object"
      },
      "QueryRecipientsResponse": {
        "nullable": true,
        "properties": {
          "campaigns": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Campaign"
            },
            "type": "object",
            "x-stream-index": "001"
          },
          "channels": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Channel"
            },
            "type": "object",
            "x-stream-index": "004"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "006.001"
          },
          "recipients": {
            "items": {
              "$ref": "#/components/schemas/Recipient"
            },
            "type": "array",
            "x-stream-index": "005"
          },
          "segments": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Segment"
            },
            "type": "object",
            "x-stream-index": "002"
          },
          "users": {
            "additionalProperties": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "object",
            "x-stream-index": "003"
          }
        },
        "required": [
          "campaigns",
          "segments",
          "users",
          "channels",
          "recipients",
          "duration"
        ],
        "type": "object"
      },
      "QuerySegmentsRequest": {
        "properties": {
          "filter_conditions": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "001"
          },
          "limit": {
            "maximum": 20,
            "minimum": 1,
            "type": "number",
            "x-stream-index": "002.002"
          },
          "sort": {
            "$ref": "#/components/schemas/CampaignSort",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "filter_conditions"
        ],
        "type": "object"
      },
      "QuerySegmentsResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "segments": {
            "items": {
              "$ref": "#/components/schemas/Segment"
            },
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "segments",
          "duration"
        ],
        "type": "object"
      },
      "QueryUsersRequest": {
        "properties": {
          "client_id": {
            "type": "string",
            "x-stream-index": "006.002"
          },
          "connection_id": {
            "type": "string",
            "x-stream-index": "006.003"
          },
          "filter_conditions": {
            "additionalProperties": {},
            "description": "User filters",
            "title": "Filter conditions",
            "type": "object",
            "x-stream-docs-page-id": "query_users",
            "x-stream-index": "001"
          },
          "id_gt": {
            "type": "string",
            "x-stream-index": "004.006"
          },
          "id_gte": {
            "type": "string",
            "x-stream-index": "004.005"
          },
          "id_lt": {
            "type": "string",
            "x-stream-index": "004.008"
          },
          "id_lte": {
            "type": "string",
            "x-stream-index": "004.007"
          },
          "limit": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "x-stream-index": "004.003"
          },
          "offset": {
            "maximum": 1000,
            "type": "number",
            "x-stream-index": "004.004"
          },
          "presence": {
            "description": "Request user presence status",
            "title": "Presence",
            "type": "boolean",
            "x-stream-index": "003"
          },
          "sort": {
            "description": "Array of sort parameters",
            "items": {
              "$ref": "#/components/schemas/SortParam"
            },
            "maximum": 5,
            "title": "Sort",
            "type": "array",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "005.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "005.001"
          }
        },
        "required": [
          "filter_conditions",
          "sort"
        ],
        "type": "object"
      },
      "Reaction": {
        "additionalProperties": true,
        "description": "Represents user reaction to a message",
        "nullable": true,
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "readOnly": true,
            "title": "Created at",
            "type": "string",
            "x-stream-index": "008"
          },
          "message_id": {
            "description": "ID of a message user reacted to",
            "title": "Message ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "score": {
            "description": "Reaction score. If not specified reaction has score of 1",
            "title": "Score",
            "type": "number",
            "x-stream-index": "007"
          },
          "type": {
            "description": "The type of reaction (e.g. 'like', 'laugh', 'wow')",
            "maxLength": 30,
            "title": "Type",
            "type": "string",
            "x-stream-index": "006"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "readOnly": true,
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "009"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "005"
          },
          "user_id": {
            "description": "ID of a user who reacted to a message",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "message_id",
          "type",
          "score",
          "created_at",
          "updated_at"
        ],
        "title": "Reaction",
        "type": "object",
        "x-stream-docs-page-id": "send_reaction"
      },
      "ReactionDeletedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.001"
          },
          "reaction": {
            "$ref": "#/components/schemas/Reaction",
            "x-stream-index": "002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "004.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "ReactionDeletedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ReactionNewEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.001"
          },
          "reaction": {
            "$ref": "#/components/schemas/Reaction",
            "x-stream-index": "002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "ReactionNewEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ReactionRemovalResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001"
          },
          "reaction": {
            "$ref": "#/components/schemas/Reaction",
            "x-stream-index": "002"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "ReactionRequest": {
        "additionalProperties": true,
        "description": "Represents user reaction to a message",
        "nullable": true,
        "properties": {
          "message_id": {
            "description": "ID of a message user reacted to",
            "title": "Message ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "score": {
            "description": "Reaction score. If not specified reaction has score of 1",
            "title": "Score",
            "type": "number",
            "x-stream-index": "007"
          },
          "type": {
            "description": "The type of reaction (e.g. 'like', 'laugh', 'wow')",
            "maxLength": 30,
            "title": "Type",
            "type": "string",
            "x-stream-index": "006"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "005"
          },
          "user_id": {
            "description": "ID of a user who reacted to a message",
            "title": "User ID",
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "type"
        ],
        "title": "Reaction",
        "type": "object",
        "x-stream-docs-page-id": "send_reaction"
      },
      "ReactionResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001"
          },
          "reaction": {
            "$ref": "#/components/schemas/Reaction",
            "x-stream-index": "002"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "ReactionUpdatedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006.002"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001"
          },
          "reaction": {
            "$ref": "#/components/schemas/Reaction",
            "x-stream-index": "002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "message",
          "reaction",
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "ReactionUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "ReactivateUserRequest": {
        "nullable": true,
        "properties": {
          "created_by_id": {
            "description": "ID of the user who's reactivating the user",
            "title": "Created by ID",
            "type": "string",
            "x-stream-index": "004"
          },
          "name": {
            "description": "Set this field to put new name for the user",
            "title": "Name",
            "type": "string",
            "x-stream-index": "003"
          },
          "restore_messages": {
            "description": "Restore previously deleted messages",
            "title": "Restore messages",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "user_id": {
            "title": "User ID",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user_id"
        ],
        "type": "object"
      },
      "ReactivateUserResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "ReactivateUsersRequest": {
        "nullable": true,
        "properties": {
          "created_by_id": {
            "description": "ID of the user who's reactivating the users",
            "title": "Created by ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "restore_messages": {
            "description": "Restore previously deleted messages",
            "title": "Restore messages",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "user_ids": {
            "description": "User IDs to reactivate",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "title": "User IDs",
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user_ids"
        ],
        "type": "object"
      },
      "ReactivateUsersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.002.001"
          },
          "task_id": {
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "task_id",
          "duration"
        ],
        "type": "object"
      },
      "Read": {
        "nullable": true,
        "properties": {
          "last_read": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002"
          },
          "unread_messages": {
            "type": "number",
            "x-stream-index": "003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "last_read",
          "unread_messages"
        ],
        "type": "object"
      },
      "Recipient": {
        "nullable": true,
        "properties": {
          "campaign_id": {
            "type": "string",
            "x-stream-index": "004"
          },
          "channel_cid": {
            "type": "string",
            "x-stream-index": "005"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "010"
          },
          "details": {
            "type": "string",
            "x-stream-index": "009"
          },
          "message_id": {
            "type": "string",
            "x-stream-index": "007"
          },
          "receiver_id": {
            "type": "string",
            "x-stream-index": "006"
          },
          "status": {
            "type": "string",
            "x-stream-index": "008"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "011"
          }
        },
        "required": [
          "campaign_id",
          "channel_cid",
          "receiver_id",
          "message_id",
          "status",
          "details",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "Response": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "RestoreUsersRequest": {
        "nullable": true,
        "properties": {
          "user_ids": {
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "minimum": 1,
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "user_ids"
        ],
        "type": "object"
      },
      "ResumeCampaignRequest": {
        "type": "object"
      },
      "ResumeCampaignResponse": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/Campaign",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "Role": {
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "004"
          },
          "custom": {
            "description": "Whether this is a custom role or built-in",
            "title": "Custom",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "name": {
            "description": "Unique role name",
            "title": "Name",
            "type": "string",
            "x-stream-index": "001"
          },
          "scopes": {
            "description": "List of scopes where this role is currently present. `.app` means that role is present in app-level grants",
            "items": {
              "type": "string"
            },
            "title": "Scopes",
            "type": "array",
            "x-stream-index": "003"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "005"
          }
        },
        "required": [
          "name",
          "custom",
          "scopes",
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "ScheduleCampaignRequest": {
        "nullable": true,
        "properties": {
          "scheduled_for": {
            "minimum": 0,
            "type": "number",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "ScheduleCampaignResponse": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/Campaign",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "SearchRequest": {
        "properties": {
          "filter_conditions": {
            "additionalProperties": {},
            "description": "Channel filter conditions",
            "maximum": 100,
            "minimum": 1,
            "title": "Channel filter",
            "type": "object",
            "x-stream-docs-page-id": "query_channels",
            "x-stream-index": "002"
          },
          "limit": {
            "description": "Number of messages to return",
            "title": "Limit",
            "type": "number",
            "x-stream-index": "004"
          },
          "message_filter_conditions": {
            "additionalProperties": {},
            "description": "Message filter conditions",
            "title": "Message filter",
            "type": "object",
            "x-stream-index": "003"
          },
          "next": {
            "description": "Pagination parameter. Cannot be used with non-zero offset.",
            "title": "Next",
            "type": "string",
            "x-stream-index": "007"
          },
          "offset": {
            "description": "Pagination offset. Cannot be used with sort or next.",
            "title": "Offset",
            "type": "number",
            "x-stream-index": "005"
          },
          "query": {
            "description": "Search phrase",
            "title": "Query",
            "type": "string",
            "x-stream-index": "001"
          },
          "sort": {
            "description": "Sort parameters. Cannot be used with non-zero offset",
            "items": {
              "$ref": "#/components/schemas/SortParam"
            },
            "title": "Sort",
            "type": "array",
            "x-stream-index": "006"
          }
        },
        "required": [
          "filter_conditions"
        ],
        "type": "object"
      },
      "SearchResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "next": {
            "description": "Value to pass to the next search query in order to paginate",
            "title": "Next",
            "type": "string",
            "x-stream-index": "003"
          },
          "previous": {
            "description": "Value that points to the previous page. Pass as the next value in a search query to paginate backwards",
            "title": "Previous",
            "type": "string",
            "x-stream-index": "004"
          },
          "results": {
            "description": "Search results",
            "items": {
              "$ref": "#/components/schemas/SearchResult"
            },
            "title": "Results",
            "type": "array",
            "x-stream-index": "001"
          },
          "results_warning": {
            "$ref": "#/components/schemas/SearchWarning",
            "description": "Warning about the search results",
            "title": "Results Warning",
            "x-stream-index": "002"
          }
        },
        "required": [
          "results",
          "duration"
        ],
        "type": "object"
      },
      "SearchResult": {
        "nullable": true,
        "properties": {
          "message": {
            "$ref": "#/components/schemas/SearchResultMessage",
            "description": "Found message",
            "title": "Message",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "SearchResultMessage": {
        "additionalProperties": true,
        "properties": {
          "attachments": {
            "items": {
              "$ref": "#/components/schemas/Attachment"
            },
            "type": "array",
            "x-stream-index": "001.011"
          },
          "before_message_send_failed": {
            "type": "boolean",
            "x-stream-index": "001.041"
          },
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "description": "Channel object",
            "title": "Channel",
            "x-stream-index": "002"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "001.025"
          },
          "command": {
            "type": "string",
            "x-stream-index": "001.006"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.027"
          },
          "deleted_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.029"
          },
          "html": {
            "type": "string",
            "x-stream-index": "001.007"
          },
          "i18n": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "x-stream-index": "001.039"
          },
          "id": {
            "type": "string",
            "x-stream-index": "001.002"
          },
          "image_labels": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "001.035"
          },
          "latest_reactions": {
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "type": "array",
            "x-stream-index": "001.012"
          },
          "mentioned_users": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.038"
          },
          "mml": {
            "type": "string",
            "x-stream-index": "001.005"
          },
          "own_reactions": {
            "items": {
              "$ref": "#/components/schemas/Reaction"
            },
            "type": "array",
            "x-stream-index": "001.013"
          },
          "parent_id": {
            "type": "string",
            "x-stream-index": "001.017"
          },
          "pin_expires": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.046"
          },
          "pinned": {
            "type": "boolean",
            "x-stream-index": "001.042"
          },
          "pinned_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.043"
          },
          "pinned_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.045"
          },
          "quoted_message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "001.022"
          },
          "quoted_message_id": {
            "type": "string",
            "x-stream-index": "001.021"
          },
          "reaction_counts": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "x-stream-index": "001.014"
          },
          "reaction_scores": {
            "additionalProperties": {
              "type": "number"
            },
            "type": "object",
            "x-stream-index": "001.015"
          },
          "reply_count": {
            "type": "number",
            "x-stream-index": "001.020"
          },
          "shadowed": {
            "type": "boolean",
            "x-stream-index": "001.031"
          },
          "show_in_channel": {
            "type": "boolean",
            "x-stream-index": "001.019"
          },
          "silent": {
            "type": "boolean",
            "x-stream-index": "001.040"
          },
          "text": {
            "type": "string",
            "x-stream-index": "001.004"
          },
          "thread_participants": {
            "items": {
              "$ref": "#/components/schemas/UserObject"
            },
            "type": "array",
            "x-stream-index": "001.024"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.008"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.028"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.010"
          }
        },
        "required": [
          "id",
          "text",
          "html",
          "type",
          "attachments",
          "latest_reactions",
          "own_reactions",
          "reaction_counts",
          "reaction_scores",
          "reply_count",
          "cid",
          "created_at",
          "updated_at",
          "shadowed",
          "mentioned_users",
          "silent",
          "pinned"
        ],
        "type": "object"
      },
      "SearchWarning": {
        "properties": {
          "channel_search_cids": {
            "description": "Channel CIDs for the searched channels",
            "items": {
              "type": "string"
            },
            "title": "Channel Search CIDs",
            "type": "array",
            "x-stream-index": "004"
          },
          "channel_search_count": {
            "description": "Number of channels searched",
            "title": "Channel Search Count",
            "type": "number",
            "x-stream-index": "003"
          },
          "warning_code": {
            "description": "Code corresponding to the warning",
            "title": "Warning Code",
            "type": "number",
            "x-stream-index": "002"
          },
          "warning_description": {
            "description": "Description of the warning",
            "title": "Warning Description",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "warning_description",
          "warning_code"
        ],
        "type": "object"
      },
      "Segment": {
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "005"
          },
          "description": {
            "maxLength": 256,
            "type": "string",
            "x-stream-index": "010.002"
          },
          "filter": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "010.003.002"
          },
          "id": {
            "type": "string",
            "x-stream-index": "003"
          },
          "in_use": {
            "type": "boolean",
            "x-stream-index": "009"
          },
          "name": {
            "maxLength": 128,
            "type": "string",
            "x-stream-index": "010.001"
          },
          "size": {
            "type": "number",
            "x-stream-index": "008"
          },
          "status": {
            "type": "string",
            "x-stream-index": "007"
          },
          "type": {
            "enum": [
              "user",
              "channel"
            ],
            "type": "string",
            "x-stream-index": "010.003.001"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "006"
          }
        },
        "required": [
          "id",
          "created_at",
          "updated_at",
          "status",
          "size",
          "in_use",
          "name",
          "description",
          "type",
          "filter"
        ],
        "type": "object"
      },
      "SegmentDataRequest": {
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "x-stream-index": "002"
          },
          "filter": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "003.002"
          },
          "name": {
            "maxLength": 128,
            "type": "string",
            "x-stream-index": "001"
          },
          "type": {
            "enum": [
              "user",
              "channel"
            ],
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "name",
          "type",
          "filter"
        ],
        "type": "object"
      },
      "SegmentUpdateableFieldsRequest": {
        "properties": {
          "description": {
            "maxLength": 256,
            "type": "string",
            "x-stream-index": "002"
          },
          "filter": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "004"
          },
          "name": {
            "maxLength": 128,
            "type": "string",
            "x-stream-index": "001"
          },
          "type": {
            "enum": [
              "user",
              "channel"
            ],
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "type": "object"
      },
      "SendEventRequest": {
        "nullable": true,
        "properties": {
          "event": {
            "$ref": "#/components/schemas/EventRequest",
            "x-stream-index": "001"
          }
        },
        "required": [
          "event"
        ],
        "type": "object"
      },
      "SendMessageRequest": {
        "description": "Contains all information needed to send new message",
        "nullable": true,
        "properties": {
          "force_moderation": {
            "description": "Enable moderation on server-side requests",
            "title": "Force moderation",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "is_pending_message": {
            "description": "Make the message a pending message. This message will not be viewable to others until it is committed.",
            "title": "Is pending message",
            "type": "boolean",
            "x-stream-index": "004"
          },
          "message": {
            "$ref": "#/components/schemas/MessageRequest",
            "x-stream-index": "001.001"
          },
          "pending_message_metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "x-stream-index": "001.002"
          },
          "skip_enrich_url": {
            "description": "Do not try to enrich the links within message",
            "title": "Skip Enrich URL",
            "type": "boolean",
            "x-stream-index": "003"
          },
          "skip_push": {
            "description": "Disables all push notifications for this message",
            "title": "Skip push notifications",
            "type": "boolean",
            "x-stream-index": "002"
          }
        },
        "required": [
          "message"
        ],
        "title": "Send Message Request",
        "type": "object"
      },
      "SendReactionRequest": {
        "nullable": true,
        "properties": {
          "ID": {
            "type": "string",
            "writeOnly": true,
            "x-stream-index": "001"
          },
          "enforce_unique": {
            "description": "Whether to replace all existing user reactions",
            "title": "Enforce unique",
            "type": "boolean",
            "x-stream-index": "003"
          },
          "reaction": {
            "$ref": "#/components/schemas/ReactionRequest",
            "x-stream-index": "002"
          },
          "skip_push": {
            "description": "Skips any mobile push notifications",
            "title": "Skip push",
            "type": "boolean",
            "x-stream-index": "004"
          }
        },
        "required": [
          "reaction"
        ],
        "type": "object"
      },
      "SendUserCustomEventRequest": {
        "nullable": true,
        "properties": {
          "event": {
            "$ref": "#/components/schemas/UserCustomEventRequest",
            "x-stream-index": "002"
          }
        },
        "required": [
          "event"
        ],
        "type": "object"
      },
      "ShowChannelRequest": {
        "nullable": true,
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "002.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "type": "object"
      },
      "ShowChannelResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "SortParam": {
        "nullable": true,
        "properties": {
          "direction": {
            "type": "number",
            "x-stream-index": "002"
          },
          "field": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "SortParamRequest": {
        "nullable": true,
        "properties": {
          "direction": {
            "type": "number",
            "x-stream-index": "002"
          },
          "field": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "StopCampaignRequest": {
        "nullable": true,
        "type": "object"
      },
      "StopCampaignResponse": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/Campaign",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "StopWatchingResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "SyncRequest": {
        "nullable": true,
        "properties": {
          "channel_cids": {
            "description": "List of channel CIDs to sync",
            "items": {
              "type": "string"
            },
            "maximum": 255,
            "minimum": 1,
            "title": "Channel CIDs",
            "type": "array",
            "x-stream-index": "001"
          },
          "client_id": {
            "type": "string",
            "x-stream-index": "006.002"
          },
          "connection_id": {
            "type": "string",
            "x-stream-index": "006.003"
          },
          "last_sync_at": {
            "description": "Date from which synchronization should happen",
            "format": "date-time",
            "title": "Last sync at",
            "type": "string",
            "x-stream-index": "002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "005.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "watch": {
            "description": "If set to true this will start watching requested and newly added channels that user has access to. If error occurred with this option enabled and it is not an input error - channels will still be watched.",
            "title": "Watch synced channels",
            "type": "boolean",
            "x-stream-index": "004"
          },
          "with_inaccessible_cids": {
            "description": "If set to true this will add 'inaccessible_cids' to response type",
            "title": "With inaccessible CIDs",
            "type": "boolean",
            "x-stream-index": "003"
          }
        },
        "required": [
          "last_sync_at"
        ],
        "type": "object"
      },
      "SyncResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "events": {
            "description": "List of events",
            "items": {
              "$ref": "#/components/schemas/Event"
            },
            "title": "Events",
            "type": "array",
            "x-stream-index": "001"
          },
          "inaccessible_cids": {
            "description": "List of CIDs that user can't access",
            "items": {
              "type": "string"
            },
            "title": "Inaccessible CIDs",
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "events",
          "duration"
        ],
        "type": "object"
      },
      "TestCampaignRequest": {
        "nullable": true,
        "properties": {
          "users": {
            "items": {
              "type": "string"
            },
            "maximum": 10,
            "minimum": 1,
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "users"
        ],
        "type": "object"
      },
      "TestCampaignResponse": {
        "nullable": true,
        "properties": {
          "details": {
            "type": "string",
            "x-stream-index": "002"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "results": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Result of the test per user",
            "title": "Results",
            "type": "object",
            "x-stream-index": "003"
          },
          "status": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "status",
          "duration"
        ],
        "title": "Test campaign response",
        "type": "object"
      },
      "Thresholds": {
        "description": "Sets thresholds for AI moderation",
        "properties": {
          "explicit": {
            "$ref": "#/components/schemas/LabelThresholds",
            "description": "Thresholds for explicit messages",
            "title": "Explicit",
            "x-stream-index": "001"
          },
          "spam": {
            "$ref": "#/components/schemas/LabelThresholds",
            "description": "Thresholds for spam",
            "title": "Spam",
            "x-stream-index": "002"
          },
          "toxic": {
            "$ref": "#/components/schemas/LabelThresholds",
            "description": "Thresholds for toxic messages",
            "title": "Toxic",
            "x-stream-index": "003"
          }
        },
        "title": "Auto moderation thresholds",
        "type": "object"
      },
      "ThresholdsRequest": {
        "description": "Sets thresholds for AI moderation",
        "properties": {
          "explicit": {
            "$ref": "#/components/schemas/LabelThresholdsRequest",
            "description": "Thresholds for explicit messages",
            "title": "Explicit",
            "x-stream-index": "001"
          },
          "spam": {
            "$ref": "#/components/schemas/LabelThresholdsRequest",
            "description": "Thresholds for spam",
            "title": "Spam",
            "x-stream-index": "002"
          },
          "toxic": {
            "$ref": "#/components/schemas/LabelThresholdsRequest",
            "description": "Thresholds for toxic messages",
            "title": "Toxic",
            "x-stream-index": "003"
          }
        },
        "title": "Auto moderation thresholds",
        "type": "object"
      },
      "TranslateMessageRequest": {
        "nullable": true,
        "properties": {
          "language": {
            "description": "Language to translate message to",
            "enum": [
              "af",
              "sq",
              "am",
              "ar",
              "az",
              "bn",
              "bs",
              "bg",
              "zh",
              "zh-TW",
              "hr",
              "cs",
              "da",
              "fa-AF",
              "nl",
              "en",
              "et",
              "fi",
              "fr",
              "fr-CA",
              "ka",
              "de",
              "el",
              "ha",
              "he",
              "hi",
              "hu",
              "id",
              "it",
              "ja",
              "ko",
              "lv",
              "ms",
              "no",
              "fa",
              "ps",
              "pl",
              "pt",
              "ro",
              "ru",
              "sr",
              "sk",
              "sl",
              "so",
              "es",
              "es-MX",
              "sw",
              "sv",
              "tl",
              "ta",
              "th",
              "tr",
              "uk",
              "ur",
              "vi"
            ],
            "title": "Language",
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "language"
        ],
        "type": "object"
      },
      "TruncateChannelRequest": {
        "nullable": true,
        "properties": {
          "hard_delete": {
            "description": "Permanently delete channel data (messages, reactions, etc.)",
            "title": "Hard delete",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "message": {
            "$ref": "#/components/schemas/MessageRequest",
            "x-stream-index": "004"
          },
          "skip_push": {
            "description": "When `message` is set disables all push notifications for it",
            "title": "Skip push",
            "type": "boolean",
            "x-stream-index": "005"
          },
          "truncated_at": {
            "description": "Truncate channel data up to `truncated_at`. The system message (if provided) creation time is always greater than `truncated_at`",
            "format": "date-time",
            "title": "Truncated at",
            "type": "string",
            "x-stream-index": "006"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "007.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "007.001"
          }
        },
        "type": "object"
      },
      "TruncateChannelResponse": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "002"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "003"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "TypingStartEvent": {
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "003.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "003.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "parent_id": {
            "type": "string",
            "x-stream-index": "001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "TypingStartEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "TypingStopEvent": {
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "parent_id": {
            "type": "string",
            "x-stream-index": "001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "TypingStopEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UnmuteChannelRequest": {
        "nullable": true,
        "properties": {
          "channel_cid": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "channel_cids": {
            "items": {
              "type": "string"
            },
            "maximum": 25,
            "type": "array",
            "x-stream-index": "001.002"
          },
          "expiration": {
            "type": "number",
            "x-stream-index": "001.003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "002.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "channel_cid",
          "channel_cids"
        ],
        "type": "object"
      },
      "UnmuteResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "UnmuteUserRequest": {
        "nullable": true,
        "properties": {
          "target_id": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "target_ids": {
            "items": {
              "type": "string"
            },
            "maximum": 1000,
            "type": "array",
            "x-stream-index": "001.002"
          },
          "timeout": {
            "minimum": 0,
            "type": "number",
            "x-stream-index": "001.003"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "002.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "target_id",
          "target_ids"
        ],
        "type": "object"
      },
      "UpdateAppRequest": {
        "nullable": true,
        "properties": {
          "agora_options": {
            "$ref": "#/components/schemas/ConfigRequest",
            "x-stream-index": "001.033"
          },
          "apn_config": {
            "$ref": "#/components/schemas/APNConfigRequest",
            "x-stream-index": "001.003"
          },
          "async_moderation_config": {
            "$ref": "#/components/schemas/AsyncModerationConfigurationRequest",
            "x-stream-index": "001.035"
          },
          "async_url_enrich_enabled": {
            "type": "boolean",
            "x-stream-index": "001.016"
          },
          "auto_translation_enabled": {
            "type": "boolean",
            "x-stream-index": "001.015"
          },
          "before_message_send_hook_url": {
            "type": "string",
            "x-stream-index": "001.017"
          },
          "cdn_expiration_seconds": {
            "maximum": 1209600,
            "minimum": 14400,
            "type": "number",
            "x-stream-index": "001.031"
          },
          "channel_hide_members_only": {
            "type": "boolean",
            "x-stream-index": "001.027"
          },
          "custom_action_handler_url": {
            "type": "string",
            "x-stream-index": "001.018"
          },
          "disable_auth_checks": {
            "type": "boolean",
            "x-stream-index": "001.001"
          },
          "disable_permissions_checks": {
            "type": "boolean",
            "x-stream-index": "001.002"
          },
          "enforce_unique_usernames": {
            "enum": [
              "no",
              "app",
              "team"
            ],
            "type": "string",
            "x-stream-index": "001.019"
          },
          "file_upload_config": {
            "$ref": "#/components/schemas/FileUploadConfigRequest",
            "x-stream-index": "001.024"
          },
          "firebase_config": {
            "$ref": "#/components/schemas/FirebaseConfigRequest",
            "x-stream-index": "001.004"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "001.028"
          },
          "hms_options": {
            "$ref": "#/components/schemas/ConfigRequest",
            "x-stream-index": "001.034"
          },
          "huawei_config": {
            "$ref": "#/components/schemas/HuaweiConfigRequest",
            "x-stream-index": "001.005"
          },
          "image_moderation_block_labels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.013"
          },
          "image_moderation_enabled": {
            "type": "boolean",
            "x-stream-index": "001.014"
          },
          "image_moderation_labels": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.012"
          },
          "image_upload_config": {
            "$ref": "#/components/schemas/FileUploadConfigRequest",
            "x-stream-index": "001.023"
          },
          "migrate_permissions_to_v2": {
            "type": "boolean",
            "x-stream-index": "001.029"
          },
          "multi_tenant_enabled": {
            "type": "boolean",
            "x-stream-index": "001.011"
          },
          "permission_version": {
            "enum": [
              "v1",
              "v2"
            ],
            "type": "string",
            "x-stream-index": "001.009"
          },
          "push_config": {
            "$ref": "#/components/schemas/PushConfigRequest",
            "x-stream-index": "001.007"
          },
          "reminders_interval": {
            "maximum": 86400,
            "minimum": 60,
            "type": "number",
            "x-stream-index": "001.030"
          },
          "revoke_tokens_issued_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.025"
          },
          "sqs_key": {
            "type": "string",
            "x-stream-index": "001.021"
          },
          "sqs_secret": {
            "type": "string",
            "x-stream-index": "001.022"
          },
          "sqs_url": {
            "type": "string",
            "x-stream-index": "001.020"
          },
          "user_search_disallowed_roles": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.010"
          },
          "video_provider": {
            "enum": [
              "agora",
              "hms"
            ],
            "type": "string",
            "x-stream-index": "001.032"
          },
          "webhook_events": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.026"
          },
          "webhook_url": {
            "type": "string",
            "x-stream-index": "001.008"
          },
          "xiaomi_config": {
            "$ref": "#/components/schemas/XiaomiConfigRequest",
            "x-stream-index": "001.006"
          }
        },
        "type": "object"
      },
      "UpdateBlockListRequest": {
        "nullable": true,
        "properties": {
          "Name": {
            "type": "string",
            "writeOnly": true,
            "x-stream-index": "001"
          },
          "words": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      },
      "UpdateCampaignRequest": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/CampaignUpdateableFieldsRequest",
            "x-stream-index": "001"
          }
        },
        "required": [
          "campaign"
        ],
        "type": "object"
      },
      "UpdateCampaignResponse": {
        "nullable": true,
        "properties": {
          "campaign": {
            "$ref": "#/components/schemas/Campaign",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "UpdateChannelPartialRequest": {
        "nullable": true,
        "properties": {
          "set": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "002.001"
          },
          "unset": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "002.002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "003.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "set",
          "unset"
        ],
        "type": "object"
      },
      "UpdateChannelPartialResponse": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "003.001"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "type": "array",
            "x-stream-index": "002"
          }
        },
        "required": [
          "members",
          "duration"
        ],
        "type": "object"
      },
      "UpdateChannelRequest": {
        "nullable": true,
        "properties": {
          "accept_invite": {
            "description": "Set to `true` to accept the invite",
            "title": "Accept invite",
            "type": "boolean",
            "x-stream-index": "008"
          },
          "add_members": {
            "description": "List of user IDs to add to the channel",
            "items": {
              "$ref": "#/components/schemas/ChannelMemberRequest"
            },
            "maximum": 100,
            "title": "Add members",
            "type": "array",
            "x-stream-index": "001"
          },
          "add_moderators": {
            "description": "List of user IDs to make channel moderators",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "title": "Add moderators",
            "type": "array",
            "x-stream-index": "003"
          },
          "assign_roles": {
            "description": "List of channel member role assignments. If any specified user is not part of the channel, the request will fail",
            "items": {
              "$ref": "#/components/schemas/ChannelMemberRequest"
            },
            "maximum": 100,
            "title": "Assign roles",
            "type": "array",
            "x-stream-index": "006"
          },
          "cooldown": {
            "description": "Sets cool down period for the channel in seconds",
            "maximum": 120,
            "minimum": 0,
            "title": "Cool down",
            "type": "number",
            "x-stream-index": "007"
          },
          "data": {
            "$ref": "#/components/schemas/ChannelRequest",
            "x-stream-index": "013.001"
          },
          "demote_moderators": {
            "description": "List of user IDs to take away moderators status from",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "title": "Demote moderators",
            "type": "array",
            "x-stream-index": "004"
          },
          "hide_history": {
            "description": "Set to `true` to hide channel's history when adding new members",
            "title": "Hide history",
            "type": "boolean",
            "x-stream-index": "012"
          },
          "invites": {
            "description": "List of user IDs to invite to the channel",
            "items": {
              "$ref": "#/components/schemas/ChannelMemberRequest"
            },
            "maximum": 100,
            "title": "Invites",
            "type": "array",
            "x-stream-index": "005"
          },
          "message": {
            "$ref": "#/components/schemas/MessageRequest",
            "description": "Message to send to the chat when channel is successfully updated",
            "title": "Message",
            "x-stream-index": "010"
          },
          "reject_invite": {
            "description": "Set to `true` to reject the invite",
            "title": "Reject invite",
            "type": "boolean",
            "x-stream-index": "009"
          },
          "remove_members": {
            "description": "List of user IDs to remove from the channel",
            "items": {
              "type": "string"
            },
            "maximum": 100,
            "title": "Remove members",
            "type": "array",
            "x-stream-index": "002"
          },
          "skip_push": {
            "description": "When `message` is set disables all push notifications for it",
            "title": "Skip push",
            "type": "boolean",
            "x-stream-index": "011"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "014.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "014.001"
          }
        },
        "required": [
          "remove_members",
          "add_moderators",
          "demote_moderators"
        ],
        "title": "Channel update request",
        "type": "object",
        "x-stream-docs-page-id": "channel_update"
      },
      "UpdateChannelResponse": {
        "nullable": true,
        "properties": {
          "channel": {
            "$ref": "#/components/schemas/ChannelResponse",
            "x-stream-index": "001"
          },
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "004.001"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/ChannelMember"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "message": {
            "$ref": "#/components/schemas/Message",
            "x-stream-index": "002"
          }
        },
        "required": [
          "members",
          "duration"
        ],
        "type": "object"
      },
      "UpdateChannelTypeRequest": {
        "nullable": true,
        "properties": {
          "NameFromPath": {
            "type": "string",
            "writeOnly": true,
            "x-stream-index": "001"
          },
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "007.001.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "007.001.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/ThresholdsRequest",
            "x-stream-index": "007.001.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "007.001.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "007.001.020"
          },
          "commands": {
            "description": "List of commands that channel supports",
            "items": {
              "type": "string"
            },
            "title": "Commands",
            "type": "array",
            "x-stream-index": "007.003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "007.001.004"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "007.001.012"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "004"
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "007.001.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "007.001.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "007.001.009"
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/PolicyRequest"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "007.001.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "007.001.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "007.001.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "007.001.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "007.001.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "007.001.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "007.001.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "007.001.002"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "007.001.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "007.001.011"
          }
        },
        "required": [
          "automod"
        ],
        "type": "object"
      },
      "UpdateChannelTypeResponse": {
        "nullable": true,
        "properties": {
          "automod": {
            "enum": [
              "disabled",
              "simple",
              "AI"
            ],
            "type": "string",
            "x-stream-index": "003.001.017"
          },
          "automod_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "003.001.018"
          },
          "automod_thresholds": {
            "$ref": "#/components/schemas/Thresholds",
            "x-stream-index": "003.001.021"
          },
          "blocklist": {
            "type": "string",
            "x-stream-index": "003.001.019"
          },
          "blocklist_behavior": {
            "enum": [
              "flag",
              "block"
            ],
            "type": "string",
            "x-stream-index": "003.001.020"
          },
          "commands": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "003.003"
          },
          "connect_events": {
            "type": "boolean",
            "x-stream-index": "003.001.004"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002.003"
          },
          "custom_events": {
            "type": "boolean",
            "x-stream-index": "003.001.012"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "grants": {
            "additionalProperties": {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "type": "object",
            "x-stream-index": "002"
          },
          "max_message_length": {
            "maximum": 20000,
            "type": "number",
            "x-stream-index": "003.001.016"
          },
          "message_retention": {
            "type": "string",
            "x-stream-index": "003.001.015"
          },
          "mutes": {
            "type": "boolean",
            "x-stream-index": "003.001.009"
          },
          "name": {
            "type": "string",
            "x-stream-index": "003.001.001"
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/PolicyRequest_1"
            },
            "type": "array",
            "x-stream-index": "001"
          },
          "push_notifications": {
            "type": "boolean",
            "x-stream-index": "003.001.013"
          },
          "quotes": {
            "type": "boolean",
            "x-stream-index": "003.001.008"
          },
          "reactions": {
            "type": "boolean",
            "x-stream-index": "003.001.006"
          },
          "read_events": {
            "type": "boolean",
            "x-stream-index": "003.001.003"
          },
          "reminders": {
            "type": "boolean",
            "x-stream-index": "003.001.014"
          },
          "replies": {
            "type": "boolean",
            "x-stream-index": "003.001.007"
          },
          "search": {
            "type": "boolean",
            "x-stream-index": "003.001.005"
          },
          "typing_events": {
            "type": "boolean",
            "x-stream-index": "003.001.002"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002.004"
          },
          "uploads": {
            "type": "boolean",
            "x-stream-index": "003.001.010"
          },
          "url_enrichment": {
            "type": "boolean",
            "x-stream-index": "003.001.011"
          }
        },
        "required": [
          "permissions",
          "grants",
          "name",
          "typing_events",
          "read_events",
          "connect_events",
          "search",
          "reactions",
          "replies",
          "quotes",
          "mutes",
          "uploads",
          "url_enrichment",
          "custom_events",
          "push_notifications",
          "reminders",
          "message_retention",
          "max_message_length",
          "automod",
          "automod_behavior",
          "created_at",
          "updated_at",
          "commands",
          "duration"
        ],
        "type": "object"
      },
      "UpdateCommandRequest": {
        "description": "Represents custom chat command",
        "nullable": true,
        "properties": {
          "Name": {
            "type": "string",
            "writeOnly": true,
            "x-stream-index": "001"
          },
          "args": {
            "description": "Arguments help text, shown in commands auto-completion",
            "maxLength": 255,
            "title": "Arguments",
            "type": "string",
            "x-stream-index": "003"
          },
          "description": {
            "description": "Description, shown in commands auto-completion",
            "maxLength": 255,
            "title": "Description",
            "type": "string",
            "x-stream-index": "002"
          },
          "set": {
            "description": "Set name used for grouping commands",
            "maxLength": 255,
            "title": "Set",
            "type": "string",
            "x-stream-index": "004"
          }
        },
        "required": [
          "description"
        ],
        "title": "Command",
        "type": "object"
      },
      "UpdateCommandResponse": {
        "nullable": true,
        "properties": {
          "command": {
            "$ref": "#/components/schemas/Command",
            "x-stream-index": "001"
          },
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "UpdateMessagePartialRequest": {
        "nullable": true,
        "properties": {
          "set": {
            "additionalProperties": {},
            "description": "Sets new field values",
            "title": "Set",
            "type": "object",
            "x-stream-index": "001.001",
            "x-stream-map": {
              "description": "New value to set",
              "key": "field",
              "title": "Value"
            }
          },
          "skip_enrich_url": {
            "description": "Do not try to enrich the links within message",
            "title": "Skip Enrich URL",
            "type": "boolean",
            "x-stream-index": "004"
          },
          "unset": {
            "description": "Array of field names to unset",
            "items": {
              "type": "string"
            },
            "title": "Unset",
            "type": "array",
            "x-stream-index": "001.002"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "x-stream-index": "002.002"
          },
          "user_id": {
            "type": "string",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "set",
          "unset"
        ],
        "type": "object"
      },
      "UpdateMessageRequest": {
        "description": "Contains all information needed to update a message",
        "nullable": true,
        "properties": {
          "message": {
            "$ref": "#/components/schemas/MessageRequest",
            "x-stream-index": "001.001"
          },
          "pending_message_metadata": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "x-stream-index": "001.002"
          },
          "skip_enrich_url": {
            "description": "Do not try to enrich the links within message",
            "title": "Skip Enrich URL",
            "type": "boolean",
            "x-stream-index": "002"
          }
        },
        "required": [
          "message"
        ],
        "title": "Update Message Request",
        "type": "object"
      },
      "UpdateSegmentRequest": {
        "nullable": true,
        "properties": {
          "segment": {
            "$ref": "#/components/schemas/SegmentUpdateableFieldsRequest",
            "x-stream-index": "001"
          }
        },
        "required": [
          "segment"
        ],
        "type": "object"
      },
      "UpdateSegmentResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "segment": {
            "$ref": "#/components/schemas/Segment",
            "x-stream-index": "001"
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "UpdateUserPartialRequest": {
        "nullable": true,
        "properties": {
          "id": {
            "description": "User ID to update",
            "title": "ID",
            "type": "string",
            "x-stream-index": "001"
          },
          "set": {
            "additionalProperties": {},
            "type": "object",
            "x-stream-index": "002.001"
          },
          "unset": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "002.002"
          }
        },
        "required": [
          "id",
          "set",
          "unset"
        ],
        "type": "object"
      },
      "UpdateUsersRequest": {
        "nullable": true,
        "properties": {
          "users": {
            "additionalProperties": {
              "$ref": "#/components/schemas/UserObjectRequest"
            },
            "description": "Object containing users",
            "title": "Users",
            "type": "object",
            "x-stream-index": "001",
            "x-stream-map": {
              "key": "user_id"
            }
          }
        },
        "required": [
          "users"
        ],
        "type": "object"
      },
      "UpdateUsersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "users": {
            "additionalProperties": {
              "$ref": "#/components/schemas/UserObject"
            },
            "description": "Object containing users",
            "title": "Users",
            "type": "object",
            "x-stream-index": "001",
            "x-stream-map": {
              "key": "user_id"
            }
          }
        },
        "required": [
          "users",
          "duration"
        ],
        "type": "object"
      },
      "UpsertPushProviderRequest": {
        "nullable": true,
        "properties": {
          "push_provider": {
            "$ref": "#/components/schemas/PushProviderRequest",
            "x-stream-index": "001"
          }
        },
        "type": "object"
      },
      "UpsertPushProviderResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "description": "Duration of the request in human-readable format",
            "title": "Duration",
            "type": "string",
            "x-stream-index": "002.001"
          },
          "push_provider": {
            "$ref": "#/components/schemas/PushProvider",
            "x-stream-index": "001"
          }
        },
        "required": [
          "push_provider",
          "duration"
        ],
        "type": "object"
      },
      "UserBannedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "006.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "006.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "006.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "008.002"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          },
          "expiration": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003"
          },
          "reason": {
            "type": "string",
            "x-stream-index": "004"
          },
          "shadow": {
            "type": "boolean",
            "x-stream-index": "002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "008.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "007.001"
          }
        },
        "required": [
          "created_by",
          "shadow",
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "UserBannedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserCustomEventRequest": {
        "additionalProperties": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "005"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001"
          }
        },
        "required": [
          "type"
        ],
        "type": "object"
      },
      "UserDeactivatedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "created_by": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002.001"
          }
        },
        "required": [
          "created_by",
          "type",
          "created_at"
        ],
        "title": "UserDeactivatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserDeletedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "delete_conversation_channels": {
            "type": "boolean",
            "x-stream-index": "005"
          },
          "hard_delete": {
            "type": "boolean",
            "x-stream-index": "003.001"
          },
          "mark_messages_deleted": {
            "type": "boolean",
            "x-stream-index": "004"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at",
          "hard_delete",
          "mark_messages_deleted",
          "delete_conversation_channels"
        ],
        "title": "UserDeletedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserFlaggedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "target_user": {
            "type": "string",
            "x-stream-index": "002"
          },
          "target_users": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "UserFlaggedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserMute": {
        "nullable": true,
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "009"
          },
          "expires": {
            "description": "Date/time of mute expiration",
            "format": "date-time",
            "title": "Expires",
            "type": "string",
            "x-stream-index": "008"
          },
          "target": {
            "$ref": "#/components/schemas/UserObject",
            "description": "User who's muted",
            "title": "Target",
            "x-stream-index": "007"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "010"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "description": "Owner of channel mute",
            "title": "User",
            "x-stream-index": "005"
          }
        },
        "required": [
          "created_at",
          "updated_at"
        ],
        "type": "object"
      },
      "UserMuteRequest": {
        "nullable": true,
        "properties": {
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "title": "Created at",
            "type": "string",
            "x-stream-index": "009"
          },
          "expires": {
            "description": "Date/time of mute expiration",
            "format": "date-time",
            "title": "Expires",
            "type": "string",
            "x-stream-index": "008"
          },
          "target": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "User who's muted",
            "title": "Target",
            "x-stream-index": "007"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "010"
          },
          "user": {
            "$ref": "#/components/schemas/UserObjectRequest",
            "description": "Owner of channel mute",
            "title": "User",
            "x-stream-index": "005"
          }
        },
        "type": "object"
      },
      "UserMutedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "target_user": {
            "type": "string",
            "x-stream-index": "001"
          },
          "target_users": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "UserMutedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserObject": {
        "additionalProperties": true,
        "description": "Represents chat user",
        "properties": {
          "ban_expires": {
            "description": "Expiration date of the ban",
            "format": "date-time",
            "title": "Ban expires",
            "type": "string",
            "x-stream-index": "015"
          },
          "banned": {
            "description": "Whether a user is banned or not",
            "title": "Banned",
            "type": "boolean",
            "x-stream-index": "014"
          },
          "created_at": {
            "description": "Date/time of creation",
            "format": "date-time",
            "readOnly": true,
            "title": "Created at",
            "type": "string",
            "x-stream-index": "007"
          },
          "deactivated_at": {
            "description": "Date of deactivation",
            "format": "date-time",
            "readOnly": true,
            "title": "Deactivated at",
            "type": "string",
            "x-stream-index": "012"
          },
          "deleted_at": {
            "description": "Date/time of deletion",
            "format": "date-time",
            "readOnly": true,
            "title": "Deleted at",
            "type": "string",
            "x-stream-index": "011"
          },
          "id": {
            "description": "Unique user identifier",
            "title": "ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "invisible": {
            "type": "boolean",
            "x-stream-index": "021"
          },
          "language": {
            "description": "Preferred language of a user",
            "title": "Language",
            "type": "string",
            "x-stream-index": "030"
          },
          "last_active": {
            "description": "Date of last activity",
            "format": "date-time",
            "readOnly": true,
            "title": "Last active",
            "type": "string",
            "x-stream-index": "010"
          },
          "online": {
            "description": "Whether a user online or not",
            "readOnly": true,
            "title": "Online",
            "type": "boolean",
            "x-stream-index": "020"
          },
          "push_notifications": {
            "$ref": "#/components/schemas/PushNotificationSettings",
            "x-stream-index": "023"
          },
          "revoke_tokens_issued_before": {
            "description": "Revocation date for tokens",
            "format": "date-time",
            "title": "Revoke tokens issued before",
            "type": "string",
            "x-stream-index": "037"
          },
          "role": {
            "description": "Determines the set of user permissions",
            "title": "Role",
            "type": "string",
            "x-stream-index": "004"
          },
          "teams": {
            "description": "List of teams user is a part of",
            "items": {
              "type": "string"
            },
            "title": "Teams",
            "type": "array",
            "x-stream-index": "031"
          },
          "updated_at": {
            "description": "Date/time of the last update",
            "format": "date-time",
            "readOnly": true,
            "title": "Updated at",
            "type": "string",
            "x-stream-index": "008"
          }
        },
        "required": [
          "id",
          "role",
          "banned",
          "online"
        ],
        "title": "User object",
        "type": "object"
      },
      "UserObjectRequest": {
        "additionalProperties": true,
        "description": "Represents chat user",
        "properties": {
          "ban_expires": {
            "description": "Expiration date of the ban",
            "format": "date-time",
            "title": "Ban expires",
            "type": "string",
            "x-stream-index": "015"
          },
          "banned": {
            "description": "Whether a user is banned or not",
            "title": "Banned",
            "type": "boolean",
            "x-stream-index": "014"
          },
          "id": {
            "description": "Unique user identifier",
            "title": "ID",
            "type": "string",
            "x-stream-index": "003"
          },
          "invisible": {
            "type": "boolean",
            "x-stream-index": "021"
          },
          "language": {
            "description": "Preferred language of a user",
            "title": "Language",
            "type": "string",
            "x-stream-index": "030"
          },
          "push_notifications": {
            "$ref": "#/components/schemas/PushNotificationSettingsRequest",
            "x-stream-index": "023"
          },
          "revoke_tokens_issued_before": {
            "description": "Revocation date for tokens",
            "format": "date-time",
            "title": "Revoke tokens issued before",
            "type": "string",
            "x-stream-index": "037"
          },
          "role": {
            "description": "Determines the set of user permissions",
            "title": "Role",
            "type": "string",
            "x-stream-index": "004"
          },
          "teams": {
            "description": "List of teams user is a part of",
            "items": {
              "type": "string"
            },
            "title": "Teams",
            "type": "array",
            "x-stream-index": "031"
          }
        },
        "required": [
          "id"
        ],
        "title": "User object",
        "type": "object"
      },
      "UserPresenceChangedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "UserPresenceChangedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserReactivatedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "UserReactivatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserResponse": {
        "additionalProperties": true,
        "nullable": true,
        "properties": {
          "ban_expires": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.015"
          },
          "banned": {
            "type": "boolean",
            "x-stream-index": "001.014"
          },
          "created_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.007"
          },
          "deactivated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.012"
          },
          "deleted_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.011"
          },
          "id": {
            "type": "string",
            "x-stream-index": "001.003"
          },
          "invisible": {
            "type": "boolean",
            "x-stream-index": "001.021"
          },
          "language": {
            "type": "string",
            "x-stream-index": "001.030"
          },
          "last_active": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.010"
          },
          "online": {
            "readOnly": true,
            "type": "boolean",
            "x-stream-index": "001.020"
          },
          "push_notifications": {
            "$ref": "#/components/schemas/PushNotificationSettings",
            "x-stream-index": "001.023"
          },
          "revoke_tokens_issued_before": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.037"
          },
          "role": {
            "type": "string",
            "x-stream-index": "001.004"
          },
          "shadow_banned": {
            "description": "Whether user is shadow banned or not",
            "title": "Shadow banned",
            "type": "boolean",
            "x-stream-index": "002"
          },
          "teams": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "001.031"
          },
          "updated_at": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "x-stream-index": "001.008"
          }
        },
        "required": [
          "id",
          "role",
          "banned",
          "online",
          "shadow_banned"
        ],
        "type": "object"
      },
      "UserUnbannedEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "002.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "002.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "005.002"
          },
          "shadow": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "team": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "005.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          }
        },
        "required": [
          "shadow",
          "cid",
          "channel_id",
          "channel_type",
          "type",
          "created_at"
        ],
        "title": "UserUnbannedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserUnmutedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "004.002"
          },
          "target_user": {
            "type": "string",
            "x-stream-index": "002"
          },
          "target_users": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "x-stream-index": "003"
          },
          "type": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "UserUnmutedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserUnreadReminderEvent": {
        "properties": {
          "channels": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ChannelMessages"
            },
            "type": "object",
            "x-stream-index": "003"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "001.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "001.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "002"
          }
        },
        "required": [
          "type",
          "created_at",
          "channels"
        ],
        "title": "UserUnreadReminderEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserUpdatedEvent": {
        "nullable": true,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "001"
          }
        },
        "required": [
          "type",
          "created_at"
        ],
        "title": "UserUpdatedEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserWatchingStartEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "003.002"
          },
          "team": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "type": {
            "type": "string",
            "x-stream-index": "003.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "005.001"
          },
          "watcher_count": {
            "type": "number",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "watcher_count",
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "UserWatchingStartEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UserWatchingStopEvent": {
        "nullable": true,
        "properties": {
          "channel_id": {
            "type": "string",
            "x-stream-index": "004.002"
          },
          "channel_type": {
            "type": "string",
            "x-stream-index": "004.003"
          },
          "cid": {
            "type": "string",
            "x-stream-index": "004.001"
          },
          "created_at": {
            "format": "date-time",
            "type": "string",
            "x-stream-index": "002.002"
          },
          "type": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "user": {
            "$ref": "#/components/schemas/UserObject",
            "x-stream-index": "003.001"
          },
          "watcher_count": {
            "type": "number",
            "x-stream-index": "001.001"
          }
        },
        "required": [
          "watcher_count",
          "type",
          "created_at",
          "cid",
          "channel_id",
          "channel_type"
        ],
        "title": "UserWatchingStopEvent",
        "type": "object",
        "x-stream-is-event": true
      },
      "UsersResponse": {
        "nullable": true,
        "properties": {
          "duration": {
            "type": "string",
            "x-stream-index": "002.001"
          },
          "users": {
            "description": "List of found users",
            "items": {
              "$ref": "#/components/schemas/UserResponse"
            },
            "title": "Users",
            "type": "array",
            "x-stream-index": "001"
          }
        },
        "required": [
          "users",
          "duration"
        ],
        "type": "object"
      },
      "XiaomiConfigFields": {
        "properties": {
          "enabled": {
            "type": "boolean",
            "x-stream-index": "001"
          },
          "package_name": {
            "type": "string",
            "x-stream-index": "002"
          },
          "secret": {
            "type": "string",
            "x-stream-index": "003"
          }
        },
        "required": [
          "enabled"
        ],
        "type": "object"
      },
      "XiaomiConfigRequest": {
        "properties": {
          "Disabled": {
            "type": "boolean",
            "writeOnly": true,
            "x-stream-index": "003"
          },
          "package_name": {
            "type": "string",
            "x-stream-index": "001"
          },
          "secret": {
            "type": "string",
            "x-stream-index": "002"
          }
        },
        "type": "object"
      }
    },
    "securitySchemes": {
      "JWT": {
        "description": "JWT should be always provided when stream-auth-type=jwt.\n\nUsing JWT auth request could be authenticated as user or as server-side.\n\nWhen using user authentication permission checking is going to be applied to requests based on the user that is\nperforming a request.\n\nThe `authorization` header should be a JWT string signed using the secret attached to the API key used to perform\nrequests.\n\n**WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not\nshared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side.\nIf you wish, you can configure your application to ignore authentication (see `disable_auth_check`)\nThe JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well.\n",
        "in": "header",
        "name": "Authorization",
        "type": "apiKey"
      },
      "api_key": {
        "description": "Application API key should be always set in order to authenticate the request.",
        "in": "query",
        "name": "api_key",
        "type": "apiKey"
      },
      "stream-auth-type": {
        "description": "Stream-Auth-Type should be always set in order to authenticate the request. Possible\nvalues: `jwt` or `anonymous`.\n\n`jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization\nheader.\n\n`anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available\nto anonymous users.",
        "in": "header",
        "name": "Stream-Auth-Type",
        "type": "apiKey"
      }
    }
  }
}