@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Azure Bot Service
@base https://management.azure.com
@version 2018-07-12
@auth OAuth2
@common_fields {api-version: any # Version of the API to be used with the client request.}
@endpoints 27
@hint download_for_search
@toc subscriptions(24), providers(3)

@group subscriptions
@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}
@desc Creates a Bot Service. Bot Service is a resource group wide resource type.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., parameters: map # The parameters to provide for the created bot., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is created successfully or already existed, the service should return 200 (OK).
@returns(201) If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}
@desc Updates a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., parameters: map # The parameters to provide for the created bot., subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.
@returns(201) If resource is updated successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}
@desc Deletes a Bot Service from the resource group.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) A 200 (OK) should be returned if the object exists and was deleted successfully;
@returns(204) a 204 (NoContent) should be used if the resource does not exist and the request is well formed.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}
@desc Returns a BotService specified by the parameters.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices
@desc Returns all the resources of a particular type belonging to a resource group
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., subscriptionId: any # Azure Subscription ID.}
@returns(200) 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.

@endpoint GET /subscriptions/{subscriptionId}/providers/Microsoft.BotService/botServices
@desc Returns all the resources of a particular type belonging to a subscription.
@required {subscriptionId: any # Azure Subscription ID.}
@returns(200) 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.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}
@desc Creates a Channel registration for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., channelName: any # The name of the Channel resource., parameters: map # The parameters to provide for the created bot., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is created successfully or already existed, the service should return 200 (OK).
@returns(201) If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}
@desc Updates a Channel registration for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., channelName: any # The name of the Channel resource., parameters: map # The parameters to provide for the created bot., subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.
@returns(201) If resource is updated successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}
@desc Deletes a Channel registration from a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., channelName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) A 200 (OK) should be returned if the object exists and was deleted successfully;
@returns(204) a 204 (NoContent) should be used if the resource does not exist and the request is well formed.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}
@desc Returns a BotService Channel registration specified by the parameters.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., channelName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels/{channelName}/listChannelWithKeys
@desc Lists a Channel registration for a Bot Service including secrets
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., channelName: any # The name of the Channel resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is retrieved successfully, the service should return 200 (OK).

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/channels
@desc Returns all the Channel registrations of a particular BotService resource
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) 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.

@endgroup

@group providers
@endpoint POST /providers/Microsoft.BotService/checkNameAvailability
@desc Check whether a bot name is available.
@required {parameters: map # The request body parameters to provide for the check name availability request}
@returns(200) 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.

@endpoint GET /providers/Microsoft.BotService/operations
@desc Lists all the available BotService operations.
@returns(200) OK.

@endgroup

@group subscriptions
@endpoint POST /subscriptions/{subscriptionId}/providers/Microsoft.BotService/listAuthServiceProviders
@desc Lists the available Service Providers for creating Connection Settings
@required {subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is retrieved successfully, the service should return 200 (OK).

@endpoint POST /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}/listWithSecrets
@desc Get a Connection Setting registration for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., connectionName: any # The name of the Bot Service Connection Setting resource, subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}
@desc Register a new Auth Connection for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., connectionName: any # The name of the Bot Service Connection Setting resource, parameters: map # The parameters to provide for creating the Connection Setting., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is created successfully or already existed, the service should return 200 (OK).
@returns(201) If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}
@desc Updates a Connection Setting registration for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., connectionName: any # The name of the Bot Service Connection Setting resource, parameters: map # The parameters to provide for updating the Connection Setting., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is created successfully or already existed, the service should return 200 (OK).
@returns(201) If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}
@desc Get a Connection Setting registration for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., connectionName: any # The name of the Bot Service Connection Setting resource, subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/Connections/{connectionName}
@desc Deletes a Connection Setting registration for a Bot Service
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., connectionName: any # The name of the Bot Service Connection Setting resource, subscriptionId: any # Azure Subscription ID.}
@returns(200) A 200 (OK) should be returned if the object exists and was deleted successfully;
@returns(204) a 204 (NoContent) should be used if the resource does not exist and the request is well formed.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{resourceName}/connections
@desc Returns all the Connection Settings registered to a particular BotService resource
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) 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.

@endgroup

@group providers
@endpoint POST /providers/Microsoft.BotService/checkEnterpriseChannelNameAvailability
@desc Check whether an Enterprise Channel name is available.
@required {parameters: map # The parameters to provide for the Enterprise Channel check name availability request.}
@returns(200) 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.

@endgroup

@group subscriptions
@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/enterpriseChannels
@desc Returns all the resources of a particular type belonging to a resource group.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., subscriptionId: any # Azure Subscription ID.}
@returns(200) 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.

@endpoint PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/enterpriseChannels/{resourceName}
@desc Creates an Enterprise Channel.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., parameters: map # The parameters to provide for the new Enterprise Channel., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is created successfully or already existed, the service should return 200 (OK).
@returns(201) If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint PATCH /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/enterpriseChannels/{resourceName}
@desc Updates an Enterprise Channel.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., parameters: map # The parameters to provide to update the Enterprise Channel., subscriptionId: any # Azure Subscription ID.}
@returns(200) If resource is created successfully or already existed, the service should return 200 (OK).
@returns(201) If resource is created successfully, the service should return 201 (Created). Execution to continue asynchronously.

@endpoint DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/enterpriseChannels/{resourceName}
@desc Deletes an Enterprise Channel from the resource group
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) A 200 (OK) should be returned if the object exists and was deleted successfully;
@returns(204) a 204 (NoContent) should be used if the resource does not exist and the request is well formed.

@endpoint GET /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/enterpriseChannels/{resourceName}
@desc Returns an Enterprise Channel specified by the parameters.
@required {resourceGroupName: any # The name of the Bot resource group in the user subscription., resourceName: any # The name of the Bot resource., subscriptionId: any # Azure Subscription ID.}
@returns(200) The resource provider should return 200 (OK) to indicate that the operation completed successfully.

@endgroup

@end
