swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: Azure Bot Service is a platform for creating smart conversational agents.
  title: Azure Bot Service
  version: 2017-12-01
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/botservice/resource-manager/Microsoft.BotService/preview/2017-12-01/botservice.json
      version: "2.0"
  x-preferred: false
  x-providerName: azure.com
  x-serviceName: botservice
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
parameters:
  apiVersionParameter:
    description: Version of the API to be used with the client request. Current version is 2017-12-01
    in: query
    name: api-version
    required: true
    type: string
  channelNameParameter:
    description: The name of the Channel resource.
    enum:
      - FacebookChannel
      - EmailChannel
      - KikChannel
      - TelegramChannel
      - SlackChannel
      - MsTeamsChannel
      - SkypeChannel
      - WebChatChannel
      - DirectLineChannel
      - SmsChannel
    in: path
    name: channelName
    required: true
    type: string
    x-ms-enum:
      modelAsString: false
      name: channelName
      values:
        - value: FacebookChannel
        - value: EmailChannel
        - value: KikChannel
        - value: TelegramChannel
        - value: SlackChannel
        - value: MsTeamsChannel
        - value: SkypeChannel
        - value: WebChatChannel
        - value: DirectLineChannel
        - value: SmsChannel
    x-ms-parameter-location: method
  connectionNameParameter:
    description: The name of the Bot Service Connection Setting resource
    in: path
    maxLength: 64
    minLength: 2
    name: connectionName
    pattern: ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$
    required: true
    type: string
    x-ms-parameter-location: method
  resourceGroupNameParameter:
    description: The name of the Bot resource group in the user subscription.
    in: path
    maxLength: 64
    minLength: 2
    name: resourceGroupName
    pattern: ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$
    required: true
    type: string
    x-ms-parameter-location: method
  resourceNameParameter:
    description: The name of the Bot resource.
    in: path
    maxLength: 64
    minLength: 2
    name: resourceName
    pattern: ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionIdParameter:
    description: Azure Subscription ID.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  /providers/Microsoft.BotService/botServices/checkNameAvailability:
    get:
      description: Check whether a bot name is available.
      operationId: Bots_GetCheckNameAvailability
      parameters:
        - description: The request body parameters to provide for the check name availability request
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/CheckNameAvailabilityRequestBody"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: |-
            The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.
            The nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.
            For a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. 
          schema:
            $ref: "#/definitions/CheckNameAvailabilityResponseBody"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        List Bots by Subscription:
          parameters:
            api-version: 2017-01-01
            parameters:
              name: testbotname
              type: string
          responses:
            "200":
              body:
                message: custom message from server
                valid: true
  /providers/Microsoft.BotService/operations:
    get:
      deprecated: false
      description: Lists all the available BotService operations.
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: OK.
          schema:
            $ref: "#/definitions/OperationEntityListResult"
      tags:
        - Operations
      x-ms-examples:
        Get Operations:
          parameters:
            api-version: 2017-04-18
          responses:
            "200":
              body:
                value:
                  - display:
                      description: Read Bot Service
                      operation: Read Bot Service
                      provider: Microsoft Bot Service
                      resource: Bot Service
                    name: Microsoft.BotService/botService/read
                    origin: user,system
                  - display:
                      description: Writes Bot Service
                      operation: Write Bot Service
                      provider: Microsoft Bot Service
                      resource: Bot Service
                    name: Microsoft.BotService/botService/write
                    origin: user,system
                  - display:
                      description: Deletes Bot Service
                      operation: Delete Bot Service
                      provider: Microsoft Bot Service
                      resource: Bot Service
                    name: Microsoft.BotService/botService/delete
                    origin: user,system
                  - display:
                      description: Check bot name availability
                      operation: Check bot name availability
                      provider: Microsoft Bot Service
                      resource: Bot Service name availability
                    name: Microsoft.BotService/botService/botName/read
                    origin: user,system
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.BotService/botServices":
    get:
      description: Returns all the resources of a particular type belonging to a subscription.
      operationId: Bots_List
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: |-
            The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.
            The nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses. If a resource provider does not support paging, it should return the same body but leave nextLink empty for future compatibility.
            For a detailed explanation of each field in the response body, please refer to the request body description in the PUT resource section. 
          schema:
            $ref: "#/definitions/BotResponseList"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        List Bots by Subscription:
          parameters:
            api-version: 2017-01-01
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                value:
                  - etag: etag1
                    id: someid
                    kind: sdk
                    location: West US
                    name: samplename
                    properties:
                      configuredChannels:
                        - facebook
                        - groupme
                      description: The description of the bot
                      developerAppInsightKey: appinsightskey
                      developerAppInsightsApplicationId: appinsightsappid
                      displayName: The Name of the bot
                      enabledChannels:
                        - facebook
                      endpoint: http://mybot.coffee
                      endpointVersion: version
                      iconUrl: http://myicon
                      luisAppIds:
                        - luisappid1
                        - luisappid2
                      msaAppId: msaappid
                    tags:
                      tag1: value1
                      tag2: value2
                    type: sampletype
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/providers/Microsoft.BotService/listAuthServiceProviders":
    post:
      description: Lists the available Service Providers for creating Connection Settings
      operationId: BotConnection_ListServiceProviders
      parameters:
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: If resource is retrieved successfully, the service should return 200 (OK).
          schema:
            $ref: "#/definitions/ServiceProviderResponseList"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - ListServiceProviders
      x-ms-examples:
        List Auth Service Providers:
          parameters:
            api-version: 2017-01-01
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                value:
                  - properties:
                      devPortalUrl: sampleDevPortalUrl
                      displayName: sample display name
                      iconUrl: sampleIconUrl
                      id: sampleId
                      parameters:
                        - default: sampleDefaultValue
                          description: sampleDescription
                          displayName: sampleDisplayName
                          helpUrl: sampleHelpUrl
                          name: sampleParameterName
                          type: sampleParameterType
                      serviceProviderName: sampleServiceProvider
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices":
    get:
      description: Returns all the resources of a particular type belonging to a resource group
      operationId: Bots_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: |-
            The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.
            The nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with "value" property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.
            The nextLink should be implemented using following query parameters:
            · skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.
            · top: the optional client query parameter which defines the maximum number of records to be returned by the server.
            Implementation details:
            · NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. 
            · Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. 
            Clients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.
          schema:
            $ref: "#/definitions/BotResponseList"
        default:
          description: Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        List Bots by Resource Group:
          parameters:
            api-version: 2017-01-01
            resourceGroupName: OneResourceGroupName
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                value:
                  - etag: etag1
                    id: someid
                    kind: sdk
                    location: West US
                    name: samplename
                    properties:
                      configuredChannels:
                        - facebook
                        - groupme
                      description: The description of the bot
                      developerAppInsightKey: appinsightskey
                      developerAppInsightsApplicationId: appinsightsappid
                      displayName: The Name of the bot
                      enabledChannels:
                        - facebook
                      endpoint: http://mybot.coffee
                      endpointVersion: version
                      iconUrl: http://myicon
                      luisAppIds:
                        - luisappid1
                        - luisappid2
                      msaAppId: msaappid
                    tags:
                      tag1: value1
                      tag2: value2
                    type: sampletype
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}":
    delete:
      description: "Deletes a Bot Service from the resource group. "
      operationId: Bots_Delete
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: A 200 (OK) should be returned if the object exists and was deleted successfully;
        "204":
          description: a 204 (NoContent) should be used if the resource does not exist and the request is well formed.
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        Delete Bot:
          parameters:
            api-version: 2017-01-01
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200": {}
            "204": {}
    get:
      description: Returns a BotService specified by the parameters.
      operationId: Bots_Get
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: "The resource provider should return 200 (OK) to indicate that the operation completed successfully. "
          schema:
            $ref: "#/definitions/Bot"
        default:
          description: Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        Get Bot:
          parameters:
            api-version: 2017-01-01
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                etag: etag1
                id: someid
                kind: sdk
                location: West US
                name: samplename
                properties:
                  configuredChannels:
                    - facebook
                    - groupme
                  description: The description of the bot
                  developerAppInsightKey: appinsightskey
                  developerAppInsightsApplicationId: appinsightsappid
                  displayName: The Name of the bot
                  enabledChannels:
                    - facebook
                  endpoint: http://mybot.coffee
                  endpointVersion: version
                  iconUrl: http://myicon
                  luisAppIds:
                    - luisappid1
                    - luisappid2
                  msaAppId: msaappid
                tags:
                  tag1: value1
                  tag2: value2
                type: sampletype
    patch:
      description: Updates a Bot Service
      operationId: Bots_Update
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - description: The parameters to provide for the created bot.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/Bot"
          x-ms-client-flatten: true
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: "The resource provider should return 200 (OK) to indicate that the operation completed successfully. "
          schema:
            $ref: "#/definitions/Bot"
        "201":
          description: If resource is updated successfully, the service should return 201 (Created). Execution to continue asynchronously.
          schema:
            $ref: "#/definitions/Bot"
        default:
          description: Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        Update Bot:
          parameters:
            api-version: 2017-01-01
            parameters:
              etag: etag1
              id: someid
              kind: sdk
              location: West US
              name: samplename
              properties:
                description: The description of the bot
                developerAppInsightKey: appinsightskey
                developerAppInsightsApiKey: appinsightsapikey
                developerAppInsightsApplicationId: appinsightsappid
                displayName: The Name of the bot
                endpoint: http://mybot.coffee
                iconUrl: http://myicon
                luisAppIds:
                  - luisappid1
                  - luisappid2
                luisKey: luiskey
                msaAppId: msaappid
              sku:
                name: S1
              tags:
                tag1: value1
                tag2: value2
              type: sampletype
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                etag: etag1
                id: someid
                kind: sdk
                location: West US
                name: samplename
                properties:
                  configuredChannels:
                    - facebook
                    - groupme
                  description: The description of the bot
                  developerAppInsightKey: appinsightskey
                  developerAppInsightsApplicationId: appinsightsappid
                  displayName: The Name of the bot
                  enabledChannels:
                    - facebook
                  endpoint: http://mybot.coffee
                  endpointVersion: version
                  iconUrl: http://myicon
                  luisAppIds:
                    - luisappid1
                    - luisappid2
                  msaAppId: msaappid
                tags:
                  tag1: value1
                  tag2: value2
                type: sampletype
            "201":
              body:
                etag: etag1
                id: someid
                kind: sdk
                location: West US
                name: samplename
                properties:
                  configuredChannels:
                    - facebook
                    - groupme
                  description: The description of the bot
                  developerAppInsightKey: appinsightskey
                  developerAppInsightsApplicationId: appinsightsappid
                  displayName: The Name of the bot
                  enabledChannels:
                    - facebook
                  endpoint: http://mybot.coffee
                  endpointVersion: version
                  iconUrl: http://myicon
                  luisAppIds:
                    - luisappid1
                    - luisappid2
                  msaAppId: msaappid
                tags:
                  tag1: value1
                  tag2: value2
                type: sampletype
    put:
      description: Creates a Bot Service. Bot Service is a resource group wide resource type.
      operationId: Bots_Create
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - description: The parameters to provide for the created bot.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/Bot"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: If resource is created successfully or already existed, the service should return 200 (OK).
          schema:
            $ref: "#/definitions/Bot"
        "201":
          description: If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.
          schema:
            $ref: "#/definitions/Bot"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Bot
      x-ms-examples:
        Create Bot:
          parameters:
            api-version: 2017-01-01
            parameters:
              etag: etag1
              id: someid
              kind: sdk
              location: West US
              name: samplename
              properties:
                description: The description of the bot
                developerAppInsightKey: appinsightskey
                developerAppInsightsApiKey: appinsightsapikey
                developerAppInsightsApplicationId: appinsightsappid
                displayName: The Name of the bot
                endpoint: http://mybot.coffee
                iconUrl: http://myicon
                luisAppIds:
                  - luisappid1
                  - luisappid2
                luisKey: luiskey
                msaAppId: exampleappid
              sku:
                name: S1
              tags:
                tag1: value1
                tag2: value2
              type: sampletype
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                etag: etag1
                id: someid
                kind: sdk
                location: West US
                name: samplename
                properties:
                  configuredChannels:
                    - facebook
                    - groupme
                  description: The description of the bot
                  developerAppInsightKey: appinsightskey
                  developerAppInsightsApplicationId: appinsightsappid
                  displayName: The Name of the bot
                  enabledChannels:
                    - facebook
                  endpoint: http://mybot.coffee
                  endpointVersion: version
                  iconUrl: http://myicon
                  luisAppIds:
                    - luisappid1
                    - luisappid2
                  msaAppId: msaappid
                tags:
                  tag1: value1
                  tag2: value2
                type: sampletype
            "201":
              body:
                id: someid
                kind: sdk
                location: West US
                name: samplename
                properties:
                  configuredChannels:
                    - facebook
                    - groupme
                  description: The description of the bot
                  developerAppInsightsApplicationId: appinsightsappid
                  displayName: The Name of the bot
                  enabledChannels:
                    - facebook
                  endpoint: http://mybot.coffee
                  endpointVersion: version
                  iconUrl: http://myicon
                  luisAppIds:
                    - luisappid1
                    - luisappid2
                  msaAppId: msaappid
                tags:
                  tag1: value1
                  tag2: value2
                type: sampletype
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}":
    delete:
      description: Deletes a Connection Setting registration for a Bot Service
      operationId: BotConnection_Delete
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/connectionNameParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: A 200 (OK) should be returned if the object exists and was deleted successfully;
        "204":
          description: a 204 (NoContent) should be used if the resource does not exist and the request is well formed.
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - BotConnection
      x-ms-examples:
        Update Connection Setting:
          parameters:
            api-version: 2017-01-01
            connectionName: sampleConnection
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200": {}
            "204": {}
    get:
      description: Get a Connection Setting registration for a Bot Service
      operationId: BotConnection_Get
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/connectionNameParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: "The resource provider should return 200 (OK) to indicate that the operation completed successfully. "
          schema:
            $ref: "#/definitions/ConnectionSetting"
        default:
          description: Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - BotConnection
      x-ms-examples:
        Update Connection Setting:
          parameters:
            api-version: 2017-01-01
            connectionName: sampleConnection
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                etag: etag1
                id: someid
                location: global
                name: The Name of the Connection Setting
                properties:
                  clientId: sampleclientid
                  clientSecret: samplesecret
                  parameters:
                    - key: key1
                      value: value1
                    - key: key2
                      value: value2
                  scopes: samplescope
                  serviceProviderDisplayName: serviceProviderDisplayName
                  serviceProviderId: serviceproviderid
    patch:
      description: Updates a Connection Setting registration for a Bot Service
      operationId: BotConnection_Update
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/connectionNameParameter"
        - description: The parameters to provide for updating the Connection Setting.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ConnectionSetting"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: If resource is created successfully or already existed, the service should return 200 (OK).
          schema:
            $ref: "#/definitions/ConnectionSetting"
        "201":
          description: If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.
          schema:
            $ref: "#/definitions/ConnectionSetting"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - BotConnection
      x-ms-examples:
        Update Connection Setting:
          parameters:
            api-version: 2017-01-01
            connectionName: sampleConnection
            parameters:
              etag: etag1
              id: someid
              location: global
              name: The Name of the Connection Setting
              properties:
                clientId: sampleclientid
                clientSecret: samplesecret
                parameters:
                  - key: key1
                    value: value1
                  - key: key2
                    value: value2
                scopes: samplescope
                serviceProviderDisplayName: serviceProviderDisplayName
                serviceProviderId: serviceproviderid
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                id: someid
                location: global
                name: The Name of the Connection Setting
                properties:
                  clientId: sampleclientid
                  clientSecret: samplesecret
                  parameters:
                    - key: key1
                      value: value1
                    - key: key2
                      value: value2
                  scopes: samplescope
                  serviceProviderDisplayName: serviceProviderDisplayName
                  serviceProviderId: serviceproviderid
            "201":
              body:
                etag: etag1
                id: someid
                location: global
                name: The Name of the Connection Setting
                properties:
                  clientId: sampleclientid
                  clientSecret: samplesecret
                  parameters:
                    - key: key1
                      value: value1
                    - key: key2
                      value: value2
                  scopes: samplescope
                  serviceProviderDisplayName: serviceProviderDisplayName
                  serviceProviderId: serviceproviderid
    put:
      description: Register a new Auth Connection for a Bot Service
      operationId: BotConnection_Create
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/connectionNameParameter"
        - description: The parameters to provide for creating the Connection Setting.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/ConnectionSetting"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: If resource is created successfully or already existed, the service should return 200 (OK).
          schema:
            $ref: "#/definitions/ConnectionSetting"
        "201":
          description: If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.
          schema:
            $ref: "#/definitions/ConnectionSetting"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - BotConnection
      x-ms-examples:
        Create Connection Setting:
          parameters:
            api-version: 2017-01-01
            connectionName: sampleConnection
            parameters:
              etag: etag1
              id: someid
              location: West US
              name: samplename
              properties:
                clientId: sampleclientid
                clientSecret: samplesecret
                parameters:
                  - key: key1
                    value: value1
                  - key: key2
                    value: value2
                scopes: samplescope
                serviceProviderId: serviceproviderid
              type: sampletype
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                etag: etag1
                id: someid
                location: global
                name: The Name of the Connection Setting
                properties:
                  clientId: sampleclientid
                  clientSecret: samplesecret
                  parameters:
                    - key: key1
                      value: value1
                    - key: key2
                      value: value2
                  scopes: samplescope
                  serviceProviderDisplayName: serviceProviderDisplayName
                  serviceProviderId: serviceproviderid
            "201":
              body:
                etag: etag1
                id: someid
                location: global
                name: The Name of the Connection Setting
                properties:
                  clientId: sampleclientid
                  clientSecret: samplesecret
                  parameters:
                    - key: key1
                      value: value1
                    - key: key2
                      value: value2
                  scopes: samplescope
                  serviceProviderDisplayName: serviceProviderDisplayName
                  serviceProviderId: serviceproviderid
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}/listWithSecrets":
    post:
      description: Get a Connection Setting registration for a Bot Service
      operationId: BotConnection_ListWithSecrets
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/connectionNameParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: "The resource provider should return 200 (OK) to indicate that the operation completed successfully. "
          schema:
            $ref: "#/definitions/ConnectionSetting"
        default:
          description: Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - BotConnection
      x-ms-examples:
        Update Connection Setting:
          parameters:
            api-version: 2017-01-01
            connectionName: sampleConnection
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                etag: etag1
                id: someid
                location: global
                name: The Name of the Connection Setting
                properties:
                  clientId: sampleclientid
                  clientSecret: samplesecret
                  parameters:
                    - key: key1
                      value: value1
                    - key: key2
                      value: value2
                  scopes: samplescope
                  serviceProviderDisplayName: serviceProviderDisplayName
                  serviceProviderId: serviceproviderid
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels":
    get:
      description: Returns all the Channel registrations of a particular BotService resource
      operationId: Channels_ListByResourceGroup
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: |-
            The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.
            The nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with "value" property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.
            The nextLink should be implemented using following query parameters:
            · skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.
            · top: the optional client query parameter which defines the maximum number of records to be returned by the server.
            Implementation details:
            · NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. 
            · Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. 
            Clients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.
          schema:
            $ref: "#/definitions/ChannelResponseList"
        default:
          description: Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Channel
      x-ms-examples:
        List Bots by Resource Group:
          parameters:
            api-version: 2017-01-01
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                value:
                  - location: global
                    properties:
                      channelName: EmailChannel
                      properties:
                        emailAddress: a@b.com
                        isEnabled: true
                        password: pwd
                  - location: global
                    properties:
                      channelName: FacebookChannel
                      properties:
                        appId: id
                        appSecret: secret
                        callbackUrl: appid
                        isEnabled: true
                        pages:
                          - accessToken: token
                            id: id
                        verifyToken: othertoken
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}":
    delete:
      description: Deletes a Channel registration from a Bot Service
      operationId: Channels_Delete
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - description: The name of the Bot resource.
          in: path
          maxLength: 64
          minLength: 2
          name: channelName
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$
          required: true
          type: string
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: A 200 (OK) should be returned if the object exists and was deleted successfully;
        "204":
          description: a 204 (NoContent) should be used if the resource does not exist and the request is well formed.
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Channel
      x-ms-examples:
        Delete Bot:
          parameters:
            api-version: 2017-01-01
            channelName: EmailChannel
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200": {}
            "204": {}
    get:
      description: Returns a BotService Channel registration specified by the parameters.
      operationId: Channels_Get
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - description: The name of the Bot resource.
          in: path
          maxLength: 64
          minLength: 2
          name: channelName
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$
          required: true
          type: string
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: "The resource provider should return 200 (OK) to indicate that the operation completed successfully. "
          schema:
            $ref: "#/definitions/BotChannel"
        default:
          description: Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Channel
      x-ms-examples:
        Get Bot:
          parameters:
            api-version: 2017-01-01
            channelName: EmailChannel
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                location: global
                properties:
                  channelName: EmailChannel
                  properties:
                    emailAddress: a@b.com
                    isEnabled: true
                    password: pwd
    patch:
      description: Updates a Channel registration for a Bot Service
      operationId: Channels_Update
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/channelNameParameter"
        - description: The parameters to provide for the created bot.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/BotChannel"
          x-ms-client-flatten: true
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: "The resource provider should return 200 (OK) to indicate that the operation completed successfully. "
          schema:
            $ref: "#/definitions/BotChannel"
        "201":
          description: If resource is updated successfully, the service should return 201 (Created). Execution to continue asynchronously.
          schema:
            $ref: "#/definitions/BotChannel"
        default:
          description: Error response describing why the operation failed. If the resource group *or* resource does not exist, 404 (NotFound) should be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Channel
      x-ms-examples:
        Update Bot:
          parameters:
            api-version: 2017-01-01
            channelName: EmailChannel
            parameters:
              location: global
              properties:
                channelName: EmailChannel
                properties:
                  emailAddress: a@b.com
                  isEnabled: true
                  password: pwd
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                location: global
                properties:
                  channelName: EmailChannel
                  properties:
                    emailAddress: a@b.com
                    isEnabled: true
                    password: pwd
            "201":
              body:
                location: global
                properties:
                  channelName: EmailChannel
                  properties:
                    emailAddress: a@b.com
                    isEnabled: true
                    password: pwd
    put:
      description: Creates a Channel registration for a Bot Service
      operationId: Channels_Create
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/channelNameParameter"
        - description: The parameters to provide for the created bot.
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/BotChannel"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: If resource is created successfully or already existed, the service should return 200 (OK).
          schema:
            $ref: "#/definitions/BotChannel"
        "201":
          description: If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.
          schema:
            $ref: "#/definitions/BotChannel"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Channel
      x-ms-examples:
        Create Bot:
          parameters:
            api-version: 2017-01-01
            channelName: EmailChannel
            parameters:
              location: global
              properties:
                channelName: EmailChannel
                properties:
                  emailAddress: a@b.com
                  isEnabled: true
                  password: pwd
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                location: global
                properties:
                  channelName: EmailChannel
                  properties:
                    emailAddress: a@b.com
                    isEnabled: true
                    password: pwd
            "201":
              body:
                location: global
                properties:
                  channelName: EmailChannel
                  properties:
                    emailAddress: a@b.com
                    isEnabled: true
                    password: pwd
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}/listChannelWithKeys":
    post:
      description: Lists a Channel registration for a Bot Service including secrets
      operationId: Channels_ListWithKeys
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/channelNameParameter"
        - $ref: "#/parameters/apiVersionParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
      responses:
        "200":
          description: If resource is retrieved successfully, the service should return 200 (OK).
          schema:
            $ref: "#/definitions/BotChannel"
        default:
          description: Error response describing why the operation failed
          schema:
            $ref: "#/definitions/Error"
      tags:
        - Channel
      x-ms-examples:
        List Channel:
          parameters:
            api-version: 2017-01-01
            channelName: EmailChannel
            parameters:
              location: global
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                location: global
                properties:
                  channelName: EmailChannel
                  properties:
                    emailAddress: a@b.com
                    isEnabled: true
                    password: pwd
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/connections":
    get:
      description: Returns all the Connection Settings registered to a particular BotService resource
      operationId: BotConnection_ListByBotService
      parameters:
        - $ref: "#/parameters/resourceGroupNameParameter"
        - $ref: "#/parameters/resourceNameParameter"
        - $ref: "#/parameters/subscriptionIdParameter"
        - $ref: "#/parameters/apiVersionParameter"
      responses:
        "200":
          description: |-
            The resource provider should return 200 (OK) to indicate that the operation completed successfully. For other errors (e.g. internal errors) use the appropriate HTTP error code.
            The nextLink field is expected to point to the URL the client should use to fetch the next page (per server side paging). This matches the OData guidelines for paged responses here. If a resource provider does not support paging, it should return the same body (JSON object with "value" property) but omit nextLink entirely (or set to null, *not* empty string) for future compatibility.
            The nextLink should be implemented using following query parameters:
            · skipToken: opaque token that allows the resource provider to skip resources already enumerated. This value is defined and returned by the RP after first request via nextLink.
            · top: the optional client query parameter which defines the maximum number of records to be returned by the server.
            Implementation details:
            · NextLink may include all the query parameters (specifically OData $filter) used by the client in the first query. 
            · Server may return less records than requested with nextLink. Returning zero records with NextLink is an acceptable response. 
            Clients must fetch records until the nextLink is not returned back / null. Clients should never rely on number of returned records to determinate if pagination is completed.
          schema:
            $ref: "#/definitions/ConnectionSettingResponseList"
        default:
          description: Error response describing why the operation failed. If the resource group does not exist, 404 (NotFound) will be returned.
          schema:
            $ref: "#/definitions/Error"
      tags:
        - BotConnection
      x-ms-examples:
        List Connection Settings:
          parameters:
            api-version: 2017-01-01
            resourceGroupName: OneResourceGroupName
            resourceName: samplebotname
            subscriptionId: subscription-id
          responses:
            "200":
              body:
                value:
                  - name: The Name of the Connection Setting
                    properties:
                      clientId: sampleclientid
                      clientSecret: samplesecret
                      parameters:
                        - key: key1
                          value: value1
                        - key: key2
                          value: value2
                      scopes: samplescope
                      serviceProviderId: serviceproviderid
      x-ms-pageable:
        nextLinkName: nextLink
