openapi: 3.0.3
servers:
  - description: Chat Production API
    url: https://chat.stream-io-api.com
info:
  title: Stream Chat API
  version: v80.2.0
  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
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

        Required permissions:
        - JoinCall
        - ReadChannel
      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

        Required permissions:
        - JoinCall
        - ReadChannel
      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

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - channel.deleted

        Required permissions:
        - DeleteChannel
      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

        Sends events:
        - message.read

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - channel.created
        - member.added
        - member.removed
        - member.updated
        - user.watching.start
      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

        Sends events:
        - channel.deleted

        Required permissions:
        - DeleteChannel
      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

        Sends events:
        - channel.updated

        Required permissions:
        - UpdateChannel
        - UpdateChannelCooldown
        - UpdateChannelFrozen
      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

        Sends events:
        - channel.updated
        - member.added
        - member.removed
        - member.updated
        - message.new

        Required permissions:
        - AddOwnChannelMembership
        - RemoveOwnChannelMembership
        - UpdateChannel
        - UpdateChannelCooldown
        - UpdateChannelFrozen
        - UpdateChannelMembers
      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

        Required permissions:
        - CreateCall
        - ReadChannel
      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

        Sends events:
        - any

        Required permissions:
        - SendCustomEvent
      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

        Required permissions:
        - DeleteAttachment
      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

        Required permissions:
        - UploadAttachment
      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

        Sends events:
        - channel.hidden

        Required permissions:
        - ReadChannel
      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

        Required permissions:
        - DeleteAttachment
      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

        Required permissions:
        - UploadAttachment
      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

        Sends events:
        - message.new
        - message.updated

        Required permissions:
        - AddLinks
        - CreateMessage
        - PinMessage
        - SkipChannelCooldown
        - SkipMessageModeration
        - UseFrozenChannel
      operationId: SendMessage
      parameters:
        - content:
            application/json:
              schema:
                type: string
                writeOnly: true
                x-stream-index: "007.001"
          in: path
          name: type
          required: true
        - content:
            application/json:
              schema:
                type: string
                writeOnly: true
                x-stream-index: "007.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

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - channel.created
        - member.added
        - member.removed
        - member.updated
        - user.watching.start
      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

        Sends events:
        - message.read

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - channel.visible
      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

        Sends events:
        - user.watching.stop
      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

        Sends events:
        - channel.truncated

        Required permissions:
        - DeleteChannel
        - TruncateChannel
      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

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - user.updated
      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:
      description: "\n"
      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

        Sends events:
        - user.updated
      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

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - message.deleted

        Required permissions:
        - DeleteMessage
      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

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - message.updated

        Required permissions:
        - AddLinks
        - PinMessage
        - SkipMessageModeration
        - UpdateMessage
      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

        Sends events:
        - message.updated

        Required permissions:
        - AddLinks
        - PinMessage
        - SkipMessageModeration
        - UpdateMessage
      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

        Sends events:
        - message.new

        Required permissions:
        - RunMessageAction
      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

        Sends events:
        - message.new
        - message.updated
      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

        Sends events:
        - reaction.new
        - reaction.updated

        Required permissions:
        - CreateReaction
        - UseFrozenChannel
      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

        Sends events:
        - reaction.deleted

        Required permissions:
        - DeleteReaction
      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

        Required permissions:
        - ReadChannel
      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
                format: int32
                title: Limit
                type: integer
                writeOnly: true
                x-stream-index: "002"
          in: query
          name: limit
        - content:
            application/json:
              schema:
                description: Number of records to offset
                format: int32
                title: Offset
                type: integer
                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

        Sends events:
        - message.updated

        Required permissions:
        - ReadChannel
      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

        Required permissions:
        - ReadChannel
      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

        Sends events:
        - user.unbanned

        Required permissions:
        - BanChannelMember
        - BanUser
      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

        Sends events:
        - user.banned

        Required permissions:
        - BanChannelMember
        - BanUser
      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

        Sends events:
        - message.flagged
        - user.flagged

        Required permissions:
        - FlagMessage
        - FlagUser
      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

        Required permissions:
        - ReadMessageFlags
      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

        Sends events:
        - user.muted

        Required permissions:
        - MuteUser
      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

        Sends events:
        - channel.muted

        Required permissions:
        - MuteChannel
      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

        Required permissions:
        - FlagMessage
        - FlagUser
      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

        Sends events:
        - user.unmuted

        Required permissions:
        - MuteUser
      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

        Sends events:
        - channel.unmuted

        Required permissions:
        - MuteChannel
      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

        Required permissions:
        - ReadChannel
      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

        Required permissions:
        - ReadChannel
      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

        Required permissions:
        - ReadChannel
      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

        Required permissions:
        - SearchUser
      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

        Sends events:
        - user.presence.changed
        - user.updated
      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

        Sends events:
        - user.updated
      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

        Sends events:
        - user.deactivated
      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.

        Sends events:
        - channel.deleted
        - user.deleted
      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

        Sends events:
        - user.reactivated
      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

        Sends events:
        - channel.deleted
        - message.deleted
        - user.deleted
      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

        Sends events:
        - user.deactivated
      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

        Sends events:
        - custom
      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

        Sends events:
        - user.reactivated
      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
          format: int32
          title: Status code
          type: integer
          x-stream-index: "004"
        code:
          description: API error code
          format: int32
          title: Code
          type: integer
          x-stream-index: "001"
        details:
          description: Additional error-specific information
          items:
            type: integer
          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:
          default: custom
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
      title: AnyEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    App:
      properties:
        agora_options:
          $ref: "#/components/schemas/Config"
          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.018"
        before_message_send_hook_url:
          type: string
          x-stream-index: "001.019"
        call_types:
          additionalProperties:
            $ref: "#/components/schemas/CallType"
          type: object
          x-stream-index: "001.006"
        campaign_enabled:
          type: boolean
          x-stream-index: "001.029"
        cdn_expiration_seconds:
          format: int32
          type: integer
          x-stream-index: "001.033"
        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.020"
        disable_auth_checks:
          type: boolean
          x-stream-index: "001.010"
        disable_permissions_checks:
          type: boolean
          x-stream-index: "001.011"
        enforce_unique_usernames:
          type: string
          x-stream-index: "001.021"
        file_upload_config:
          $ref: "#/components/schemas/FileUploadConfig"
          x-stream-index: "001.025"
        grants:
          additionalProperties:
            items:
              type: string
            type: array
          type: object
          x-stream-index: "001.028"
        hms_options:
          $ref: "#/components/schemas/Config"
          x-stream-index: "001.036"
        image_moderation_enabled:
          type: boolean
          x-stream-index: "001.015"
        image_moderation_labels:
          items:
            type: string
          type: array
          x-stream-index: "001.017"
        image_upload_config:
          $ref: "#/components/schemas/FileUploadConfig"
          x-stream-index: "001.026"
        multi_tenant_enabled:
          type: boolean
          x-stream-index: "001.014"
        name:
          type: string
          x-stream-index: "001.001"
        organization:
          type: string
          x-stream-index: "001.002"
        permission_version:
          type: string
          x-stream-index: "001.012"
        policies:
          additionalProperties:
            items:
              $ref: "#/components/schemas/Policy"
            type: array
          type: object
          x-stream-index: "001.007"
        push_notifications:
          $ref: "#/components/schemas/PushNotificationFields"
          x-stream-index: "001.003"
        reminders_interval:
          format: int32
          type: integer
          x-stream-index: "001.032"
        revoke_tokens_issued_before:
          format: date-time
          type: string
          x-stream-index: "001.027"
        search_backend:
          description: Backend implementation used for search
          enum:
            - elasticsearch
            - postgres
            - disabled
          title: Search Backend
          type: string
          x-stream-index: "001.030"
        sqs_key:
          type: string
          x-stream-index: "001.023"
        sqs_secret:
          type: string
          x-stream-index: "001.024"
        sqs_url:
          type: string
          x-stream-index: "001.022"
        suspended:
          type: boolean
          x-stream-index: "001.008"
        suspended_explanation:
          type: string
          x-stream-index: "001.009"
        user_search_disallowed_roles:
          items:
            type: string
          type: array
          x-stream-index: "001.013"
        video_provider:
          type: string
          x-stream-index: "001.034"
        webhook_events:
          items:
            type: string
          type: array
          x-stream-index: "001.031"
        webhook_url:
          type: string
          x-stream-index: "001.004"
      required:
        - name
        - organization
        - push_notifications
        - webhook_url
        - channel_configs
        - call_types
        - 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:
          format: int32
          type: integer
          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:
          format: int32
          type: integer
          x-stream-index: "022"
        original_width:
          format: int32
          type: integer
          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:
          format: int32
          type: integer
          x-stream-index: "022"
        original_width:
          format: int32
          type: integer
          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
    AudioSettings:
      properties:
        access_request_enabled:
          type: boolean
          x-stream-index: "001"
        opus_dtx_enabled:
          type: boolean
          x-stream-index: "002"
        redundant_coding_enabled:
          type: boolean
          x-stream-index: "003"
      required:
        - access_request_enabled
        - opus_dtx_enabled
        - redundant_coding_enabled
      type: object
    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
    BackstageSettings:
      properties:
        enabled:
          type: boolean
          x-stream-index: "001"
      required:
        - enabled
      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: integer
          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
    BroadcastSettings:
      properties:
        enabled:
          type: boolean
          x-stream-index: "001"
        hls:
          $ref: "#/components/schemas/HLSSettings"
          x-stream-index: "002"
      required:
        - enabled
        - hls
      type: object
    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
    CallSettings:
      properties:
        audio:
          $ref: "#/components/schemas/AudioSettings"
          x-stream-index: "001"
        backstage:
          $ref: "#/components/schemas/BackstageSettings"
          x-stream-index: "002"
        broadcasting:
          $ref: "#/components/schemas/BroadcastSettings"
          x-stream-index: "006"
        geofencing:
          $ref: "#/components/schemas/GeofenceSettings"
          x-stream-index: "007"
        recording:
          $ref: "#/components/schemas/RecordSettings"
          x-stream-index: "005"
        ring:
          $ref: "#/components/schemas/RingSettings"
          x-stream-index: "009"
        screensharing:
          $ref: "#/components/schemas/ScreensharingSettings"
          x-stream-index: "004"
        transcription:
          $ref: "#/components/schemas/TranscriptionSettings"
          x-stream-index: "008"
        video:
          $ref: "#/components/schemas/VideoSettings"
          x-stream-index: "003"
      type: object
    CallType:
      nullable: true
      properties:
        AppPK:
          format: int32
          type: integer
          writeOnly: true
          x-stream-index: "003"
        CreatedAt:
          format: date-time
          type: string
          writeOnly: true
          x-stream-index: "005"
        Name:
          type: string
          writeOnly: true
          x-stream-index: "004"
        PK:
          format: int32
          type: integer
          writeOnly: true
          x-stream-index: "002"
        Settings:
          $ref: "#/components/schemas/CallSettings"
          x-stream-index: "007"
        UpdatedAt:
          format: date-time
          type: string
          writeOnly: true
          x-stream-index: "006"
      required:
        - PK
        - AppPK
        - Name
        - CreatedAt
        - UpdatedAt
      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:
          format: int32
          type: integer
          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:
          format: int32
          type: integer
          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: "028"
        auto_translation_language:
          type: string
          x-stream-index: "029"
        cid:
          type: string
          x-stream-index: "003"
        config:
          $ref: "#/components/schemas/ChannelConfig"
          x-stream-index: "025"
        config_overrides:
          $ref: "#/components/schemas/ChannelConfig"
          x-stream-index: "026"
        cooldown:
          format: int32
          type: integer
          x-stream-index: "030"
        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: "017"
        frozen:
          type: boolean
          x-stream-index: "016"
        id:
          type: string
          x-stream-index: "004"
        invites:
          items:
            $ref: "#/components/schemas/ChannelMember"
          type: array
          x-stream-index: "021"
        last_message_at:
          format: date-time
          type: string
          x-stream-index: "006"
        member_count:
          format: int32
          type: integer
          x-stream-index: "020"
        members:
          items:
            $ref: "#/components/schemas/ChannelMember"
          type: array
          x-stream-index: "019"
        team:
          type: string
          x-stream-index: "027"
        truncated_by:
          $ref: "#/components/schemas/UserObject"
          x-stream-index: "015"
        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:
          format: int32
          maximum: 20000
          type: integer
          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
          format: int32
          maximum: 20000
          title: Max Message Length
          type: integer
          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:
          format: int32
          maximum: 20000
          type: integer
          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:
          format: int32
          maximum: 20000
          type: integer
          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:
          default: channel.created
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
      title: ChannelCreatedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: channel.deleted
          type: string
          x-stream-index: "002.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: ChannelDeletedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: channel.frozen
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: ChannelFrozenEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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"
        hide_for_creator:
          description: Whether this channel will be hidden for the user who created the channel or not
          title: Hide for creator
          type: boolean
          x-stream-index: "008"
        members:
          $ref: "#/components/schemas/PaginationParamsRequest"
          x-stream-index: "010"
        messages:
          $ref: "#/components/schemas/MessagePaginationParamsRequest"
          x-stream-index: "009"
        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: "011"
      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:
          default: channel.hidden
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: channel.kicked
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: ChannelKickedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: channel.muted
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
      title: ChannelMutedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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: integer
          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: integer
          type: array
          x-stream-index: "014"
        truncated_by:
          items:
            type: integer
          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
          format: int32
          title: Cooldown
          type: integer
          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
          format: int32
          title: Member count
          type: integer
          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
          format: int32
          title: Cooldown
          type: integer
          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
          format: int32
          title: Member count
          type: integer
          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:
          format: int32
          type: integer
          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
          format: int32
          title: Watcher count
          type: integer
          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:
          default: channel.truncated
          type: string
          x-stream-index: "002.001"
      required:
        - cid
        - channel_id
        - channel_type
        - type
        - created_at
      title: ChannelTruncatedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          format: int32
          maximum: 20000
          type: integer
          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:
          default: channel.unfrozen
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: ChannelUnFrozenEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    ChannelUnmutedEvent:
      nullable: true
      properties:
        created_at:
          format: date-time
          type: string
          x-stream-index: "001.002"
        type:
          default: channel.unmuted
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
      title: ChannelUnmutedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: channel.updated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: channel.visible
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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
    ChatEvent:
      description: The discriminator object for all websocket events, you should use this to map event payloads to their own type
      discriminator:
        mapping:
          any: "#/components/schemas/AnyEvent"
          channel.created: "#/components/schemas/ChannelCreatedEvent"
          channel.deleted: "#/components/schemas/ChannelDeletedEvent"
          channel.frozen: "#/components/schemas/ChannelFrozenEvent"
          channel.hidden: "#/components/schemas/ChannelHiddenEvent"
          channel.kicked: "#/components/schemas/ChannelKickedEvent"
          channel.muted: "#/components/schemas/ChannelMutedEvent"
          channel.truncated: "#/components/schemas/ChannelTruncatedEvent"
          channel.unfrozen: "#/components/schemas/ChannelUnFrozenEvent"
          channel.unmuted: "#/components/schemas/ChannelUnmutedEvent"
          channel.updated: "#/components/schemas/ChannelUpdatedEvent"
          channel.visible: "#/components/schemas/ChannelVisibleEvent"
          custom: "#/components/schemas/AnyEvent"
          health.check: "#/components/schemas/HealthCheckEvent"
          member.added: "#/components/schemas/MemberAddedEvent"
          member.removed: "#/components/schemas/MemberRemovedEvent"
          member.updated: "#/components/schemas/MemberUpdatedEvent"
          message.deleted: "#/components/schemas/MessageDeletedEvent"
          message.flagged: "#/components/schemas/MessageFlaggedEvent"
          message.new: "#/components/schemas/MessageNewEvent"
          message.read: "#/components/schemas/MessageReadEvent"
          message.unblocked: "#/components/schemas/MessageUnblockedEvent"
          message.updated: "#/components/schemas/MessageUpdatedEvent"
          notification.added_to_channel: "#/components/schemas/NotificationAddedToChannelEvent"
          notification.channel_deleted: "#/components/schemas/NotificationChannelDeletedEvent"
          notification.channel_mutes_updated: "#/components/schemas/NotificationChannelMutesUpdatedEvent"
          notification.channel_truncated: "#/components/schemas/NotificationChannelTruncatedEvent"
          notification.invite_accepted: "#/components/schemas/NotificationInviteAcceptedEvent"
          notification.invite_rejected: "#/components/schemas/NotificationInviteRejectedEvent"
          notification.invited: "#/components/schemas/NotificationInvitedEvent"
          notification.mark_read: "#/components/schemas/NotificationMarkReadEvent"
          notification.mark_unread: "#/components/schemas/NotificationMarkUnreadEvent"
          notification.message_new: "#/components/schemas/NotificationNewMessageEvent"
          notification.mutes_updated: "#/components/schemas/NotificationMutesUpdatedEvent"
          notification.removed_from_channel: "#/components/schemas/NotificationRemovedFromChannelEvent"
          reaction.deleted: "#/components/schemas/ReactionDeletedEvent"
          reaction.new: "#/components/schemas/ReactionNewEvent"
          reaction.updated: "#/components/schemas/ReactionUpdatedEvent"
          typing.start: "#/components/schemas/TypingStartEvent"
          typing.stop: "#/components/schemas/TypingStopEvent"
          user.banned: "#/components/schemas/UserBannedEvent"
          user.deactivated: "#/components/schemas/UserDeactivatedEvent"
          user.deleted: "#/components/schemas/UserDeletedEvent"
          user.flagged: "#/components/schemas/UserFlaggedEvent"
          user.muted: "#/components/schemas/UserMutedEvent"
          user.presence.changed: "#/components/schemas/UserPresenceChangedEvent"
          user.reactivated: "#/components/schemas/UserReactivatedEvent"
          user.unbanned: "#/components/schemas/UserUnbannedEvent"
          user.unmuted: "#/components/schemas/UserUnmutedEvent"
          user.unread_message_reminder: "#/components/schemas/UserUnreadReminderEvent"
          user.updated: "#/components/schemas/UserUpdatedEvent"
          user.watching.start: "#/components/schemas/UserWatchingStartEvent"
          user.watching.stop: "#/components/schemas/UserWatchingStopEvent"
        propertyName: type
      oneOf:
        - $ref: "#/components/schemas/AnyEvent"
        - $ref: "#/components/schemas/AnyEvent"
        - $ref: "#/components/schemas/ChannelCreatedEvent"
        - $ref: "#/components/schemas/ChannelDeletedEvent"
        - $ref: "#/components/schemas/ChannelFrozenEvent"
        - $ref: "#/components/schemas/ChannelHiddenEvent"
        - $ref: "#/components/schemas/ChannelKickedEvent"
        - $ref: "#/components/schemas/ChannelMutedEvent"
        - $ref: "#/components/schemas/ChannelTruncatedEvent"
        - $ref: "#/components/schemas/ChannelUnFrozenEvent"
        - $ref: "#/components/schemas/ChannelUnmutedEvent"
        - $ref: "#/components/schemas/ChannelUpdatedEvent"
        - $ref: "#/components/schemas/ChannelVisibleEvent"
        - $ref: "#/components/schemas/HealthCheckEvent"
        - $ref: "#/components/schemas/MemberAddedEvent"
        - $ref: "#/components/schemas/MemberRemovedEvent"
        - $ref: "#/components/schemas/MemberUpdatedEvent"
        - $ref: "#/components/schemas/MessageDeletedEvent"
        - $ref: "#/components/schemas/MessageFlaggedEvent"
        - $ref: "#/components/schemas/MessageNewEvent"
        - $ref: "#/components/schemas/MessageReadEvent"
        - $ref: "#/components/schemas/MessageUnblockedEvent"
        - $ref: "#/components/schemas/MessageUpdatedEvent"
        - $ref: "#/components/schemas/NotificationAddedToChannelEvent"
        - $ref: "#/components/schemas/NotificationChannelDeletedEvent"
        - $ref: "#/components/schemas/NotificationChannelMutesUpdatedEvent"
        - $ref: "#/components/schemas/NotificationChannelTruncatedEvent"
        - $ref: "#/components/schemas/NotificationInviteAcceptedEvent"
        - $ref: "#/components/schemas/NotificationInviteRejectedEvent"
        - $ref: "#/components/schemas/NotificationInvitedEvent"
        - $ref: "#/components/schemas/NotificationMarkReadEvent"
        - $ref: "#/components/schemas/NotificationMarkUnreadEvent"
        - $ref: "#/components/schemas/NotificationMutesUpdatedEvent"
        - $ref: "#/components/schemas/NotificationNewMessageEvent"
        - $ref: "#/components/schemas/NotificationRemovedFromChannelEvent"
        - $ref: "#/components/schemas/ReactionDeletedEvent"
        - $ref: "#/components/schemas/ReactionNewEvent"
        - $ref: "#/components/schemas/ReactionUpdatedEvent"
        - $ref: "#/components/schemas/TypingStartEvent"
        - $ref: "#/components/schemas/TypingStopEvent"
        - $ref: "#/components/schemas/UserBannedEvent"
        - $ref: "#/components/schemas/UserDeactivatedEvent"
        - $ref: "#/components/schemas/UserDeletedEvent"
        - $ref: "#/components/schemas/UserFlaggedEvent"
        - $ref: "#/components/schemas/UserMutedEvent"
        - $ref: "#/components/schemas/UserPresenceChangedEvent"
        - $ref: "#/components/schemas/UserReactivatedEvent"
        - $ref: "#/components/schemas/UserUnbannedEvent"
        - $ref: "#/components/schemas/UserUnmutedEvent"
        - $ref: "#/components/schemas/UserUnreadReminderEvent"
        - $ref: "#/components/schemas/UserUpdatedEvent"
        - $ref: "#/components/schemas/UserWatchingStartEvent"
        - $ref: "#/components/schemas/UserWatchingStopEvent"
    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:
          format: int32
          type: integer
          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
          format: int32
          title: Maximum message length
          type: integer
          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:
          format: int32
          maximum: 20000
          type: integer
          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.
            Conversation channel is any channel which only has two members one of which is the user being deleted.

            * null or empty string - doesn't delete any conversation channels
            * soft - marks all conversation channels as deleted (same effect as Delete Channels with 'hard' option disabled)
            * hard - deletes channel and all its data completely including messages (same effect as Delete Channels with 'hard' option enabled)
          enum:
            - soft
            - hard
          title: Delete Conversations
          type: string
          x-stream-index: 001.002.003
        messages:
          description: |
            Message delete mode.

            * null or empty string - doesn't delete user messages
            * soft - marks all user messages as deleted without removing any related message data
            * pruning - marks all user messages as deleted, nullifies message information and removes some message data such as reactions and flags
            * hard - deletes messages completely with all related information
          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.

            * soft - marks user as deleted and retains all user data
            * pruning - marks user as deleted and nullifies user information
            * hard - deletes user completely. Requires 'hard' option for messages and conversations as well
          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
          format: int32
          title: Watcher count
          type: integer
          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
          format: int32
          title: Watcher count
          type: integer
          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
    GeofenceSettings:
      properties:
        names:
          items:
            type: string
          type: array
          x-stream-index: "001"
      required:
        - names
      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:
          format: int32
          type: integer
          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:
          format: int32
          type: integer
          x-stream-index: "001.022"
        original_width:
          format: int32
          type: integer
          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
    HLSSettings:
      properties:
        auto_on:
          type: boolean
          x-stream-index: "001"
        enabled:
          type: boolean
          x-stream-index: "002"
        quality_tracks:
          items:
            type: string
          type: array
          x-stream-index: "003"
      required:
        - auto_on
        - enabled
        - quality_tracks
      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:
          default: health.check
          type: string
          x-stream-index: "003.001"
      required:
        - cid
        - type
        - created_at
      title: HealthCheckEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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
          format: int32
          title: Height
          type: integer
          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
          format: int32
          title: Width
          type: integer
          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
          format: int32
          title: Height
          type: integer
          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
          format: int32
          title: Width
          type: integer
          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:
          format: int64
          type: integer
          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
          format: int32
          title: Limit
          type: integer
          x-stream-index: "001"
        remaining:
          description: The number of remaining calls in the current window
          format: int64
          title: Remaining
          type: integer
          x-stream-index: "002"
        reset:
          description: The Unix timestamp of the next window
          format: int64
          title: Reset
          type: integer
          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/MessageReadEvent"
          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:
          default: member.added
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: member.removed
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: member.updated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
            format: int32
            type: integer
          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:
            format: int32
            type: integer
          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
          format: int32
          title: Reply count
          type: integer
          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:
          default: message.deleted
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: message.flagged
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: message.new
          type: string
          x-stream-index: "004.001"
        user:
          $ref: "#/components/schemas/UserObject"
          x-stream-index: "003.001"
        watcher_count:
          format: int32
          type: integer
          x-stream-index: "002.001"
      required:
        - watcher_count
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: MessageNewEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          format: int32
          minimum: 0
          type: integer
          x-stream-index: "001"
        offset:
          format: int32
          type: integer
          x-stream-index: "002"
      type: object
    MessageReadEvent:
      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"
        last_read_message_id:
          type: string
          x-stream-index: "005"
        team:
          type: string
          x-stream-index: "003.001"
        type:
          default: message.read
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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: integer
          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: integer
          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: integer
          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: integer
          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"
        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: "017"
        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:
            format: int32
            type: integer
          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:
            format: int32
            type: integer
          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
          format: int32
          title: Reply count
          type: integer
          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:
          default: message.unblocked
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: message.updated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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"
        automod_response:
          x-stream-index: "005"
        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
        - automod_response
      type: object
    ModerationResponseRequest:
      properties:
        action:
          type: string
          x-stream-index: "004"
        automod_response:
          x-stream-index: "005"
        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: integer
          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: integer
          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:
          default: notification.added_to_channel
          type: string
          x-stream-index: "002.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: NotificationAddedToChannelEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.channel_deleted
          type: string
          x-stream-index: "002.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: NotificationChannelDeletedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    NotificationChannelMutesUpdatedEvent:
      properties:
        created_at:
          format: date-time
          type: string
          x-stream-index: "002.002"
        me:
          $ref: "#/components/schemas/OwnUser"
          x-stream-index: "001"
        type:
          default: notification.channel_mutes_updated
          type: string
          x-stream-index: "002.001"
      required:
        - me
        - type
        - created_at
      title: NotificationChannelMutesUpdatedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.channel_truncated
          type: string
          x-stream-index: "001.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: NotificationChannelTruncatedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.invite_accepted
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.invite_rejected
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.invited
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          format: int32
          type: integer
          x-stream-index: "006"
        type:
          default: notification.mark_read
          type: string
          x-stream-index: "001.001"
        unread_channels:
          format: int32
          type: integer
          x-stream-index: "007"
        unread_count:
          format: int32
          type: integer
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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"
        first_unread_message_id:
          type: string
          x-stream-index: "005"
        last_read_at:
          format: date-time
          type: string
          x-stream-index: "006"
        team:
          type: string
          x-stream-index: "002.001"
        total_unread_count:
          format: int32
          type: integer
          x-stream-index: "009"
        type:
          default: notification.mark_unread
          type: string
          x-stream-index: "001.001"
        unread_channels:
          format: int32
          type: integer
          x-stream-index: "010"
        unread_count:
          format: int32
          type: integer
          x-stream-index: "008"
        unread_messages:
          format: int32
          type: integer
          x-stream-index: "007"
        user:
          $ref: "#/components/schemas/UserObject"
          x-stream-index: "004.001"
      required:
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
        - first_unread_message_id
        - last_read_at
        - unread_messages
        - unread_count
        - total_unread_count
        - unread_channels
      title: NotificationMarkUnreadEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    NotificationMutesUpdatedEvent:
      properties:
        created_at:
          format: date-time
          type: string
          x-stream-index: "002.002"
        me:
          $ref: "#/components/schemas/OwnUser"
          x-stream-index: "001"
        type:
          default: notification.mutes_updated
          type: string
          x-stream-index: "002.001"
      required:
        - me
        - type
        - created_at
      title: NotificationMutesUpdatedEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.message_new
          type: string
          x-stream-index: "003.001"
      required:
        - message
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: NotificationNewMessageEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: notification.removed_from_channel
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          format: int32
          type: integer
          x-stream-index: "028"
        unread_channels:
          format: int32
          type: integer
          x-stream-index: "029"
        unread_count:
          format: int32
          type: integer
          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:
          format: int32
          type: integer
          x-stream-index: "028"
        unread_channels:
          format: int32
          type: integer
          x-stream-index: "029"
        unread_count:
          format: int32
          type: integer
          x-stream-index: "027"
        updated_at:
          format: date-time
          type: string
          x-stream-index: "008"
      type: object
    PaginationParamsRequest:
      properties:
        id_gt:
          format: int32
          type: integer
          x-stream-index: "004"
        id_gte:
          format: int32
          type: integer
          x-stream-index: "003"
        id_lt:
          format: int32
          type: integer
          x-stream-index: "006"
        id_lte:
          format: int32
          type: integer
          x-stream-index: "005"
        limit:
          format: int32
          minimum: 0
          type: integer
          x-stream-index: "001"
        offset:
          format: int32
          type: integer
          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: integer
          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:
          format: int32
          type: integer
          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
          format: int32
          maximum: 999
          minimum: 1
          title: Priority
          type: integer
          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
          format: int32
          maximum: 999
          minimum: 1
          title: Priority
          type: integer
          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: integer
          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: integer
          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:
          format: int32
          maximum: 300
          type: integer
          x-stream-index: "004"
        offset:
          format: int32
          maximum: 10000
          type: integer
          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:
          format: int32
          maximum: 20
          minimum: 1
          type: integer
          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
          format: int32
          title: Limit
          type: integer
          x-stream-index: "008"
        member_limit:
          description: Number of members to limit
          format: int32
          maximum: 100
          minimum: 0
          title: Member limit
          type: integer
          x-stream-index: "007"
        message_limit:
          description: Number of messages to limit
          format: int32
          minimum: 0
          title: Message limit
          type: integer
          x-stream-index: "006"
        offset:
          description: Channel pagination offset
          format: int32
          title: Offset
          type: integer
          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
          format: int32
          maximum: 300
          minimum: 0
          title: Limit
          type: integer
          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
          format: int32
          maximum: 10000
          title: Offset
          type: integer
          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:
          format: int32
          maximum: 300
          minimum: 0
          type: integer
          x-stream-index: "002.003"
        offset:
          format: int32
          maximum: 10000
          type: integer
          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:
          format: int32
          maximum: 20
          minimum: 1
          type: integer
          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:
          format: int32
          maximum: 20
          minimum: 1
          type: integer
          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:
          format: int32
          maximum: 100
          minimum: 0
          type: integer
          x-stream-index: "004.003"
        offset:
          format: int32
          maximum: 1000
          type: integer
          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
          format: int32
          title: Score
          type: integer
          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:
          default: reaction.deleted
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: reaction.new
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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
          format: int32
          title: Score
          type: integer
          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:
          default: reaction.updated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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"
        last_read_message_id:
          type: string
          x-stream-index: "004"
        unread_messages:
          format: int32
          type: integer
          x-stream-index: "003"
        user:
          $ref: "#/components/schemas/UserObject"
          x-stream-index: "001"
      required:
        - last_read
        - unread_messages
        - last_read_message_id
      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
    RecordSettings:
      properties:
        audio_only:
          type: boolean
          x-stream-index: "001"
        mode:
          enum:
            - available
            - disabled
            - auto-on
          type: string
          x-stream-index: "002"
        quality:
          enum:
            - audio-only
            - 360p
            - 480p
            - 720p
            - 1080p
            - 1440p
          type: string
          x-stream-index: "003"
      required:
        - audio_only
        - mode
        - quality
      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
    RingSettings:
      properties:
        auto_cancel_timeout_ms:
          format: int32
          type: integer
          x-stream-index: "002"
        auto_reject_timeout_ms:
          format: int32
          type: integer
          x-stream-index: "001"
      required:
        - auto_reject_timeout_ms
        - auto_cancel_timeout_ms
      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:
          format: int64
          minimum: 0
          type: integer
          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
    ScreensharingSettings:
      properties:
        access_request_enabled:
          type: boolean
          x-stream-index: "002"
        enabled:
          type: boolean
          x-stream-index: "001"
      required:
        - enabled
        - access_request_enabled
      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
          format: int32
          title: Limit
          type: integer
          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.
          format: int32
          title: Offset
          type: integer
          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:
            format: int32
            type: integer
          type: object
          x-stream-index: "001.014"
        reaction_scores:
          additionalProperties:
            format: int32
            type: integer
          type: object
          x-stream-index: "001.015"
        reply_count:
          format: int32
          type: integer
          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
          format: int32
          title: Channel Search Count
          type: integer
          x-stream-index: "003"
        warning_code:
          description: Code corresponding to the warning
          format: int32
          title: Warning Code
          type: integer
          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:
          format: int32
          type: integer
          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"
        keep_channel_hidden:
          description: Keeps the channel hidden for the sender
          title: Keep channel hidden
          type: boolean
          x-stream-index: "006"
        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:
          format: int32
          type: integer
          x-stream-index: "002"
        field:
          type: string
          x-stream-index: "001"
      type: object
    SortParamRequest:
      nullable: true
      properties:
        direction:
          format: int32
          type: integer
          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
    TranscriptionSettings:
      properties:
        closed_caption_mode:
          type: string
          x-stream-index: "002"
        mode:
          enum:
            - available
            - disabled
            - auto-on
          type: string
          x-stream-index: "001"
      required:
        - mode
        - closed_caption_mode
      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:
          default: typing.start
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: typing.stop
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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: integer
          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: integer
          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:
          format: int32
          maximum: 1209600
          minimum: 14400
          type: integer
          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:
          format: int32
          maximum: 86400
          minimum: 60
          type: integer
          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
          format: int32
          maximum: 120
          minimum: 0
          title: Cool down
          type: integer
          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:
          format: int32
          maximum: 20000
          type: integer
          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:
          format: int32
          maximum: 20000
          type: integer
          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:
          default: user.banned
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.deactivated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.deleted
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.flagged
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.muted
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.presence.changed
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    UserReactivatedEvent:
      nullable: true
      properties:
        created_at:
          format: date-time
          type: string
          x-stream-index: "002.002"
        type:
          default: user.reactivated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.unbanned
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.unmuted
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.unread_message_reminder
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    UserUpdatedEvent:
      nullable: true
      properties:
        created_at:
          format: date-time
          type: string
          x-stream-index: "002.002"
        type:
          default: user.updated
          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-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.watching.start
          type: string
          x-stream-index: "003.001"
        user:
          $ref: "#/components/schemas/UserObject"
          x-stream-index: "005.001"
        watcher_count:
          format: int32
          type: integer
          x-stream-index: "001.001"
      required:
        - watcher_count
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: UserWatchingStartEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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:
          default: user.watching.stop
          type: string
          x-stream-index: "002.001"
        user:
          $ref: "#/components/schemas/UserObject"
          x-stream-index: "003.001"
        watcher_count:
          format: int32
          type: integer
          x-stream-index: "001.001"
      required:
        - watcher_count
        - type
        - created_at
        - cid
        - channel_id
        - channel_type
      title: UserWatchingStopEvent
      type: object
      x-stream-event-client-type: true
      x-stream-is-event: true
      x-stream-ws-base-event-name: ChatEvent
    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
    VideoSettings:
      properties:
        access_request_enabled:
          type: boolean
          x-stream-index: "002"
        enabled:
          type: boolean
          x-stream-index: "001"
      required:
        - enabled
        - access_request_enabled
      type: object
    WSClientEvent:
      description: This is just a placeholder for all client events
      properties:
        connection_id:
          type: string
      type: object
      x-stream-is-ws-client-event: true
    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
    connectRequestQueryRequest:
      nullable: true
      type: object
  securitySchemes:
    JWT:
      description: |
        JWT should be always provided when stream-auth-type=jwt.

        Using JWT auth request could be authenticated as user or as server-side.

        When using user authentication permission checking is going to be applied to requests based on the user that is
        performing a request.

        The `authorization` header should be a JWT string signed using the secret attached to the API key used to perform
        requests.

        **WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not
        shared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side.
        If you wish, you can configure your application to ignore authentication (see `disable_auth_check`)
        The JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well.
      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
        values: `jwt` or `anonymous`.

        `jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization
        header.

        `anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available
        to anonymous users.
      in: header
      name: Stream-Auth-Type
      type: apiKey
