{
  "openapi": "3.0.3",
  "info": {
    "version": "3.1.12",
    "title": "Connector",
    "description": "The Azure Bot Service Connector APIs allow bots to send and receive\r\nmessages, button clicks, and other programmatic events when connecting with\r\nend users. This API also includes facilities to get conversation metadata\r\nand perform other operations (deletions and content editing). This REST API\r\nmay be used directly over HTTP and Web Socket, but is easiest to use with\r\nthe Azure SDK ConnectorClient.\r\n\r\n© 2020 Microsoft",
    "termsOfService": "https://www.microsoft.com/en-us/legal/intellectualproperty/copyright/default.aspx",
    "contact": {
      "name": "Azure SDK",
      "url": "https://azure.microsoft.com/en-us/downloads/"
    },
    "license": {
      "name": "The MIT License (MIT)",
      "url": "https://opensource.org/licenses/MIT"
    }
  },
  "paths": {
    "/v3/attachments/{attachmentId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "GetAttachmentInfo",
        "description": "Get AttachmentInfo structure describing the attachment views",
        "operationId": "Attachments_GetAttachmentInfo",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "attachment id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An attachmentInfo object is returned which describes the:\r\n* type of the attachment\r\n* name of the attachment\r\n\r\n\r\nand an array of views:\r\n* Size - size of the object\r\n* ViewId - View Id which can be used to fetch a variation on the content (ex: original or thumbnail)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentInfo"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/attachments/{attachmentId}/views/{viewId}": {
      "get": {
        "tags": [
          "Attachments"
        ],
        "summary": "GetAttachment",
        "description": "Get the named view as binary content",
        "operationId": "Attachments_GetAttachment",
        "parameters": [
          {
            "name": "attachmentId",
            "in": "path",
            "description": "attachment id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "viewId",
            "in": "path",
            "description": "View id from attachmentInfo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Attachment stream",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "301": {
            "description": "The Location header describes where the content is now."
          },
          "302": {
            "description": "The Location header describes where the content is now."
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "GetConversations",
        "description": "List the Conversations in which this bot has participated.\r\n\r\nGET from this method with a skip token\r\n\r\nThe return value is a ConversationsResult, which contains an array of ConversationMembers and a skip token.  If the skip token is not empty, then \r\nthere are further values to be returned. Call this method again with the returned token to get more values.\r\n\r\nEach ConversationMembers object contains the ID of the conversation and an array of ChannelAccounts that describe the members of the conversation.",
        "operationId": "Conversations_GetConversations",
        "parameters": [
          {
            "name": "continuationToken",
            "in": "query",
            "description": "skip or continuation token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An object will be returned containing \r\n* an array (Conversations) of ConversationMembers objects\r\n* a continuation token\r\n\r\nEach ConversationMembers object contains:\r\n* the Id of the conversation\r\n* an array (Members) of ChannelAccount objects",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationsResult"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "CreateConversation",
        "description": "Create a new Conversation.\r\n\r\nPOST to this method with a\r\n* Bot being the bot creating the conversation\r\n* IsGroup set to true if this is not a direct message (default is false)\r\n* Array containing the members to include in the conversation\r\n\r\nThe return value is a ResourceResponse which contains a conversation id which is suitable for use\r\nin the message payload and REST API uris.\r\n\r\nMost channels only support the semantics of bots initiating a direct message conversation.  An example of how to do that would be:\r\n\r\n```\r\nvar resource = await connector.conversations.CreateConversation(new ConversationParameters(){ Bot = bot, members = new ChannelAccount[] { new ChannelAccount(\"user1\") } );\r\nawait connect.Conversations.SendToConversationAsync(resource.Id, new Activity() ... ) ;\r\n\r\n```",
        "operationId": "Conversations_CreateConversation",
        "requestBody": {
          "description": "Parameters to create the conversation from",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConversationParameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object will be returned containing \r\n* the ID for the conversation\r\n* ActivityId for the activity if provided.  If ActivityId is null then the channel doesn't support returning resource id's for activity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationResourceResponse"
                }
              }
            }
          },
          "201": {
            "description": "An object will be returned containing \r\n* the ID for the conversation\r\n* ActivityId for the activity if provided.  If ActivityId is null then the channel doesn't support returning resource id's for activity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationResourceResponse"
                }
              }
            }
          },
          "202": {
            "description": "An object will be returned containing \r\n* the ID for the conversation\r\n* ActivityId for the activity if provided.  If ActivityId is null then the channel doesn't support returning resource id's for activity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationResourceResponse"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/activities": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "SendToConversation",
        "description": "This method allows you to send an activity to the end of a conversation.\r\n\r\nThis is slightly different from ReplyToActivity().\r\n* SendToConversation(conversationId) - will append the activity to the end of the conversation according to the timestamp or semantics of the channel.\r\n* ReplyToActivity(conversationId,ActivityId) - adds the activity as a reply to another activity, if the channel supports it. If the channel does not support nested replies, ReplyToActivity falls back to SendToConversation.\r\n\r\nUse ReplyToActivity when replying to a specific activity in the conversation.\r\n\r\nUse SendToConversation in all other cases.",
        "operationId": "Conversations_SendToConversation",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Activity to send",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Activity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "201": {
            "description": "A ResourceResponse object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "202": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/activities/history": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "SendConversationHistory",
        "description": "This method allows you to upload the historic activities to the conversation.\r\n\r\nSender must ensure that the historic activities have unique ids and appropriate timestamps. The ids are used by the client to deal with duplicate activities and the timestamps are used by the client to render the activities in the right order.",
        "operationId": "Conversations_SendConversationHistory",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Historic activities",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Transcript"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "201": {
            "description": "A ResourceResponse object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "202": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/activities/{activityId}": {
      "put": {
        "tags": [
          "Conversations"
        ],
        "summary": "UpdateActivity",
        "description": "Edit an existing activity.\r\n\r\nSome channels allow you to edit an existing activity to reflect the new state of a bot conversation.\r\n\r\nFor example, you can remove buttons after someone has clicked \"Approve\" button.",
        "operationId": "Conversations_UpdateActivity",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activityId",
            "in": "path",
            "description": "activityId to update",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "replacement Activity",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Activity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "201": {
            "description": "A ResourceResponse object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "202": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "ReplyToActivity",
        "description": "This method allows you to reply to an activity.\r\n\r\nThis is slightly different from SendToConversation().\r\n* SendToConversation(conversationId) - will append the activity to the end of the conversation according to the timestamp or semantics of the channel.\r\n* ReplyToActivity(conversationId,ActivityId) - adds the activity as a reply to another activity, if the channel supports it. If the channel does not support nested replies, ReplyToActivity falls back to SendToConversation.\r\n\r\nUse ReplyToActivity when replying to a specific activity in the conversation.\r\n\r\nUse SendToConversation in all other cases.",
        "operationId": "Conversations_ReplyToActivity",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activityId",
            "in": "path",
            "description": "activityId the reply is to (OPTIONAL)",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Activity to send",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Activity"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "201": {
            "description": "A ResourceResponse object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "202": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Conversations"
        ],
        "summary": "DeleteActivity",
        "description": "Delete an existing activity.\r\n\r\nSome channels allow you to delete an existing activity, and if successful this method will remove the specified activity.",
        "operationId": "Conversations_DeleteActivity",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activityId",
            "in": "path",
            "description": "activityId to delete",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation succeeded, there is no response."
          },
          "202": {
            "description": "The request has been accepted for processing, but the processing has not been completed"
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/members": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "GetConversationMembers",
        "description": "Enumerate the members of a conversation. \r\n\r\nThis REST API takes a ConversationId and returns an array of ChannelAccount objects representing the members of the conversation.",
        "operationId": "Conversations_GetConversationMembers",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An array of ChannelAccount objects",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelAccount"
                  }
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/members/{memberId}": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "GetConversationMember",
        "description": "Get a single member of a conversation.\r\n\r\nThis REST API takes a ConversationId and MemberId and returns a single ChannelAccount object, if that member is found in this conversation.",
        "operationId": "Conversations_GetConversationMember",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A ChannelAccount which has \r\n\r\n* id - address on this channel\r\n* name - name of the user/bot on this channel",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChannelAccount"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Conversations"
        ],
        "summary": "DeleteConversationMember",
        "description": "Deletes a member from a conversation. \r\n\r\nThis REST API takes a ConversationId and a memberId (of type string) and removes that member from the conversation. If that member was the last member\r\nof the conversation, the conversation will also be deleted.",
        "operationId": "Conversations_DeleteConversationMember",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "description": "ID of the member to delete from this conversation",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The operation succeeded, there is no response."
          },
          "204": {
            "description": "The operation succeeded but no content was returned."
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/pagedmembers": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "GetConversationPagedMembers",
        "description": "Enumerate the members of a conversation one page at a time.\r\n\r\nThis REST API takes a ConversationId. Optionally a pageSize and/or continuationToken can be provided. It returns a PagedMembersResult, which contains an array\r\nof ChannelAccounts representing the members of the conversation and a continuation token that can be used to get more values.\r\n\r\nOne page of ChannelAccounts records are returned with each call. The number of records in a page may vary between channels and calls. The pageSize parameter can be used as \r\na suggestion. If there are no additional results the response will not contain a continuation token. If there are no members in the conversation the Members will be empty or not present in the response.\r\n\r\nA response to a request that has a continuation token from a prior request may rarely return members from a previous request.",
        "operationId": "Conversations_GetConversationPagedMembers",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "Suggested page size",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "continuationToken",
            "in": "query",
            "description": "Continuation Token",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedMembersResult"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/activities/{activityId}/members": {
      "get": {
        "tags": [
          "Conversations"
        ],
        "summary": "GetActivityMembers",
        "description": "Enumerate the members of an activity. \r\n\r\nThis REST API takes a ConversationId and a ActivityId, returning an array of ChannelAccount objects representing the members of the particular activity in the conversation.",
        "operationId": "Conversations_GetActivityMembers",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "activityId",
            "in": "path",
            "description": "Activity ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "An array of ChannelAccount objects",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ChannelAccount"
                  }
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/conversations/{conversationId}/attachments": {
      "post": {
        "tags": [
          "Conversations"
        ],
        "summary": "UploadAttachment",
        "description": "Upload an attachment directly into a channel's blob storage.\r\n\r\nThis is useful because it allows you to store data in a compliant store when dealing with enterprises.\r\n\r\nThe response is a ResourceResponse which contains an AttachmentId which is suitable for using with the attachments API.",
        "operationId": "Conversations_UploadAttachment",
        "parameters": [
          {
            "name": "conversationId",
            "in": "path",
            "description": "Conversation ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Attachment data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "201": {
            "description": "A ResourceResponse object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "202": {
            "description": "An object will be returned containing the ID for the resource.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          },
          "default": {
            "description": "The operation failed and the response is an error object describing the status code and failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/activity": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostActivity",
        "description": "PostActivity",
        "operationId": "ConnectorInternals_Activity",
        "requestBody": {
          "description": "Activity",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Activity"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Activity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Activity"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/activityEventNames": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostActivityEventNames",
        "description": "PostActivityEventNames",
        "operationId": "ConnectorInternals_ActivityEventNames",
        "requestBody": {
          "description": "ActivityEventNames",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ActivityEventNames"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ActivityEventNames",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ActivityEventNames"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/expectedReplies": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostExpectedReplies",
        "description": "PostExpectedReplies",
        "operationId": "ConnectorInternals_ExpectedReplies",
        "requestBody": {
          "description": "ExpectedReplies",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExpectedReplies"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ExpectedReplies",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExpectedReplies"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/animationCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostAnimationCard",
        "description": "PostAnimationCard",
        "operationId": "ConnectorInternals_AnimationCard",
        "requestBody": {
          "description": "AnimationCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnimationCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "AnimationCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnimationCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/audioCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostAudioCard",
        "description": "PostAudioCard",
        "operationId": "ConnectorInternals_AudioCard",
        "requestBody": {
          "description": "AudioCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "AudioCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/basicCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostBasicCard",
        "description": "PostBasicCard",
        "operationId": "ConnectorInternals_BasicCard",
        "requestBody": {
          "description": "BasicCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BasicCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "BasicCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasicCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/heroCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostHeroCard",
        "description": "PostHeroCard",
        "operationId": "ConnectorInternals_HeroCard",
        "requestBody": {
          "description": "HeroCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HeroCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "HeroCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HeroCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/mediaCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostMediaCard",
        "description": "PostMediaCard",
        "operationId": "ConnectorInternals_MediaCard",
        "requestBody": {
          "description": "MediaCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "MediaCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/oAuthCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostOAuthCard",
        "description": "PostOAuthCard",
        "operationId": "ConnectorInternals_OAuthCard",
        "requestBody": {
          "description": "OAuthCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "OAuthCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/receiptCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostReceiptCard",
        "description": "PostReceiptCard",
        "operationId": "ConnectorInternals_ReceiptCard",
        "requestBody": {
          "description": "ReceiptCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReceiptCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ReceiptCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/signinCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostSigninCard",
        "description": "PostSigninCard",
        "operationId": "ConnectorInternals_SigninCard",
        "requestBody": {
          "description": "SigninCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SigninCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "SigninCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SigninCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/thumbnailCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostThumbnailCard",
        "description": "PostThumbnailCard",
        "operationId": "ConnectorInternals_ThumbnailCard",
        "requestBody": {
          "description": "ThumbnailCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ThumbnailCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ThumbnailCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ThumbnailCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/videoCard": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostVideoCard",
        "description": "PostVideoCard",
        "operationId": "ConnectorInternals_VideoCard",
        "requestBody": {
          "description": "VideoCard",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoCard"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "VideoCard",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoCard"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/mention": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostMention",
        "description": "PostMention",
        "operationId": "ConnectorInternals_Mention",
        "requestBody": {
          "description": "Mention",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Mention"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Mention",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Mention"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/tokenExchangeState": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostTokenExchangeState",
        "description": "PostTokenExchangeState",
        "operationId": "ConnectorInternals_TokenExchangeState",
        "requestBody": {
          "description": "TokenExchangeState",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenExchangeState"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "TokenExchangeState",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenExchangeState"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/tokenExchangeResource": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostTokenExchangeResource",
        "description": "PostTokenExchangeResource",
        "operationId": "ConnectorInternals_TokenExchangeResource",
        "requestBody": {
          "description": "TokenExchangeResource",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenExchangeResource"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "TokenExchangeResource",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenExchangeResource"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/tokenExchangeInvokeRequest": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostTokenExchangeInvokeRequest",
        "description": "PostTokenExchangeInvokeRequest",
        "operationId": "ConnectorInternals_TokenExchangeInvokeRequest",
        "requestBody": {
          "description": "TokenExchangeInvokeRequest",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenExchangeInvokeRequest"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "TokenExchangeInvokeRequest",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenExchangeInvokeRequest"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/tokenExchangeInvokeResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostTokenExchangeInvokeResponse",
        "description": "PostTokenExchangeInvokeResponse",
        "operationId": "ConnectorInternals_TokenExchangeInvokeResponse",
        "requestBody": {
          "description": "TokenExchangeInvokeResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenExchangeInvokeResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "TokenExchangeInvokeResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenExchangeInvokeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/invokeResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostInvokeResponse",
        "description": "PostInvokeResponse",
        "operationId": "ConnectorInternals_InvokeResponse",
        "requestBody": {
          "description": "InvokeResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InvokeResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "InvokeResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvokeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/tokenResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostTokenResponse",
        "description": "PostTokenResponse",
        "operationId": "ConnectorInternals_TokenResponse",
        "requestBody": {
          "description": "TokenResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "TokenResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TokenResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/resourceResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostResourceResponse",
        "description": "PostResourceResponse",
        "operationId": "ConnectorInternals_ResourceResponse",
        "requestBody": {
          "description": "ResourceResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResourceResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ResourceResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/adaptiveCardInvokeAction": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostAdaptiveCardInvokeAction",
        "description": "PostAdaptiveCardInvokeAction",
        "operationId": "ConnectorInternals_AdaptiveCardInvokeAction",
        "requestBody": {
          "description": "AdaptiveCardInvokeAction",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdaptiveCardInvokeAction"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "AdaptiveCardInvokeAction",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveCardInvokeAction"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/adaptiveCardInvokeResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostAdaptiveCardInvokeResponse",
        "description": "PostAdaptiveCardInvokeResponse",
        "operationId": "ConnectorInternals_AdaptiveCardInvokeResponse",
        "requestBody": {
          "description": "AdaptiveCardInvokeResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdaptiveCardInvokeResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "AdaptiveCardInvokeResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveCardInvokeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/adaptiveCardInvokeValue": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostAdaptiveCardInvokeValue",
        "description": "PostAdaptiveCardInvokeValue",
        "operationId": "ConnectorInternals_AdaptiveCardInvokeValue",
        "requestBody": {
          "description": "AdaptiveCardInvokeValue",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdaptiveCardInvokeValue"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "AdaptiveCardInvokeValue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdaptiveCardInvokeValue"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/searchInvokeResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostSearchInvokeResponse",
        "description": "PostSearchInvokeResponse",
        "operationId": "ConnectorInternals_SearchInvokeResponse",
        "requestBody": {
          "description": "SearchInvokeResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchInvokeResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "SearchInvokeResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchInvokeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/searchInvokeValue": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostSearchInvokeValue",
        "description": "PostSearchInvokeValue",
        "operationId": "ConnectorInternals_SearchInvokeValue",
        "requestBody": {
          "description": "SearchInvokeValue",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SearchInvokeValue"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "SearchInvokeValue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchInvokeValue"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/conversationsResult": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostConversationsResult",
        "description": "PostConversationsResult",
        "operationId": "ConnectorInternals_ConversationsResult",
        "requestBody": {
          "description": "ConversationsResult",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConversationsResult"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ConversationsResult",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationsResult"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/pagedMembersResult": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostPagedMembersResult",
        "description": "PostPagedMembersResult",
        "operationId": "ConnectorInternals_PagedMembersResult",
        "requestBody": {
          "description": "PagedMembersResult",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PagedMembersResult"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "PagedMembersResult",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedMembersResult"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/attachmentInfo": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostAttachmentInfo",
        "description": "PostAttachmentInfo",
        "operationId": "ConnectorInternals_AttachmentInfo",
        "requestBody": {
          "description": "AttachmentInfo",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AttachmentInfo"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "AttachmentInfo",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AttachmentInfo"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/conversationResourceResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostConversationResourceResponse",
        "description": "PostConversationResourceResponse",
        "operationId": "ConnectorInternals_ConversationResourceResponse",
        "requestBody": {
          "description": "ConversationResourceResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConversationResourceResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ConversationResourceResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConversationResourceResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/connectorInternals/errorResponse": {
      "post": {
        "tags": [
          "ConnectorInternals"
        ],
        "summary": "PostErrorResponse",
        "description": "PostErrorResponse",
        "operationId": "ConnectorInternals_PostErrorResponse",
        "requestBody": {
          "description": "ErrorResponse",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ErrorResponse"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "ErrorResponse",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AttachmentInfo": {
        "description": "Metadata for an attachment",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the attachment",
            "type": "string"
          },
          "type": {
            "description": "ContentType of the attachment",
            "type": "string"
          },
          "views": {
            "description": "attachment views",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/AttachmentView"
            }
          }
        }
      },
      "AttachmentView": {
        "description": "Attachment View name and size",
        "type": "object",
        "properties": {
          "viewId": {
            "description": "Id of the attachment",
            "type": "string"
          },
          "size": {
            "format": "int32",
            "description": "Size of the attachment",
            "type": "integer"
          }
        }
      },
      "ErrorResponse": {
        "description": "An HTTP API Error response",
        "type": "object",
        "properties": {
          "error": {
            "$ref": "#/components/schemas/Error"
          }
        }
      },
      "Error": {
        "description": "Object representing error information",
        "type": "object",
        "properties": {
          "code": {
            "description": "Error code",
            "type": "string"
          },
          "message": {
            "description": "Error message",
            "type": "string"
          },
          "innerHttpError": {
            "$ref": "#/components/schemas/InnerHttpError"
          }
        }
      },
      "InnerHttpError": {
        "description": "Object representing inner http error",
        "type": "object",
        "properties": {
          "statusCode": {
            "format": "int32",
            "description": "HttpStatusCode from failed request",
            "type": "integer"
          },
          "body": {
            "description": "Body from failed request",
            "type": "object"
          }
        }
      },
      "ConversationParameters": {
        "description": "Parameters for creating a new conversation",
        "type": "object",
        "properties": {
          "isGroup": {
            "description": "IsGroup",
            "type": "boolean"
          },
          "bot": {
            "$ref": "#/components/schemas/ChannelAccount"
          },
          "members": {
            "description": "Members to add to the conversation",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ChannelAccount"
            }
          },
          "topicName": {
            "description": "(Optional) Topic of the conversation (if supported by the channel)",
            "type": "string"
          },
          "tenantId": {
            "description": "(Optional) The tenant ID in which the conversation should be created",
            "type": "string"
          },
          "activity": {
            "$ref": "#/components/schemas/Activity"
          },
          "channelData": {
            "description": "Channel specific payload for creating the conversation",
            "type": "object"
          }
        }
      },
      "ChannelAccount": {
        "description": "Channel account information needed to route a message",
        "type": "object",
        "properties": {
          "id": {
            "description": "Channel id for the user or bot on this channel (Example: joe@smith.com, or @joesmith or 123456)",
            "type": "string"
          },
          "name": {
            "description": "Display friendly name",
            "type": "string"
          },
          "aadObjectId": {
            "description": "This account's object ID within Azure Active Directory (AAD)",
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/RoleTypes"
          }
        }
      },
      "Activity": {
        "description": "An Activity is the basic communication type for the Azure Bot Service 3.0 protocol.",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ActivityTypes"
          },
          "id": {
            "description": "Contains an ID that uniquely identifies the activity on the channel.",
            "type": "string"
          },
          "timestamp": {
            "format": "date-time",
            "description": "Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.",
            "type": "string"
          },
          "localTimestamp": {
            "format": "date-time",
            "description": "Contains the local date and time of the message, expressed in ISO-8601 format.\r\nFor example, 2016-09-23T13:07:49.4714686-07:00.",
            "type": "string"
          },
          "localTimezone": {
            "description": "Contains the name of the local timezone of the message, expressed in IANA Time Zone database format.\r\nFor example, America/Los_Angeles.",
            "type": "string"
          },
          "callerId": {
            "description": "A string containing an IRI identifying the caller of a bot. This field is not intended to be transmitted\r\nover the wire, but is instead populated by bots and clients based on cryptographically verifiable data\r\nthat asserts the identity of the callers (e.g. tokens).",
            "type": "string"
          },
          "serviceUrl": {
            "description": "Contains the URL that specifies the channel's service endpoint. Set by the channel.",
            "type": "string"
          },
          "channelId": {
            "description": "Contains an ID that uniquely identifies the channel. Set by the channel.",
            "type": "string"
          },
          "from": {
            "$ref": "#/components/schemas/ChannelAccount",
            "description": "Identifies the sender of the message."
          },
          "conversation": {
            "$ref": "#/components/schemas/ConversationAccount",
            "description": "Identifies the conversation to which the activity belongs."
          },
          "recipient": {
            "$ref": "#/components/schemas/ChannelAccount",
            "description": "Identifies the recipient of the message."
          },
          "textFormat": {
            "$ref": "#/components/schemas/TextFormatTypes",
            "description": "Format of text fields Default:markdown"
          },
          "attachmentLayout": {
            "$ref": "#/components/schemas/AttachmentLayoutTypes",
            "description": "The layout hint for multiple attachments. Default: list."
          },
          "membersAdded": {
            "description": "The collection of members added to the conversation.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ChannelAccount"
            }
          },
          "membersRemoved": {
            "description": "The collection of members removed from the conversation.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ChannelAccount"
            }
          },
          "reactionsAdded": {
            "description": "The collection of reactions added to the conversation.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MessageReaction"
            }
          },
          "reactionsRemoved": {
            "description": "The collection of reactions removed from the conversation.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MessageReaction"
            }
          },
          "topicName": {
            "description": "The updated topic name of the conversation.",
            "type": "string"
          },
          "historyDisclosed": {
            "description": "Indicates whether the prior history of the channel is disclosed.",
            "type": "boolean"
          },
          "locale": {
            "description": "A BCP-47 locale name for the contents of the text field.",
            "type": "string"
          },
          "text": {
            "description": "The text content of the message.",
            "type": "string"
          },
          "speak": {
            "description": "The text to speak.",
            "type": "string"
          },
          "inputHint": {
            "$ref": "#/components/schemas/InputHints"
          },
          "summary": {
            "description": "The text to display if the channel cannot render cards.",
            "type": "string"
          },
          "suggestedActions": {
            "$ref": "#/components/schemas/SuggestedActions"
          },
          "attachments": {
            "description": "Attachments",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Attachment"
            }
          },
          "entities": {
            "description": "Represents the entities that were mentioned in the message.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Entity"
            }
          },
          "channelData": {
            "description": "Contains channel-specific content.",
            "type": "object"
          },
          "action": {
            "description": "Indicates whether the recipient of a contactRelationUpdate was added or removed from the sender's contact list.",
            "type": "string"
          },
          "replyToId": {
            "description": "Contains the ID of the message to which this message is a reply.",
            "type": "string"
          },
          "label": {
            "description": "A descriptive label for the activity.",
            "type": "string"
          },
          "valueType": {
            "description": "The type of the activity's value object.",
            "type": "string"
          },
          "value": {
            "description": "A value that is associated with the activity.",
            "type": "object"
          },
          "name": {
            "description": "The name of the operation associated with an invoke or event activity.",
            "type": "string"
          },
          "relatesTo": {
            "$ref": "#/components/schemas/ConversationReference"
          },
          "code": {
            "$ref": "#/components/schemas/EndOfConversationCodes"
          },
          "expiration": {
            "format": "date-time",
            "description": "The time at which the activity should be considered to be \"expired\" and should not be presented to the recipient.",
            "type": "string"
          },
          "importance": {
            "$ref": "#/components/schemas/ActivityImportance"
          },
          "deliveryMode": {
            "$ref": "#/components/schemas/DeliveryModes"
          },
          "listenFor": {
            "description": "List of phrases and references that speech and language priming systems should listen for",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "textHighlights": {
            "description": "The collection of text fragments to highlight when the activity contains a ReplyToId value.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/TextHighlight"
            }
          },
          "semanticAction": {
            "$ref": "#/components/schemas/SemanticAction"
          }
        }
      },
      "ConversationAccount": {
        "description": "Conversation account represents the identity of the conversation within a channel",
        "type": "object",
        "properties": {
          "isGroup": {
            "description": "Indicates whether the conversation contains more than two participants at the time the activity was generated",
            "type": "boolean"
          },
          "conversationType": {
            "description": "Indicates the type of the conversation in channels that distinguish between conversation types",
            "type": "string"
          },
          "tenantId": {
            "description": "This conversation's tenant ID",
            "type": "string"
          },
          "id": {
            "description": "Channel id for the user or bot on this channel (Example: joe@smith.com, or @joesmith or 123456)",
            "type": "string"
          },
          "name": {
            "description": "Display friendly name",
            "type": "string"
          },
          "aadObjectId": {
            "description": "This account's object ID within Azure Active Directory (AAD)",
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/RoleTypes"
          }
        }
      },
      "MessageReaction": {
        "description": "Message reaction object",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/MessageReactionTypes"
          }
        }
      },
      "SuggestedActions": {
        "description": "SuggestedActions that can be performed",
        "type": "object",
        "properties": {
          "to": {
            "description": "Ids of the recipients that the actions should be shown to.  These Ids are relative to the channelId and a subset of all recipients of the activity",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "actions": {
            "description": "Actions that can be shown to the user",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          }
        }
      },
      "Attachment": {
        "description": "An attachment within an activity",
        "type": "object",
        "properties": {
          "contentType": {
            "description": "mimetype/Contenttype for the file",
            "type": "string"
          },
          "contentUrl": {
            "description": "Content Url",
            "type": "string"
          },
          "content": {
            "description": "Embedded content",
            "type": "object"
          },
          "name": {
            "description": "(OPTIONAL) The name of the attachment",
            "type": "string"
          },
          "thumbnailUrl": {
            "description": "(OPTIONAL) Thumbnail associated with attachment",
            "type": "string"
          }
        }
      },
      "Entity": {
        "description": "Metadata object pertaining to an activity",
        "type": "object",
        "properties": {
          "type": {
            "description": "Type of this entity (RFC 3987 IRI)",
            "type": "string"
          }
        }
      },
      "ConversationReference": {
        "description": "An object relating to a particular point in a conversation",
        "type": "object",
        "properties": {
          "activityId": {
            "description": "(Optional) ID of the activity to refer to",
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/ChannelAccount"
          },
          "bot": {
            "$ref": "#/components/schemas/ChannelAccount"
          },
          "conversation": {
            "$ref": "#/components/schemas/ConversationAccount"
          },
          "channelId": {
            "description": "ID of the channel in which the referenced conversation exists",
            "type": "string"
          },
          "serviceUrl": {
            "description": "(Optional) Service endpoint where operations concerning the referenced conversation may be performed",
            "type": "string"
          },
          "locale": {
            "description": "(Optional) A BCP-47 locale name for the referenced conversation",
            "type": "string"
          }
        }
      },
      "TextHighlight": {
        "description": "Refers to a substring of content within another field",
        "type": "object",
        "properties": {
          "text": {
            "description": "Defines the snippet of text to highlight",
            "type": "string"
          },
          "occurrence": {
            "format": "int32",
            "description": "Occurrence of the text field within the referenced text, if multiple exist.",
            "type": "integer"
          }
        }
      },
      "SemanticAction": {
        "description": "Represents a reference to a programmatic action",
        "type": "object",
        "properties": {
          "state": {
            "$ref": "#/components/schemas/SemanticActionStates"
          },
          "id": {
            "description": "ID of this action",
            "type": "string"
          },
          "entities": {
            "description": "Entities associated with this action",
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Entity"
            }
          }
        }
      },
      "CardAction": {
        "description": "A clickable action",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/ActionTypes"
          },
          "title": {
            "description": "Text description which appears on the button",
            "type": "string"
          },
          "image": {
            "description": "Image URL which will appear on the button, next to text label",
            "type": "string"
          },
          "imageAltText": {
            "description": "Alternate text to be used for the Image property",
            "type": "string"
          },
          "text": {
            "description": "Text for this action",
            "type": "string"
          },
          "displayText": {
            "description": "(Optional) text to display in the chat feed if the button is clicked",
            "type": "string"
          },
          "value": {
            "description": "Supplementary parameter for action. Content of this property depends on the ActionType",
            "type": "object"
          },
          "channelData": {
            "description": "Channel-specific data associated with this action",
            "type": "object"
          }
        }
      },
      "ConversationResourceResponse": {
        "description": "A response containing a resource",
        "type": "object",
        "properties": {
          "activityId": {
            "description": "ID of the Activity (if sent)",
            "type": "string"
          },
          "serviceUrl": {
            "description": "Service endpoint where operations concerning the conversation may be performed",
            "type": "string"
          },
          "id": {
            "description": "Id of the resource",
            "type": "string"
          }
        }
      },
      "ConversationsResult": {
        "description": "Conversations result",
        "type": "object",
        "properties": {
          "continuationToken": {
            "description": "Paging token",
            "type": "string"
          },
          "conversations": {
            "description": "List of conversations",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ConversationMembers"
            }
          }
        }
      },
      "ConversationMembers": {
        "description": "Conversation and its members",
        "type": "object",
        "properties": {
          "id": {
            "description": "Conversation ID",
            "type": "string"
          },
          "members": {
            "description": "List of members in this conversation",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ChannelAccount"
            }
          }
        }
      },
      "ResourceResponse": {
        "description": "A response containing a resource ID",
        "type": "object",
        "properties": {
          "id": {
            "description": "Id of the resource",
            "type": "string"
          }
        }
      },
      "Transcript": {
        "description": "Transcript",
        "type": "object",
        "properties": {
          "activities": {
            "description": "A collection of Activities that conforms to the Transcript schema.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Activity"
            }
          }
        }
      },
      "PagedMembersResult": {
        "description": "Page of members.",
        "type": "object",
        "properties": {
          "continuationToken": {
            "description": "Paging token",
            "type": "string"
          },
          "members": {
            "description": "The Channel Accounts.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ChannelAccount"
            }
          }
        }
      },
      "AttachmentData": {
        "description": "Attachment data",
        "type": "object",
        "properties": {
          "type": {
            "description": "Content-Type of the attachment",
            "type": "string"
          },
          "name": {
            "description": "Name of the attachment",
            "type": "string"
          },
          "originalBase64": {
            "format": "byte",
            "description": "Attachment content",
            "type": "string"
          },
          "thumbnailBase64": {
            "format": "byte",
            "description": "Attachment thumbnail",
            "type": "string"
          }
        }
      },
      "HeroCard": {
        "description": "A Hero card (card with a single, large image)",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of the card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of the card",
            "type": "string"
          },
          "text": {
            "description": "Text for the card",
            "type": "string"
          },
          "images": {
            "description": "Array of images for the card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardImage"
            }
          },
          "buttons": {
            "description": "Set of actions applicable to the current card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "tap": {
            "$ref": "#/components/schemas/CardAction"
          }
        }
      },
      "CardImage": {
        "description": "An image on a card",
        "type": "object",
        "properties": {
          "url": {
            "description": "URL thumbnail image for major content property",
            "type": "string"
          },
          "alt": {
            "description": "Image description intended for screen readers",
            "type": "string"
          },
          "tap": {
            "$ref": "#/components/schemas/CardAction"
          }
        }
      },
      "AnimationCard": {
        "description": "An animation card (Ex: gif or short video clip)",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of this card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of this card",
            "type": "string"
          },
          "text": {
            "description": "Text of this card",
            "type": "string"
          },
          "image": {
            "$ref": "#/components/schemas/ThumbnailUrl"
          },
          "media": {
            "description": "Media URLs for this card. When this field contains more than one URL, each URL is an alternative format of the same content.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MediaUrl"
            }
          },
          "buttons": {
            "description": "Actions on this card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "shareable": {
            "description": "This content may be shared with others (default:true)",
            "type": "boolean"
          },
          "autoloop": {
            "description": "Should the client loop playback at end of content (default:true)",
            "type": "boolean"
          },
          "autostart": {
            "description": "Should the client automatically start playback of media in this card (default:true)",
            "type": "boolean"
          },
          "aspect": {
            "description": "Aspect ratio of thumbnail/media placeholder. Allowed values are \"16:9\" and \"4:3\"",
            "type": "string"
          },
          "duration": {
            "description": "Describes the length of the media content without requiring a receiver to open the content. Formatted as an ISO 8601 Duration field.",
            "type": "string"
          },
          "value": {
            "description": "Supplementary parameter for this card",
            "type": "object"
          }
        }
      },
      "ThumbnailUrl": {
        "description": "Thumbnail URL",
        "type": "object",
        "properties": {
          "url": {
            "description": "URL pointing to the thumbnail to use for media content",
            "type": "string"
          },
          "alt": {
            "description": "HTML alt text to include on this thumbnail image",
            "type": "string"
          }
        }
      },
      "MediaUrl": {
        "description": "Media URL",
        "type": "object",
        "properties": {
          "url": {
            "description": "Url for the media",
            "type": "string"
          },
          "profile": {
            "description": "Optional profile hint to the client to differentiate multiple MediaUrl objects from each other",
            "type": "string"
          }
        }
      },
      "AudioCard": {
        "description": "Audio card",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of this card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of this card",
            "type": "string"
          },
          "text": {
            "description": "Text of this card",
            "type": "string"
          },
          "image": {
            "$ref": "#/components/schemas/ThumbnailUrl"
          },
          "media": {
            "description": "Media URLs for this card. When this field contains more than one URL, each URL is an alternative format of the same content.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MediaUrl"
            }
          },
          "buttons": {
            "description": "Actions on this card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "shareable": {
            "description": "This content may be shared with others (default:true)",
            "type": "boolean"
          },
          "autoloop": {
            "description": "Should the client loop playback at end of content (default:true)",
            "type": "boolean"
          },
          "autostart": {
            "description": "Should the client automatically start playback of media in this card (default:true)",
            "type": "boolean"
          },
          "aspect": {
            "description": "Aspect ratio of thumbnail/media placeholder. Allowed values are \"16:9\" and \"4:3\"",
            "type": "string"
          },
          "duration": {
            "description": "Describes the length of the media content without requiring a receiver to open the content. Formatted as an ISO 8601 Duration field.",
            "type": "string"
          },
          "value": {
            "description": "Supplementary parameter for this card",
            "type": "object"
          }
        }
      },
      "BasicCard": {
        "description": "A basic card",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of the card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of the card",
            "type": "string"
          },
          "text": {
            "description": "Text for the card",
            "type": "string"
          },
          "images": {
            "description": "Array of images for the card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardImage"
            }
          },
          "buttons": {
            "description": "Set of actions applicable to the current card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "tap": {
            "$ref": "#/components/schemas/CardAction"
          }
        }
      },
      "MediaCard": {
        "description": "Media card",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of this card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of this card",
            "type": "string"
          },
          "text": {
            "description": "Text of this card",
            "type": "string"
          },
          "image": {
            "$ref": "#/components/schemas/ThumbnailUrl"
          },
          "media": {
            "description": "Media URLs for this card. When this field contains more than one URL, each URL is an alternative format of the same content.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MediaUrl"
            }
          },
          "buttons": {
            "description": "Actions on this card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "shareable": {
            "description": "This content may be shared with others (default:true)",
            "type": "boolean"
          },
          "autoloop": {
            "description": "Should the client loop playback at end of content (default:true)",
            "type": "boolean"
          },
          "autostart": {
            "description": "Should the client automatically start playback of media in this card (default:true)",
            "type": "boolean"
          },
          "aspect": {
            "description": "Aspect ratio of thumbnail/media placeholder. Allowed values are \"16:9\" and \"4:3\"",
            "type": "string"
          },
          "duration": {
            "description": "Describes the length of the media content without requiring a receiver to open the content. Formatted as an ISO 8601 Duration field.",
            "type": "string"
          },
          "value": {
            "description": "Supplementary parameter for this card",
            "type": "object"
          }
        }
      },
      "ReceiptCard": {
        "description": "A receipt card",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of the card",
            "type": "string"
          },
          "facts": {
            "description": "Array of Fact objects",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Fact"
            }
          },
          "items": {
            "description": "Array of Receipt Items",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/ReceiptItem"
            }
          },
          "tap": {
            "$ref": "#/components/schemas/CardAction"
          },
          "total": {
            "description": "Total amount of money paid (or to be paid)",
            "type": "string"
          },
          "tax": {
            "description": "Total amount of tax paid (or to be paid)",
            "type": "string"
          },
          "vat": {
            "description": "Total amount of VAT paid (or to be paid)",
            "type": "string"
          },
          "buttons": {
            "description": "Set of actions applicable to the current card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          }
        }
      },
      "Fact": {
        "description": "Set of key-value pairs. Advantage of this section is that key and value properties will be \r\nrendered with default style information with some delimiter between them. So there is no need for developer to specify style information.",
        "type": "object",
        "properties": {
          "key": {
            "description": "The key for this Fact",
            "type": "string"
          },
          "value": {
            "description": "The value for this Fact",
            "type": "string"
          }
        }
      },
      "ReceiptItem": {
        "description": "An item on a receipt card",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of the Card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle appears just below Title field, differs from Title in font styling only",
            "type": "string"
          },
          "text": {
            "description": "Text field appears just below subtitle, differs from Subtitle in font styling only",
            "type": "string"
          },
          "image": {
            "$ref": "#/components/schemas/CardImage"
          },
          "price": {
            "description": "Amount with currency",
            "type": "string"
          },
          "quantity": {
            "description": "Number of items of given kind",
            "type": "string"
          },
          "tap": {
            "$ref": "#/components/schemas/CardAction"
          }
        }
      },
      "SigninCard": {
        "description": "A card representing a request to sign in",
        "type": "object",
        "properties": {
          "text": {
            "description": "Text for signin request",
            "type": "string"
          },
          "buttons": {
            "description": "Action to use to perform signin",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          }
        }
      },
      "OAuthCard": {
        "description": "A card representing a request to perform a sign in via OAuth",
        "type": "object",
        "properties": {
          "text": {
            "description": "Text for signin request",
            "type": "string"
          },
          "connectionName": {
            "description": "The name of the registered connection",
            "type": "string"
          },
          "tokenExchangeResource": {
            "$ref": "#/components/schemas/TokenExchangeResource"
          },
          "buttons": {
            "description": "Action to use to perform signin",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          }
        }
      },
      "TokenExchangeResource": {
        "description": "Record for a token exchange request that is sent as part of Authentication",
        "type": "object",
        "properties": {
          "id": {
            "description": "A unique identifier for this token exchange instance",
            "type": "string"
          },
          "uri": {
            "description": "The application ID / resource identifier with which to exchange a token on behalf of",
            "type": "string"
          },
          "providerId": {
            "description": "The identifier of the provider with which to attempt a token exchange\r\nA value of null or empty will default to Azure Active Directory",
            "type": "string"
          }
        }
      },
      "TokenExchangeState": {
        "description": "State object passed to the bot token service.",
        "type": "object",
        "properties": {
          "connectionName": {
            "description": "The connection name that was used.",
            "type": "string"
          },
          "conversation": {
            "$ref": "#/components/schemas/ConversationReference"
          },
          "relatesTo": {
            "$ref": "#/components/schemas/ConversationReference"
          },
          "msAppId": {
            "description": "The bot's registered application ID.",
            "type": "string"
          }
        }
      },
      "ThumbnailCard": {
        "description": "A thumbnail card (card with a single, small thumbnail image)",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of the card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of the card",
            "type": "string"
          },
          "text": {
            "description": "Text for the card",
            "type": "string"
          },
          "images": {
            "description": "Array of images for the card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardImage"
            }
          },
          "buttons": {
            "description": "Set of actions applicable to the current card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "tap": {
            "$ref": "#/components/schemas/CardAction"
          }
        }
      },
      "VideoCard": {
        "description": "Video card",
        "type": "object",
        "properties": {
          "title": {
            "description": "Title of this card",
            "type": "string"
          },
          "subtitle": {
            "description": "Subtitle of this card",
            "type": "string"
          },
          "text": {
            "description": "Text of this card",
            "type": "string"
          },
          "image": {
            "$ref": "#/components/schemas/ThumbnailUrl"
          },
          "media": {
            "description": "Media URLs for this card. When this field contains more than one URL, each URL is an alternative format of the same content.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/MediaUrl"
            }
          },
          "buttons": {
            "description": "Actions on this card",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/CardAction"
            }
          },
          "shareable": {
            "description": "This content may be shared with others (default:true)",
            "type": "boolean"
          },
          "autoloop": {
            "description": "Should the client loop playback at end of content (default:true)",
            "type": "boolean"
          },
          "autostart": {
            "description": "Should the client automatically start playback of media in this card (default:true)",
            "type": "boolean"
          },
          "aspect": {
            "description": "Aspect ratio of thumbnail/media placeholder. Allowed values are \"16:9\" and \"4:3\"",
            "type": "string"
          },
          "duration": {
            "description": "Describes the length of the media content without requiring a receiver to open the content. Formatted as an ISO 8601 Duration field.",
            "type": "string"
          },
          "value": {
            "description": "Supplementary parameter for this card",
            "type": "object"
          }
        }
      },
      "GeoCoordinates": {
        "description": "GeoCoordinates (entity type: \"https://schema.org/GeoCoordinates\")",
        "allOf": [
          {
            "$ref": "#/components/schemas/Entity"
          },
          {
            "type": "object",
            "properties": {
              "elevation": {
                "format": "double",
                "description": "Elevation of the location [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)",
                "type": "number"
              },
              "latitude": {
                "format": "double",
                "description": "Latitude of the location [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)",
                "type": "number"
              },
              "longitude": {
                "format": "double",
                "description": "Longitude of the location [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)",
                "type": "number"
              },
              "name": {
                "description": "The name of the thing",
                "type": "string"
              }
            }
          }
        ]
      },
      "Mention": {
        "description": "Mention information (entity type: \"mention\")",
        "allOf": [
          {
            "$ref": "#/components/schemas/Entity"
          },
          {
            "type": "object",
            "properties": {
              "mentioned": {
                "$ref": "#/components/schemas/ChannelAccount"
              },
              "text": {
                "description": "Sub Text which represents the mention (can be null or empty)",
                "type": "string"
              }
            }
          }
        ]
      },
      "Place": {
        "description": "Place (entity type: \"https://schema.org/Place\")",
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/Entity"
          },
          {
            "type": "object",
            "properties": {
              "address": {
                "description": "Address of the place (may be `string` or complex object of type `PostalAddress`)",
                "type": "object"
              },
              "geo": {
                "description": "Geo coordinates of the place (may be complex object of type `GeoCoordinates` or `GeoShape`)",
                "type": "object"
              },
              "hasMap": {
                "description": "Map to the place (may be `string` (URL) or complex object of type `Map`)",
                "type": "object"
              },
              "name": {
                "description": "The name of the thing",
                "type": "string"
              }
            }
          }
        ]
      },
      "Thing": {
        "description": "Thing (entity type: \"https://schema.org/Thing\")",
        "allOf": [
          {
            "$ref": "#/components/schemas/Entity"
          },
          {
            "type": "object",
            "properties": {
              "name": {
                "description": "The name of the thing",
                "type": "string"
              }
            }
          }
        ]
      },
      "MediaEventValue": {
        "description": "Supplementary parameter for media events",
        "type": "object",
        "properties": {
          "cardValue": {
            "description": "Callback parameter specified in the Value field of the MediaCard that originated this event",
            "type": "object"
          }
        }
      },
      "InvokeResponse": {
        "description": "A tuple class containing an HTTP status code and a JSON-serializable object.",
        "type": "object",
        "properties": {
          "status": {
            "description": "The HTTP status code for the response.",
            "type": "integer",
            "format": "int32"
          },
          "body": {
            "description": "The body content for the response.",
            "type": "object"
          }
        }
      },
      "TokenResponse": {
        "description": "A response that includes a user token",
        "type": "object",
        "properties": {
          "channelId": {
            "description": "The channelId of the TokenResponse",
            "type": "string"
          },
          "connectionName": {
            "description": "The connection name",
            "type": "string"
          },
          "token": {
            "description": "The user token",
            "type": "string"
          },
          "expiration": {
            "description": "Expiration for the token, in ISO 8601 format (e.g. \"2007-04-05T14:30Z\")",
            "type": "string"
          }
        }
      },
      "TokenExchangeInvokeRequest": {
        "description": "A request to exchange a token",
        "type": "object",
        "properties": {
          "connectionName": {
            "description": "The connection name",
            "type": "string"
          },
          "token": {
            "description": "The user token that can be exchanged",
            "type": "string"
          }
        }
      },
      "TokenExchangeInvokeResponse": {
        "description": "The response object of a token exchange invoke",
        "type": "object",
        "properties": {
          "connectionName": {
            "description": "The connection name",
            "type": "string"
          },
          "failureDetail": {
            "description": "The details of why the token exchange failed",
            "type": "string"
          }
        }
      },
      "AdaptiveCardInvokeAction": {
        "description": "Defines the structure that arrives in the Activity.Value.Action for Invoke activity with Name of 'adaptiveCard/action'.",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "The Type of this adaptive card action invoke."
          },
          "id": {
            "type": "string",
            "description": "The Id of this adaptive card action invoke."
          },
          "verb": {
            "type": "string",
            "description": "The Verb of this adaptive card action invoke."
          },
          "data": {
            "type": "object",
            "description": "The Data of this adaptive card action invoke."
          }
        }
      },
      "AdaptiveCardInvokeResponse": {
        "description": "Defines the structure that is returned as the result of an Invoke activity with Name of 'adaptiveCard/action'.",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "format": "int32",
            "description": "The Card Action response StatusCode."
          },
          "type": {
            "type": "string",
            "description": "The Type of this response."
          },
          "value": {
            "type": "object",
            "description": "The json response object."
          }
        }
      },
      "AdaptiveCardInvokeValue": {
        "description": "Defines the structure that arrives in the Activity.Value for Invoke activity with Name of 'adaptiveCard/action'.",
        "type": "object",
        "properties": {
          "action": {
            "$ref": "#/components/schemas/AdaptiveCardInvokeAction"
          },
          "authentication": {
            "$ref": "#/components/schemas/TokenExchangeInvokeRequest"
          },
          "state": {
            "type": "string",
            "description": "The 'state' or magic code for an OAuth flow."
          }
        }
      },
      "SearchInvokeResponse": {
        "description": "Defines the structure that is returned as the result of an Invoke activity with Name of 'adaptiveCard/search'.",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "format": "int32",
            "description": "The Card Action response StatusCode."
          },
          "type": {
            "type": "string",
            "description": "The Type of this response."
          },
          "value": {
            "type": "object",
            "description": "The json response object."
          }
        }
      },
      "SearchInvokeValue": {
        "description": "Defines the structure that arrives in the Activity.Value for Invoke activity with Name of 'application/search'.",
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "description": "The kind for this search invoke action value."
          },
          "queryText": {
            "type": "string",
            "description": "The query text of this search invoke action value."
          },
          "queryOptions": {
            "type": "object",
            "description": "The query options for the query."
          },
          "context": {
            "type": "object",
            "description": "The context information about the query."
          }
        }
      },
      "ExpectedReplies": {
        "description": "Contents of the reply to an operation which returns expected Activity replies",
        "type": "object",
        "properties": {
          "activities": {
            "description": "A list of Activities included in the response.",
            "type": "array",
            "nullable": true,
            "items": {
              "$ref": "#/components/schemas/Activity"
            }
          }
        }
      },
      "ActivityTypes": {
        "description": "Types of Activities",
        "enum": [
          "message",
          "contactRelationUpdate",
          "conversationUpdate",
          "typing",
          "endOfConversation",
          "event",
          "invoke",
          "deleteUserData",
          "messageUpdate",
          "messageDelete",
          "installationUpdate",
          "messageReaction",
          "suggestion",
          "trace",
          "handoff",
          "delay",
          "invokeResponse",
          "command",
          "commandResult"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "ActivityTypes",
          "modelAsString": true
        }
      },
      "ActivityEventNames": {
        "description": "Types of Activity Events",
        "enum": [
          "ContinueConversation",
          "CreateConversation"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "ActivityEventNames",
          "modelAsString": true
        }
      },
      "AttachmentLayoutTypes": {
        "description": "Attachment layout types",
        "enum": [
          "list",
          "carousel"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "AttachmentLayoutTypes",
          "modelAsString": true
        }
      },
      "SemanticActionStates": {
        "description": "Indicates whether the semantic action is starting, continuing, or done",
        "enum": [
          "start",
          "continue",
          "done"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "SemanticActionStates",
          "modelAsString": true
        }
      },
      "ActionTypes": {
        "description": "Defines action types for clickable buttons.",
        "enum": [
          "openUrl",
          "imBack",
          "postBack",
          "playAudio",
          "playVideo",
          "showImage",
          "downloadFile",
          "signin",
          "call",
          "messageBack"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "ActionTypes",
          "modelAsString": true
        }
      },
      "ContactRelationUpdateActionTypes": {
        "description": "Action types valid for ContactRelationUpdate activities",
        "enum": [
          "add",
          "remove"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "ContactRelationUpdateActionTypes",
          "modelAsString": true
        }
      },
      "InstallationUpdateActionTypes": {
        "description": "Action types valid for InstallationUpdate activities",
        "enum": [
          "add",
          "remove"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "InstallationUpdateActionTypes",
          "modelAsString": true
        }
      },
      "MessageReactionTypes": {
        "description": "Message reaction types",
        "enum": [
          "like",
          "plusOne"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "MessageReactionTypes",
          "modelAsString": true
        }
      },
      "TextFormatTypes": {
        "description": "Text format types",
        "enum": [
          "markdown",
          "plain",
          "xml"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "TextFormatTypes",
          "modelAsString": true
        }
      },
      "InputHints": {
        "description": "Indicates whether the bot is accepting, expecting, or ignoring input",
        "enum": [
          "acceptingInput",
          "ignoringInput",
          "expectingInput"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "InputHints",
          "modelAsString": true
        }
      },
      "EndOfConversationCodes": {
        "description": "Codes indicating why a conversation has ended",
        "enum": [
          "unknown",
          "completedSuccessfully",
          "userCancelled",
          "botTimedOut",
          "botIssuedInvalidMessage",
          "channelFailed"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "EndOfConversationCodes",
          "modelAsString": true
        }
      },
      "ActivityImportance": {
        "description": "Defines the importance of an Activity",
        "enum": [
          "low",
          "normal",
          "high"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "ActivityImportance",
          "modelAsString": true
        }
      },
      "RoleTypes": {
        "description": "Role of the entity behind the account (Example: User, Bot, etc.)",
        "enum": [
          "user",
          "bot"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "RoleTypes",
          "modelAsString": true
        }
      },
      "DeliveryModes": {
        "description": "Values for deliveryMode field",
        "enum": [
          "normal",
          "notification",
          "ephemeral",
          "expectReplies"
        ],
        "type": "string",
        "properties": {},
        "x-ms-enum": {
          "name": "DeliveryModes",
          "modelAsString": true
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "description": "Access token to authenticate calls to the Azure Bot Service Connector",
        "name": "Authorization",
        "in": "header"
      }
    }
  }
}