definitions:
  Bot:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Bot resource definition
    properties:
      properties:
        $ref: "#/definitions/BotProperties"
        description: The set of properties specific to bot resource
    type: object
  BotChannel:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Bot channel resource definition
    properties:
      properties:
        $ref: "#/definitions/Channel"
        description: The set of properties specific to bot channel resource
    type: object
  BotProperties:
    description: The parameters to provide for the Bot.
    properties:
      configuredChannels:
        description: Collection of channels for which the bot is configured
        items:
          type: string
        readOnly: true
        type: array
      description:
        description: The description of the bot
        type: string
      developerAppInsightKey:
        description: The Application Insights key
        type: string
      developerAppInsightsApiKey:
        description: The Application Insights Api Key
        type: string
      developerAppInsightsApplicationId:
        description: The Application Insights App Id
        type: string
      displayName:
        description: The Name of the bot
        type: string
      enabledChannels:
        description: Collection of channels for which the bot is enabled
        items:
          type: string
        readOnly: true
        type: array
      endpoint:
        description: The bot's endpoint
        type: string
      endpointVersion:
        description: The bot's endpoint version
        readOnly: true
        type: string
      iconUrl:
        description: The Icon Url of the bot
        type: string
      luisAppIds:
        description: Collection of LUIS App Ids
        items:
          type: string
        type: array
      luisKey:
        description: The LUIS Key
        type: string
      msaAppId:
        description: Microsoft App Id for the bot
        type: string
    required:
      - displayName
      - endpoint
      - msaAppId
  BotResponseList:
    description: The list of  bot service operation response.
    properties:
      nextLink:
        description: The link used to get the next page of bot service resources.
        type: string
      value:
        description: Gets the list of bot service results and their properties.
        items:
          $ref: "#/definitions/Bot"
        readOnly: true
        type: array
  Channel:
    description: Channel definition
    discriminator: channelName
    properties:
      channelName:
        description: The channel name
        type: string
    required:
      - channelName
    type: object
  ChannelResponseList:
    description: The list of bot service channel operation response.
    properties:
      nextLink:
        description: The link used to get the next page of bot service channel resources.
        type: string
      value:
        description: Gets the list of bot service channel results and their properties.
        items:
          $ref: "#/definitions/BotChannel"
        readOnly: true
        type: array
  CheckNameAvailabilityRequestBody:
    description: The request body for a request to Bot Service Management to check availability of a bot name.
    properties:
      name:
        description: the name of the bot for which availability needs to be checked.
        type: string
      type:
        description: the type of the bot for which availability needs to be checked
        type: string
    type: object
  CheckNameAvailabilityResponseBody:
    description: The response body returned for a request to Bot Service Management to check availability of a bot name.
    properties:
      message:
        description: additional message from the bot management api showing why a bot name is not available
        type: string
      valid:
        description: indicates if the bot name is valid.
        type: boolean
    type: object
  ConnectionItemName:
    description: The display name of a connection Item Setting registered with the Bot
    properties:
      name:
        description: Connection Item name that has been added in the API
        readOnly: true
        type: string
  ConnectionSetting:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Bot channel resource definition
    properties:
      properties:
        $ref: "#/definitions/ConnectionSettingProperties"
        description: The set of properties specific to bot channel resource
    type: object
  ConnectionSettingParameter:
    description: Extra Parameter in a Connection Setting Properties to indicate service provider specific properties
    properties:
      key:
        description: Key for the Connection Setting Parameter.
        type: string
      value:
        description: Value associated with the Connection Setting Parameter.
        type: string
  ConnectionSettingProperties:
    description: Properties for a Connection Setting Item
    properties:
      clientId:
        description: Client Id associated with the Connection Setting.
        type: string
      clientSecret:
        description: Client Secret associated with the Connection Setting
        type: string
      parameters:
        description: Service Provider Parameters associated with the Connection Setting
        items:
          $ref: "#/definitions/ConnectionSettingParameter"
        type: array
      scopes:
        description: Scopes associated with the Connection Setting
        type: string
      serviceProviderDisplayName:
        description: Service Provider Display Name associated with the Connection Setting
        type: string
      serviceProviderId:
        description: Service Provider Id associated with the Connection Setting
        type: string
      settingId:
        description: Setting Id set by the service for the Connection Setting.
        readOnly: true
        type: string
  ConnectionSettingResponseList:
    description: The list of bot service connection settings response.
    properties:
      nextLink:
        description: The link used to get the next page of bot service connection setting resources.
        type: string
      value:
        description: Gets the list of bot service connection settings and their properties.
        items:
          $ref: "#/definitions/ConnectionSetting"
        readOnly: true
        type: array
  DirectLineChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Direct Line channel definition
    properties:
      properties:
        $ref: "#/definitions/DirectLineChannelProperties"
        description: The set of properties specific to Direct Line channel resource
    type: object
    x-ms-discriminator-value: DirectLineChannel
  DirectLineChannelProperties:
    description: The parameters to provide for the Direct Line channel.
    properties:
      sites:
        description: The list of Direct Line sites
        items:
          $ref: "#/definitions/DirectLineSite"
        type: array
  DirectLineSite:
    description: A site for the Direct Line channel
    properties:
      isEnabled:
        description: Whether this site is enabled for DirectLine channel
        type: boolean
      isV1Enabled:
        description: Whether this site is enabled for Bot Framework V1 protocol
        type: boolean
      isV3Enabled:
        description: Whether this site is enabled for Bot Framework V1 protocol
        type: boolean
      key:
        description: Primary key. Value only returned through POST to the action Channel List API, otherwise empty.
        readOnly: true
        type: string
        x-ms-mutability:
          - read
      key2:
        description: Secondary key. Value only returned through POST to the action Channel List API, otherwise empty.
        readOnly: true
        type: string
        x-ms-mutability:
          - read
      siteId:
        description: Site Id
        readOnly: true
        type: string
        x-ms-mutability:
          - read
      siteName:
        description: Site name
        type: string
    required:
      - isV1Enabled
      - isV3Enabled
      - isEnabled
      - siteName
  EmailChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Email channel definition
    properties:
      properties:
        $ref: "#/definitions/EmailChannelProperties"
        description: The set of properties specific to email channel resource
    type: object
    x-ms-discriminator-value: EmailChannel
  EmailChannelProperties:
    description: The parameters to provide for the Email channel.
    properties:
      emailAddress:
        description: The email address
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
      password:
        description: The password for the email address. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
    required:
      - emailAddress
      - password
      - isEnabled
  Error:
    description: Bot Service error object.
    properties:
      error:
        $ref: "#/definitions/ErrorBody"
        description: The error body.
  ErrorBody:
    description: Bot Service error body.
    properties:
      code:
        description: error code
        type: string
      message:
        description: error message
        type: string
    required:
      - code
      - message
  FacebookChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Facebook channel definition
    properties:
      properties:
        $ref: "#/definitions/FacebookChannelProperties"
        description: The set of properties specific to bot facebook channel
    type: object
    x-ms-discriminator-value: FacebookChannel
  FacebookChannelProperties:
    description: The parameters to provide for the Facebook channel.
    properties:
      appId:
        description: Facebook application id
        type: string
      appSecret:
        description: Facebook application secret. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      callbackUrl:
        description: Callback Url
        readOnly: true
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
      pages:
        description: The list of Facebook pages
        items:
          $ref: "#/definitions/FacebookPage"
        type: array
      verifyToken:
        description: Verify token. Value only returned through POST to the action Channel List API, otherwise empty.
        readOnly: true
        type: string
    required:
      - appId
      - appSecret
      - isEnabled
  FacebookPage:
    description: A Facebook page for Facebook channel registration
    properties:
      accessToken:
        description: Facebook application access token. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      id:
        description: Page id
        type: string
    required:
      - id
      - accessToken
  KikChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Kik channel definition
    properties:
      properties:
        $ref: "#/definitions/KikChannelProperties"
        description: The set of properties specific to Kik channel resource
    type: object
    x-ms-discriminator-value: KikChannel
  KikChannelProperties:
    description: The parameters to provide for the Kik channel.
    properties:
      apiKey:
        description: Kik API key. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
      isValidated:
        description: Whether this channel is validated for the bot
        type: boolean
      userName:
        description: The Kik user name
        type: string
    required:
      - userName
      - apiKey
      - isEnabled
  Kind:
    description: Indicates the type of bot service
    enum:
      - sdk
      - designer
      - bot
      - function
    type: string
    x-ms-enum:
      modelAsString: true
      name: Kind
  MsTeamsChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Microsoft Teams channel definition
    properties:
      properties:
        $ref: "#/definitions/MsTeamsChannelProperties"
        description: The set of properties specific to Microsoft Teams channel resource
    type: object
    x-ms-discriminator-value: MsTeamsChannel
  MsTeamsChannelProperties:
    description: The parameters to provide for the Microsoft Teams channel.
    properties:
      callMode:
        description: Enable messaging for Microsoft Teams channel
        type: string
      enableCalling:
        description: Enable calling for Microsoft Teams channel
        type: boolean
      enableMediaCards:
        description: Enable media cards for Microsoft Teams channel
        type: boolean
      enableMessaging:
        description: Enable messaging for Microsoft Teams channel
        type: boolean
      enableVideo:
        description: Enable video for Microsoft Teams channel
        type: boolean
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
    required:
      - isEnabled
  OperationDisplayInfo:
    description: The operation supported by Bot Service Management.
    properties:
      description:
        description: The description of the operation.
        type: string
      operation:
        description: The action that users can perform, based on their permission level.
        type: string
      provider:
        description: "Service provider: Microsoft Bot Service."
        type: string
      resource:
        description: Resource on which the operation is performed.
        type: string
    type: object
  OperationEntity:
    description: The operations supported by Bot Service Management.
    properties:
      display:
        $ref: "#/definitions/OperationDisplayInfo"
        description: The operation supported by Bot Service Management.
      name:
        description: "Operation name: {provider}/{resource}/{operation}."
        type: string
      origin:
        description: The origin of the operation.
        type: string
      properties:
        description: Additional properties.
        type: object
    type: object
  OperationEntityListResult:
    description: The list of bot service operation response.
    properties:
      nextLink:
        description: The link used to get the next page of operations.
        type: string
      value:
        description: The list of operations.
        items:
          $ref: "#/definitions/OperationEntity"
        type: array
    type: object
  Resource:
    description: Azure resource
    properties:
      etag:
        description: Entity Tag
        type: string
      id:
        description: Specifies the resource ID.
        readOnly: true
        type: string
      kind:
        $ref: "#/definitions/Kind"
        description: Required. Gets or sets the Kind of the resource.
      location:
        description: Specifies the location of the resource.
        type: string
      name:
        description: Specifies the name of the resource.
        readOnly: true
        type: string
      sku:
        $ref: "#/definitions/Sku"
        description: Gets or sets the SKU of the resource.
      tags:
        additionalProperties:
          type: string
        description: Contains resource tags defined as key/value pairs.
        type: object
      type:
        description: Specifies the type of the resource.
        readOnly: true
        type: string
    x-ms-azure-resource: true
  ServiceProvider:
    description: Service Provider Definition
    properties:
      properties:
        $ref: "#/definitions/ServiceProviderProperties"
        description: The Properties of a Service Provider Object
    type: object
  ServiceProviderParameter:
    description: Extra Parameters specific to each Service Provider
    properties:
      default:
        description: Default Name for the Service Provider
        readOnly: true
        type: string
      description:
        description: Description of the Service Provider
        readOnly: true
        type: string
      displayName:
        description: Display Name of the Service Provider
        readOnly: true
        type: string
      helpUrl:
        description: Help Url for the  Service Provider
        readOnly: true
        type: string
      name:
        description: Name of the Service Provider
        readOnly: true
        type: string
      type:
        description: Type of the Service Provider
        readOnly: true
        type: string
  ServiceProviderProperties:
    description: The Object used to describe a Service Provider supported by Bot Service
    properties:
      devPortalUrl:
        description: Display Name of the Service Provider
        readOnly: true
        type: string
      displayName:
        description: Display Name of the Service Provider
        readOnly: true
        type: string
      iconUrl:
        description: Display Name of the Service Provider
        readOnly: true
        type: string
      id:
        description: Id for Service Provider
        readOnly: true
        type: string
      parameters:
        description: The list of parameters for the Service Provider
        items:
          $ref: "#/definitions/ServiceProviderParameter"
        type: array
      serviceProviderName:
        description: Display Name of the Service Provider
        readOnly: true
        type: string
  ServiceProviderResponseList:
    description: The list of bot service providers response.
    properties:
      nextLink:
        description: The link used to get the next page of bot service providers.
        type: string
      value:
        description: Gets the list of bot service providers and their properties.
        items:
          $ref: "#/definitions/ServiceProvider"
        readOnly: true
        type: array
  Sku:
    description: The SKU of the cognitive services account.
    properties:
      name:
        $ref: "#/definitions/SkuName"
        description: The sku name
      tier:
        description: Gets the sku tier. This is based on the SKU name.
        enum:
          - Free
          - Standard
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: SkuTier
    required:
      - name
  SkuName:
    description: The name of SKU.
    enum:
      - F0
      - S1
    type: string
    x-ms-enum:
      modelAsString: true
      name: SkuName
  SkypeChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Skype channel definition
    properties:
      properties:
        $ref: "#/definitions/SkypeChannelProperties"
        description: The set of properties specific to Skype channel resource
    type: object
    x-ms-discriminator-value: SkypeChannel
  SkypeChannelProperties:
    description: The parameters to provide for the Microsoft Teams channel.
    properties:
      callingWebHook:
        description: Calling web hook for Skype channel
        type: string
      enableCalling:
        description: Enable calling for Skype channel
        type: boolean
      enableGroups:
        description: Enable groups for Skype channel
        type: boolean
      enableMediaCards:
        description: Enable media cards for Skype channel
        type: boolean
      enableMessaging:
        description: Enable messaging for Skype channel
        type: boolean
      enableScreenSharing:
        description: Enable screen sharing for Skype channel
        type: boolean
      enableVideo:
        description: Enable video for Skype channel
        type: boolean
      groupsMode:
        description: Group mode for Skype channel
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
    required:
      - isEnabled
  SlackChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Slack channel definition
    properties:
      properties:
        $ref: "#/definitions/SlackChannelProperties"
        description: The set of properties specific to Slack channel resource
    type: object
    x-ms-discriminator-value: SlackChannel
  SlackChannelProperties:
    description: The parameters to provide for the Slack channel.
    properties:
      clientId:
        description: The Slack client id
        type: string
      clientSecret:
        description: The Slack client secret. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
      isValidated:
        description: Whether this channel is validated for the bot
        readOnly: true
        type: boolean
      landingPageUrl:
        description: The Slack landing page Url
        type: string
      lastSubmissionId:
        description: The Sms auth token
        readOnly: true
        type: string
      redirectAction:
        description: The Slack redirect action
        readOnly: true
        type: string
      registerBeforeOAuthFlow:
        description: Whether to register the settings before OAuth validation is performed. Recommended to True.
        readOnly: true
        type: boolean
      verificationToken:
        description: The Slack verification token. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
    required:
      - clientId
      - clientSecret
      - verificationToken
      - isEnabled
  SmsChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Sms channel definition
    properties:
      properties:
        $ref: "#/definitions/SmsChannelProperties"
        description: The set of properties specific to Sms channel resource
    type: object
    x-ms-discriminator-value: SmsChannel
  SmsChannelProperties:
    description: The parameters to provide for the Sms channel.
    properties:
      accountSID:
        description: The Sms account SID. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      authToken:
        description: The Sms auth token. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
      isValidated:
        description: Whether this channel is validated for the bot
        type: boolean
      phone:
        description: The Sms phone
        type: string
    required:
      - phone
      - accountSID
      - authToken
      - isEnabled
  TelegramChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Telegram channel definition
    properties:
      properties:
        $ref: "#/definitions/TelegramChannelProperties"
        description: The set of properties specific to Telegram channel resource
    type: object
    x-ms-discriminator-value: TelegramChannel
  TelegramChannelProperties:
    description: The parameters to provide for the Telegram channel.
    properties:
      accessToken:
        description: The Telegram access token. Value only returned through POST to the action Channel List API, otherwise empty.
        type: string
      isEnabled:
        description: Whether this channel is enabled for the bot
        type: boolean
      isValidated:
        description: Whether this channel is validated for the bot
        type: boolean
    required:
      - accessToken
      - isEnabled
  WebChatChannel:
    allOf:
      - $ref: "#/definitions/Channel"
    description: Web Chat channel definition
    properties:
      properties:
        $ref: "#/definitions/WebChatChannelProperties"
        description: The set of properties specific to Web Chat channel resource
    type: object
    x-ms-discriminator-value: WebChatChannel
  WebChatChannelProperties:
    description: The parameters to provide for the Web Chat channel.
    properties:
      sites:
        description: The list of Web Chat sites
        items:
          $ref: "#/definitions/WebChatSite"
        type: array
      webChatEmbedCode:
        description: Web chat control embed code
        readOnly: true
        type: string
        x-ms-mutability:
          - read
  WebChatSite:
    description: A site for the Webchat channel
    properties:
      enablePreview:
        description: Whether this site is enabled for preview versions of Webchat
        type: boolean
      isEnabled:
        description: Whether this site is enabled for DirectLine channel
        type: boolean
      key:
        description: Primary key. Value only returned through POST to the action Channel List API, otherwise empty.
        readOnly: true
        type: string
        x-ms-mutability:
          - read
      key2:
        description: Secondary key. Value only returned through POST to the action Channel List API, otherwise empty.
        readOnly: true
        type: string
        x-ms-mutability:
          - read
      siteId:
        description: Site Id
        readOnly: true
        type: string
        x-ms-mutability:
          - read
      siteName:
        description: Site name
        type: string
    required:
      - siteName
      - isEnabled
      - enablePreview
