github.com/kaisawind/go-swagger@v0.19.0/fixtures/bugs/727/swagger.json (about)

     1  {
     2    "swagger": "2.0",
     3    "info": {
     4      "version": "v3",
     5      "title": "Microsoft Bot Connector API - v3.0",
     6      "description": "The Bot Connector REST API allows your bot to send and receive messages to channels configured in the\r\n[Bot Framework Developer Portal](https://dev.botframework.com). The Connector service uses industry-standard REST\r\nand JSON over HTTPS.\r\n\r\nClient libraries for this REST API are available. See below for a list.\r\n\r\nMany bots will use both the Bot Connector REST API and the associated [Bot State REST API](/en-us/restapi/state). The\r\nBot State REST API allows a bot to store and retrieve state associated with users and conversations.\r\n\r\nAuthentication for both the Bot Connector and Bot State REST APIs is accomplished with JWT Bearer tokens, and is\r\ndescribed in detail in the [Connector Authentication](/en-us/restapi/authentication) document.\r\n\r\n# Client Libraries for the Bot Connector REST API\r\n\r\n* [Bot Builder for C#](/en-us/csharp/builder/sdkreference/)\r\n* [Bot Builder for Node.js](/en-us/node/builder/overview/)\r\n* Generate your own from the [Connector API Swagger file](https://raw.githubusercontent.com/Microsoft/BotBuilder/master/CSharp/Library/Microsoft.Bot.Connector/Swagger/ConnectorAPI.json)\r\n\r\n© 2016 Microsoft",
     7      "termsOfService": "https://www.microsoft.com/en-us/legal/intellectualproperty/copyright/default.aspx",
     8      "contact": {
     9        "name": "Bot Framework",
    10        "url": "https://botframework.com",
    11        "email": "botframework@microsoft.com"
    12      },
    13      "license": {
    14        "name": "The MIT License (MIT)",
    15        "url": "https://opensource.org/licenses/MIT"
    16      }
    17    },
    18    "host": "api.botframework.com",
    19    "schemes": [ "https" ],
    20    "paths": {
    21      "/v3/attachments/{attachmentId}": {
    22        "get": {
    23          "tags": [ "Attachments" ],
    24          "summary": "GetAttachmentInfo",
    25          "description": "Get AttachmentInfo structure describing the attachment views",
    26          "operationId": "Attachments_GetAttachmentInfo",
    27          "consumes": [],
    28          "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
    29          "parameters": [
    30            {
    31              "name": "attachmentId",
    32              "in": "path",
    33              "description": "attachment id",
    34              "required": true,
    35              "type": "string"
    36            }
    37          ],
    38          "responses": {
    39            "200": {
    40              "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)",
    41              "schema": { "$ref": "#/definitions/AttachmentInfo" }
    42            },
    43            "400": {
    44              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
    45              "schema": { "$ref": "#/definitions/ErrorResponse" }
    46            },
    47            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
    48            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
    49            "404": {
    50              "description": "The resource was not found.",
    51              "schema": { "$ref": "#/definitions/ErrorResponse" }
    52            },
    53            "500": {
    54              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
    55              "schema": { "$ref": "#/definitions/ErrorResponse" }
    56            },
    57            "503": {
    58              "description": "The service you are trying to communciate with is unavailable.",
    59              "schema": { "$ref": "#/definitions/ErrorResponse" }
    60            }
    61          },
    62          "deprecated": false
    63        }
    64      },
    65      "/v3/attachments/{attachmentId}/views/{viewId}": {
    66        "get": {
    67          "tags": [ "Attachments" ],
    68          "summary": "GetAttachment",
    69          "description": "Get the named view as binary content",
    70          "operationId": "Attachments_GetAttachment",
    71          "consumes": [],
    72          "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
    73          "parameters": [
    74            {
    75              "name": "attachmentId",
    76              "in": "path",
    77              "description": "attachment id",
    78              "required": true,
    79              "type": "string"
    80            },
    81            {
    82              "name": "viewId",
    83              "in": "path",
    84              "description": "View id from attachmentInfo",
    85              "required": true,
    86              "type": "string"
    87            }
    88          ],
    89          "responses": {
    90            "200": {
    91              "description": "An array of bytes which represent the content.",
    92              "schema": {
    93                "type": "file"
    94              }
    95            },
    96            "301": { "description": "The Location header describes where the content is now." },
    97            "302": { "description": "The Location header describes where the content is now." },
    98            "400": {
    99              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   100              "schema": { "$ref": "#/definitions/ErrorResponse" }
   101            },
   102            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   103            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   104            "404": {
   105              "description": "The resource was not found.",
   106              "schema": { "$ref": "#/definitions/ErrorResponse" }
   107            },
   108            "500": {
   109              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   110              "schema": { "$ref": "#/definitions/ErrorResponse" }
   111            },
   112            "503": {
   113              "description": "The service you are trying to communciate with is unavailable.",
   114              "schema": { "$ref": "#/definitions/ErrorResponse" }
   115            }
   116          },
   117          "deprecated": false
   118        }
   119      },
   120      "/v3/conversations": {
   121        "post": {
   122          "tags": [ "Conversations" ],
   123          "summary": "CreateConversation",
   124          "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* Members array contining the members you want to have be 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```",
   125          "operationId": "Conversations_CreateConversation",
   126          "consumes": [ "application/json", "text/json", "application/xml", "text/xml", "application/x-www-form-urlencoded" ],
   127          "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
   128          "parameters": [
   129            {
   130              "name": "parameters",
   131              "in": "body",
   132              "description": "Parameters to create the conversation from",
   133              "required": true,
   134              "schema": { "$ref": "#/definitions/ConversationParameters" }
   135            }
   136          ],
   137          "responses": {
   138            "200": {
   139              "description": "An object will be returned containing the ID for the resource.",
   140              "schema": { "$ref": "#/definitions/ResourceResponse" }
   141            },
   142            "201": {
   143              "description": "A ResourceResponse object will be returned containing the ID for the resource.",
   144              "schema": { "$ref": "#/definitions/ResourceResponse" }
   145            },
   146            "202": {
   147              "description": "An object will be returned containing the ID for the resource.",
   148              "schema": { "$ref": "#/definitions/ResourceResponse" }
   149            },
   150            "400": {
   151              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   152              "schema": { "$ref": "#/definitions/ErrorResponse" }
   153            },
   154            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   155            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   156            "404": {
   157              "description": "The resource was not found.",
   158              "schema": { "$ref": "#/definitions/ErrorResponse" }
   159            },
   160            "405": {
   161              "description": "The method and URI you are trying to use is not allowed on this service.  For example, not all services support the DELETE or PUT verbs on an activity URI.  ",
   162              "schema": { "$ref": "#/definitions/ErrorResponse" }
   163            },
   164            "500": {
   165              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   166              "schema": { "$ref": "#/definitions/ErrorResponse" }
   167            },
   168            "503": {
   169              "description": "The service you are trying to communciate with is unavailable.",
   170              "schema": { "$ref": "#/definitions/ErrorResponse" }
   171            }
   172          },
   173          "deprecated": false
   174        }
   175      },
   176      "/v3/conversations/{conversationId}/activities": {
   177        "post": {
   178          "tags": [ "Conversations" ],
   179          "summary": "SendToConversation",
   180          "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* SendToConverstion(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.",
   181          "operationId": "Conversations_SendToConversation",
   182          "consumes": [ "application/json", "text/json", "application/xml", "text/xml", "application/x-www-form-urlencoded" ],
   183          "produces": [ "application/json", "text/json" ],
   184          "parameters": [
   185            {
   186              "name": "activity",
   187              "in": "body",
   188              "description": "Activity to send",
   189              "required": true,
   190              "schema": { "$ref": "#/definitions/Activity" }
   191            },
   192            {
   193              "name": "conversationId",
   194              "in": "path",
   195              "description": "Conversation ID",
   196              "required": true,
   197              "type": "string"
   198            }
   199          ],
   200          "responses": {
   201            "200": {
   202              "description": "An object will be returned containing the ID for the resource.",
   203              "schema": { "$ref": "#/definitions/ResourceResponse" }
   204            },
   205            "201": {
   206              "description": "A ResourceResponse object will be returned containing the ID for the resource.",
   207              "schema": { "$ref": "#/definitions/ResourceResponse" }
   208            },
   209            "202": {
   210              "description": "An object will be returned containing the ID for the resource.",
   211              "schema": { "$ref": "#/definitions/ResourceResponse" }
   212            },
   213            "400": {
   214              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   215              "schema": { "$ref": "#/definitions/ErrorResponse" }
   216            },
   217            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   218            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   219            "404": {
   220              "description": "The resource was not found.",
   221              "schema": { "$ref": "#/definitions/ErrorResponse" }
   222            },
   223            "500": {
   224              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   225              "schema": { "$ref": "#/definitions/ErrorResponse" }
   226            },
   227            "503": {
   228              "description": "The service you are trying to communciate with is unavailable.",
   229              "schema": { "$ref": "#/definitions/ErrorResponse" }
   230            }
   231          },
   232          "deprecated": false
   233        }
   234      },
   235      "/v3/conversations/{conversationId}/activities/{activityId}": {
   236        "put": {
   237          "tags": [ "Conversations" ],
   238          "summary": "UpdateActivity",
   239          "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.",
   240          "operationId": "Conversations_UpdateActivity",
   241          "consumes": [ "application/json", "text/json", "application/xml", "text/xml", "application/x-www-form-urlencoded" ],
   242          "produces": [ "application/json", "text/json" ],
   243          "parameters": [
   244            {
   245              "name": "conversationId",
   246              "in": "path",
   247              "description": "Conversation ID",
   248              "required": true,
   249              "type": "string"
   250            },
   251            {
   252              "name": "activityId",
   253              "in": "path",
   254              "description": "activityId to update",
   255              "required": true,
   256              "type": "string"
   257            },
   258            {
   259              "name": "activity",
   260              "in": "body",
   261              "description": "replacement Activity",
   262              "required": true,
   263              "schema": { "$ref": "#/definitions/Activity" }
   264            }
   265          ],
   266          "responses": {
   267            "200": {
   268              "description": "An object will be returned containing the ID for the resource.",
   269              "schema": { "$ref": "#/definitions/ResourceResponse" }
   270            },
   271            "201": {
   272              "description": "A ResourceResponse object will be returned containing the ID for the resource.",
   273              "schema": { "$ref": "#/definitions/ResourceResponse" }
   274            },
   275            "202": {
   276              "description": "An object will be returned containing the ID for the resource.",
   277              "schema": { "$ref": "#/definitions/ResourceResponse" }
   278            },
   279            "400": {
   280              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   281              "schema": { "$ref": "#/definitions/ErrorResponse" }
   282            },
   283            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   284            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   285            "404": {
   286              "description": "The resource was not found.",
   287              "schema": { "$ref": "#/definitions/ErrorResponse" }
   288            },
   289            "405": {
   290              "description": "The method and URI you are trying to use is not allowed on this service.  For example, not all services support the DELETE or PUT verbs on an activity URI.  ",
   291              "schema": { "$ref": "#/definitions/ErrorResponse" }
   292            },
   293            "500": {
   294              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   295              "schema": { "$ref": "#/definitions/ErrorResponse" }
   296            },
   297            "503": {
   298              "description": "The service you are trying to communciate with is unavailable.",
   299              "schema": { "$ref": "#/definitions/ErrorResponse" }
   300            }
   301          },
   302          "deprecated": false
   303        },
   304        "post": {
   305          "tags": [ "Conversations" ],
   306          "summary": "ReplyToActivity",
   307          "description": "This method allows you to reply to an activity.\r\n\r\nThis is slightly different from SendToConversation().\r\n* SendToConverstion(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.",
   308          "operationId": "Conversations_ReplyToActivity",
   309          "consumes": [ "application/json", "text/json", "application/xml", "text/xml", "application/x-www-form-urlencoded" ],
   310          "produces": [ "application/json", "text/json" ],
   311          "parameters": [
   312            {
   313              "name": "conversationId",
   314              "in": "path",
   315              "description": "Conversation ID",
   316              "required": true,
   317              "type": "string"
   318            },
   319            {
   320              "name": "activityId",
   321              "in": "path",
   322              "description": "activityId the reply is to (OPTIONAL)",
   323              "required": true,
   324              "type": "string"
   325            },
   326            {
   327              "name": "activity",
   328              "in": "body",
   329              "description": "Activity to send",
   330              "required": true,
   331              "schema": { "$ref": "#/definitions/Activity" }
   332            }
   333          ],
   334          "responses": {
   335            "200": {
   336              "description": "An object will be returned containing the ID for the resource.",
   337              "schema": { "$ref": "#/definitions/ResourceResponse" }
   338            },
   339            "201": {
   340              "description": "A ResourceResponse object will be returned containing the ID for the resource.",
   341              "schema": { "$ref": "#/definitions/ResourceResponse" }
   342            },
   343            "202": {
   344              "description": "An object will be returned containing the ID for the resource.",
   345              "schema": { "$ref": "#/definitions/ResourceResponse" }
   346            },
   347            "400": {
   348              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   349              "schema": { "$ref": "#/definitions/ErrorResponse" }
   350            },
   351            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   352            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   353            "404": {
   354              "description": "The resource was not found.",
   355              "schema": { "$ref": "#/definitions/ErrorResponse" }
   356            },
   357            "500": {
   358              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   359              "schema": { "$ref": "#/definitions/ErrorResponse" }
   360            },
   361            "503": {
   362              "description": "The service you are trying to communciate with is unavailable.",
   363              "schema": { "$ref": "#/definitions/ErrorResponse" }
   364            }
   365          },
   366          "deprecated": false
   367        },
   368        "delete": {
   369          "tags": [ "Conversations" ],
   370          "summary": "DeleteActivity",
   371          "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.",
   372          "operationId": "Conversations_DeleteActivity",
   373          "consumes": [],
   374          "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
   375          "parameters": [
   376            {
   377              "name": "conversationId",
   378              "in": "path",
   379              "description": "Conversation ID",
   380              "required": true,
   381              "type": "string"
   382            },
   383            {
   384              "name": "activityId",
   385              "in": "path",
   386              "description": "activityId to delete",
   387              "required": true,
   388              "type": "string"
   389            }
   390          ],
   391          "responses": {
   392            "200": { "description": "The operation succeeded, there is no response." },
   393            "202": { "description": "The request has been accepted for processing, but the processing has not been completed" },
   394            "400": {
   395              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   396              "schema": { "$ref": "#/definitions/ErrorResponse" }
   397            },
   398            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   399            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   400            "404": {
   401              "description": "The resource was not found.",
   402              "schema": { "$ref": "#/definitions/ErrorResponse" }
   403            },
   404            "405": {
   405              "description": "The method and URI you are trying to use is not allowed on this service.  For example, not all services support the DELETE or PUT verbs on an activity URI.  ",
   406              "schema": { "$ref": "#/definitions/ErrorResponse" }
   407            },
   408            "500": {
   409              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   410              "schema": { "$ref": "#/definitions/ErrorResponse" }
   411            },
   412            "503": {
   413              "description": "The service you are trying to communciate with is unavailable.",
   414              "schema": { "$ref": "#/definitions/ErrorResponse" }
   415            }
   416          },
   417          "deprecated": false
   418        }
   419      },
   420      "/v3/conversations/{conversationId}/members": {
   421        "get": {
   422          "tags": [ "Conversations" ],
   423          "summary": "GetConversationMembers",
   424          "description": "Enumerate the members of a converstion. \r\n\r\nThis REST API takes a ConversationId and returns an array of ChannelAccount objects representing the members of the conversation.",
   425          "operationId": "Conversations_GetConversationMembers",
   426          "consumes": [],
   427          "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
   428          "parameters": [
   429            {
   430              "name": "conversationId",
   431              "in": "path",
   432              "description": "Conversation ID",
   433              "required": true,
   434              "type": "string"
   435            }
   436          ],
   437          "responses": {
   438            "200": {
   439              "description": "An array of ChannelAccount objects",
   440              "schema": {
   441                "type": "array",
   442                "items": { "$ref": "#/definitions/ChannelAccount" }
   443              }
   444            },
   445            "400": {
   446              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   447              "schema": { "$ref": "#/definitions/ErrorResponse" }
   448            },
   449            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   450            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   451            "404": {
   452              "description": "The resource was not found.",
   453              "schema": { "$ref": "#/definitions/ErrorResponse" }
   454            },
   455            "405": {
   456              "description": "The method and URI you are trying to use is not allowed on this service.  For example, not all services support the DELETE or PUT verbs on an activity URI.  ",
   457              "schema": { "$ref": "#/definitions/ErrorResponse" }
   458            },
   459            "500": {
   460              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   461              "schema": { "$ref": "#/definitions/ErrorResponse" }
   462            },
   463            "503": {
   464              "description": "The service you are trying to communciate with is unavailable.",
   465              "schema": { "$ref": "#/definitions/ErrorResponse" }
   466            }
   467          },
   468          "deprecated": false
   469        }
   470      },
   471      "/v3/conversations/{conversationId}/activities/{activityId}/members": {
   472        "get": {
   473          "tags": [ "Conversations" ],
   474          "summary": "GetActivityMembers",
   475          "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.",
   476          "operationId": "Conversations_GetActivityMembers",
   477          "consumes": [],
   478          "produces": [ "application/json", "text/json", "application/xml", "text/xml" ],
   479          "parameters": [
   480            {
   481              "name": "conversationId",
   482              "in": "path",
   483              "description": "Conversation ID",
   484              "required": true,
   485              "type": "string"
   486            },
   487            {
   488              "name": "activityId",
   489              "in": "path",
   490              "description": "Activity ID",
   491              "required": true,
   492              "type": "string"
   493            }
   494          ],
   495          "responses": {
   496            "200": {
   497              "description": "An array of ChannelAccount objects",
   498              "schema": {
   499                "type": "array",
   500                "items": { "$ref": "#/definitions/ChannelAccount" }
   501              }
   502            },
   503            "400": {
   504              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   505              "schema": { "$ref": "#/definitions/ErrorResponse" }
   506            },
   507            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   508            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   509            "404": {
   510              "description": "The resource was not found.",
   511              "schema": { "$ref": "#/definitions/ErrorResponse" }
   512            },
   513            "405": {
   514              "description": "The method and URI you are trying to use is not allowed on this service.  For example, not all services support the DELETE or PUT verbs on an activity URI.  ",
   515              "schema": { "$ref": "#/definitions/ErrorResponse" }
   516            },
   517            "500": {
   518              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   519              "schema": { "$ref": "#/definitions/ErrorResponse" }
   520            },
   521            "503": {
   522              "description": "The service you are trying to communciate with is unavailable.",
   523              "schema": { "$ref": "#/definitions/ErrorResponse" }
   524            }
   525          },
   526          "deprecated": false
   527        }
   528      },
   529      "/v3/conversations/{conversationId}/attachments": {
   530        "post": {
   531          "tags": [ "Conversations" ],
   532          "summary": "UploadAttachment",
   533          "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.",
   534          "operationId": "Conversations_UploadAttachment",
   535          "consumes": [ "application/json", "text/json", "application/xml", "text/xml", "application/x-www-form-urlencoded" ],
   536          "produces": [ "application/json", "text/json" ],
   537          "parameters": [
   538            {
   539              "name": "conversationId",
   540              "in": "path",
   541              "description": "Conversation ID",
   542              "required": true,
   543              "type": "string"
   544            },
   545            {
   546              "name": "attachmentUpload",
   547              "in": "body",
   548              "description": "Attachment data",
   549              "required": true,
   550              "schema": { "$ref": "#/definitions/AttachmentData" }
   551            }
   552          ],
   553          "responses": {
   554            "200": {
   555              "description": "An object will be returned containing the ID for the resource.",
   556              "schema": { "$ref": "#/definitions/ResourceResponse" }
   557            },
   558            "201": {
   559              "description": "A ResourceResponse object will be returned containing the ID for the resource.",
   560              "schema": { "$ref": "#/definitions/ResourceResponse" }
   561            },
   562            "202": {
   563              "description": "An object will be returned containing the ID for the resource.",
   564              "schema": { "$ref": "#/definitions/ResourceResponse" }
   565            },
   566            "400": {
   567              "description": "The request was malformed or otherwise incorrect. Inspect the message for a more detailed description.",
   568              "schema": { "$ref": "#/definitions/ErrorResponse" }
   569            },
   570            "401": { "description": "The bot is not authorized to make this request. Please check your Microsoft App ID and Microsoft App password. " },
   571            "403": { "description": "The request was a valid request, but the server is refusing to respond to it. The user might be logged in but does not have the necessary permissions for the resource." },
   572            "404": {
   573              "description": "The resource was not found.",
   574              "schema": { "$ref": "#/definitions/ErrorResponse" }
   575            },
   576            "405": {
   577              "description": "The method and URI you are trying to use is not allowed on this service.  For example, not all services support the DELETE or PUT verbs on an activity URI.  ",
   578              "schema": { "$ref": "#/definitions/ErrorResponse" }
   579            },
   580            "500": {
   581              "description": "An internal server has occurred. Inspect the message for a more detailed description.",
   582              "schema": { "$ref": "#/definitions/ErrorResponse" }
   583            },
   584            "503": {
   585              "description": "The service you are trying to communciate with is unavailable.",
   586              "schema": { "$ref": "#/definitions/ErrorResponse" }
   587            }
   588          },
   589          "deprecated": false
   590        }
   591      }
   592    },
   593    "definitions": {
   594      "AttachmentInfo": {
   595        "description": "Metdata for an attachment",
   596        "type": "object",
   597        "properties": {
   598          "name": {
   599            "description": "Name of the attachment",
   600            "type": "string"
   601          },
   602          "type": {
   603            "description": "ContentType of the attachment",
   604            "type": "string"
   605          },
   606          "views": {
   607            "description": "attachment views",
   608            "type": "array",
   609            "items": { "$ref": "#/definitions/AttachmentView" }
   610          }
   611        }
   612      },
   613      "AttachmentView": {
   614        "description": "Attachment View name and size",
   615        "type": "object",
   616        "properties": {
   617          "viewId": {
   618            "description": "content type of the attachmnet",
   619            "type": "string"
   620          },
   621          "size": {
   622            "format": "int32",
   623            "description": "Name of the attachment",
   624            "type": "integer"
   625          }
   626        }
   627      },
   628      "ErrorResponse": {
   629        "description": "An HTTP API response",
   630        "type": "object",
   631        "properties": {
   632          "error": {
   633            "$ref": "#/definitions/Error",
   634            "description": "Error message"
   635          }
   636        }
   637      },
   638      "Error": {
   639        "description": "Object representing error information",
   640        "type": "object",
   641        "properties": {
   642          "code": {
   643            "description": "Error code",
   644            "type": "string"
   645          },
   646          "message": {
   647            "description": "Error message",
   648            "type": "string"
   649          }
   650        }
   651      },
   652      "ConversationParameters": {
   653        "description": "Parameters for creating a new conversation",
   654        "type": "object",
   655        "properties": {
   656          "isGroup": {
   657            "description": "IsGroup",
   658            "type": "boolean"
   659          },
   660          "bot": {
   661            "$ref": "#/definitions/ChannelAccount",
   662            "description": "The bot address for this conversation"
   663          },
   664          "members": {
   665            "description": "Members to add to the conversation",
   666            "type": "array",
   667            "items": { "$ref": "#/definitions/ChannelAccount" }
   668          },
   669          "topicName": {
   670            "description": "(Optional) Topic of the conversation (if supported by the channel)",
   671            "type": "string"
   672          }
   673        }
   674      },
   675      "ChannelAccount": {
   676        "description": "Channel account information needed to route a message",
   677        "type": "object",
   678        "properties": {
   679          "id": {
   680            "description": "Channel id for the user or bot on this channel (Example: joe@smith.com, or @joesmith or 123456)",
   681            "type": "string"
   682          },
   683          "name": {
   684            "description": "Display friendly name",
   685            "type": "string"
   686          }
   687        }
   688      },
   689      "Object": {
   690        "type": "object",
   691        "properties": {}
   692      },
   693      "ResourceResponse": {
   694        "description": "A response containing a resource ID",
   695        "type": "object",
   696        "properties": {
   697          "id": {
   698            "description": "Id of the resource",
   699            "type": "string"
   700          }
   701        }
   702      },
   703      "Activity": {
   704        "description": "An Activity is the basic communication type for the Bot Framework 3.0 protocol",
   705        "type": "object",
   706        "properties": {
   707          "type": {
   708            "description": "The type of the activity [message|contactRelationUpdate|converationUpdate|typing]",
   709            "type": "string"
   710          },
   711          "id": {
   712            "description": "Id for the activity",
   713            "type": "string"
   714          },
   715          "timestamp": {
   716            "format": "date-time",
   717            "description": "UTC Time when message was sent (Set by service)",
   718            "type": "string"
   719          },
   720          "localTimestamp": {
   721            "format": "date-time",
   722            "description": "Local time when message was sent (set by client Ex: 2016-09-23T13:07:49.4714686-07:00)",
   723            "type": "string"
   724          },
   725          "serviceUrl": {
   726            "description": "Service endpoint",
   727            "type": "string"
   728          },
   729          "channelId": {
   730            "description": "ChannelId the activity was on",
   731            "type": "string"
   732          },
   733          "from": {
   734            "$ref": "#/definitions/ChannelAccount",
   735            "description": "Sender address"
   736          },
   737          "conversation": {
   738            "$ref": "#/definitions/ConversationAccount",
   739            "description": "Conversation"
   740          },
   741          "recipient": {
   742            "$ref": "#/definitions/ChannelAccount",
   743            "description": "(Outbound to bot only) Bot's address that received the message"
   744          },
   745          "textFormat": {
   746            "description": "Format of text fields [plain|markdown] Default:markdown",
   747            "type": "string"
   748          },
   749          "attachmentLayout": {
   750            "description": "AttachmentLayout - hint for how to deal with multiple attachments Values: [list|carousel] Default:list",
   751            "type": "string"
   752          },
   753          "membersAdded": {
   754            "description": "Array of address added",
   755            "type": "array",
   756            "items": { "$ref": "#/definitions/ChannelAccount" }
   757          },
   758          "membersRemoved": {
   759            "description": "Array of addresses removed",
   760            "type": "array",
   761            "items": { "$ref": "#/definitions/ChannelAccount" }
   762          },
   763          "topicName": {
   764            "description": "Conversations new topic name",
   765            "type": "string"
   766          },
   767          "historyDisclosed": {
   768            "description": "the previous history of the channel was disclosed",
   769            "type": "boolean"
   770          },
   771          "locale": {
   772            "description": "The language code of the Text field",
   773            "type": "string"
   774          },
   775          "text": {
   776            "description": "Content for the message",
   777            "type": "string"
   778          },
   779          "summary": {
   780            "description": "Text to display if you can't render cards",
   781            "type": "string"
   782          },
   783          "attachments": {
   784            "description": "Attachments",
   785            "type": "array",
   786            "items": { "$ref": "#/definitions/Attachment" }
   787          },
   788          "entities": {
   789            "description": "Collection of Entity objects, each of which contains metadata about this activity. Each Entity object is typed.",
   790            "type": "array",
   791            "items": { "$ref": "#/definitions/Entity" }
   792          },
   793          "channelData": {
   794            "$ref": "#/definitions/Object",
   795            "description": "Channel specific payload"
   796          },
   797          "action": {
   798            "description": "ContactAdded/Removed action",
   799            "type": "string"
   800          },
   801          "replyToId": {
   802            "description": "the original id this message is a response to",
   803            "type": "string"
   804          },
   805          "value": {
   806            "$ref": "#/definitions/Object",
   807            "description": "Open ended value"
   808          }
   809        }
   810      },
   811      "ConversationAccount": {
   812        "description": "Channel account information for a conversation",
   813        "type": "object",
   814        "properties": {
   815          "isGroup": {
   816            "description": "Is this a reference to a group",
   817            "type": "boolean"
   818          },
   819          "id": {
   820            "description": "Channel id for the user or bot on this channel (Example: joe@smith.com, or @joesmith or 123456)",
   821            "type": "string"
   822          },
   823          "name": {
   824            "description": "Display friendly name",
   825            "type": "string"
   826          }
   827        }
   828      },
   829      "Attachment": {
   830        "description": "An attachment within an activity",
   831        "type": "object",
   832        "properties": {
   833          "contentType": {
   834            "description": "mimetype/Contenttype for the file",
   835            "type": "string"
   836          },
   837          "contentUrl": {
   838            "description": "Content Url",
   839            "type": "string"
   840          },
   841          "content": {
   842            "$ref": "#/definitions/Object",
   843            "description": "Embedded content"
   844          },
   845          "name": {
   846            "description": "(OPTIONAL) The name of the attachment",
   847            "type": "string"
   848          },
   849          "thumbnailUrl": {
   850            "description": "(OPTIONAL) Thumbnail associated with attachment",
   851            "type": "string"
   852          }
   853        }
   854      },
   855      "Entity": {
   856        "description": "Object of schema.org types",
   857        "type": "object",
   858        "properties": {
   859          "type": {
   860            "description": "Entity Type (typically from schema.org types)",
   861            "type": "string"
   862          }
   863        }
   864      },
   865      "AttachmentData": {
   866        "description": "Attachment data",
   867        "type": "object",
   868        "properties": {
   869          "type": {
   870            "description": "content type of the attachmnet",
   871            "type": "string"
   872          },
   873          "name": {
   874            "description": "Name of the attachment",
   875            "type": "string"
   876          },
   877          "originalBase64": {
   878            "format": "byte",
   879            "description": "original content",
   880            "type": "string"
   881          },
   882          "thumbnailBase64": {
   883            "format": "byte",
   884            "description": "Thumbnail",
   885            "type": "string"
   886          }
   887        }
   888      },
   889      "HeroCard": {
   890        "description": "A Hero card (card with a single, large image)",
   891        "type": "object",
   892        "properties": {
   893          "title": {
   894            "description": "Title of the card",
   895            "type": "string"
   896          },
   897          "subtitle": {
   898            "description": "Subtitle of the card",
   899            "type": "string"
   900          },
   901          "text": {
   902            "description": "Text for the card",
   903            "type": "string"
   904          },
   905          "images": {
   906            "description": "Array of images for the card",
   907            "type": "array",
   908            "items": { "$ref": "#/definitions/CardImage" }
   909          },
   910          "buttons": {
   911            "description": "Set of actions applicable to the current card",
   912            "type": "array",
   913            "items": { "$ref": "#/definitions/CardAction" }
   914          },
   915          "tap": {
   916            "$ref": "#/definitions/CardAction",
   917            "description": "This action will be activated when user taps on the card itself"
   918          }
   919        }
   920      },
   921      "CardImage": {
   922        "description": "An image on a card",
   923        "type": "object",
   924        "properties": {
   925          "url": {
   926            "description": "URL Thumbnail image for major content property.",
   927            "type": "string"
   928          },
   929          "alt": {
   930            "description": "Image description intended for screen readers",
   931            "type": "string"
   932          },
   933          "tap": {
   934            "$ref": "#/definitions/CardAction",
   935            "description": "Action assigned to specific Attachment.E.g.navigate to specific URL or play/open media content"
   936          }
   937        }
   938      },
   939      "CardAction": {
   940        "description": "An action on a card",
   941        "type": "object",
   942        "properties": {
   943          "type": {
   944            "description": "Defines the type of action implemented by this button.",
   945            "type": "string"
   946          },
   947          "title": {
   948            "description": "Text description which appear on the button.",
   949            "type": "string"
   950          },
   951          "image": {
   952            "description": "URL Picture which will appear on the button, next to text label.",
   953            "type": "string"
   954          },
   955          "value": {
   956            "description": "Supplementary parameter for action. Content of this property depends on the ActionType",
   957            "type": "string"
   958          }
   959        }
   960      },
   961      "ThumbnailCard": {
   962        "description": "A thumbnail card (card with a single, small thumbnail image)",
   963        "type": "object",
   964        "properties": {
   965          "title": {
   966            "description": "Title of the card",
   967            "type": "string"
   968          },
   969          "subtitle": {
   970            "description": "Subtitle of the card",
   971            "type": "string"
   972          },
   973          "text": {
   974            "description": "Text for the card",
   975            "type": "string"
   976          },
   977          "images": {
   978            "description": "Array of images for the card",
   979            "type": "array",
   980            "items": { "$ref": "#/definitions/CardImage" }
   981          },
   982          "buttons": {
   983            "description": "Set of actions applicable to the current card",
   984            "type": "array",
   985            "items": { "$ref": "#/definitions/CardAction" }
   986          },
   987          "tap": {
   988            "$ref": "#/definitions/CardAction",
   989            "description": "This action will be activated when user taps on the card itself"
   990          }
   991        }
   992      },
   993      "ReceiptCard": {
   994        "description": "A receipt card",
   995        "type": "object",
   996        "properties": {
   997          "title": {
   998            "description": "Title of the card",
   999            "type": "string"
  1000          },
  1001          "items": {
  1002            "description": "Array of Receipt Items",
  1003            "type": "array",
  1004            "items": { "$ref": "#/definitions/ReceiptItem" }
  1005          },
  1006          "facts": {
  1007            "description": "Array of Fact Objects   Array of key-value pairs.",
  1008            "type": "array",
  1009            "items": { "$ref": "#/definitions/Fact" }
  1010          },
  1011          "tap": {
  1012            "$ref": "#/definitions/CardAction",
  1013            "description": "This action will be activated when user taps on the card"
  1014          },
  1015          "total": {
  1016            "description": "Total amount of money paid (or should be paid)",
  1017            "type": "string"
  1018          },
  1019          "tax": {
  1020            "description": "Total amount of TAX paid(or should be paid)",
  1021            "type": "string"
  1022          },
  1023          "vat": {
  1024            "description": "Total amount of VAT paid(or should be paid)",
  1025            "type": "string"
  1026          },
  1027          "buttons": {
  1028            "description": "Set of actions applicable to the current card",
  1029            "type": "array",
  1030            "items": { "$ref": "#/definitions/CardAction" }
  1031          }
  1032        }
  1033      },
  1034      "ReceiptItem": {
  1035        "description": "An item on a receipt card",
  1036        "type": "object",
  1037        "properties": {
  1038          "title": {
  1039            "description": "Title of the Card",
  1040            "type": "string"
  1041          },
  1042          "subtitle": {
  1043            "description": "Subtitle appears just below Title field, differs from Title in font styling only",
  1044            "type": "string"
  1045          },
  1046          "text": {
  1047            "description": "Text field appears just below subtitle, differs from Subtitle in font styling only",
  1048            "type": "string"
  1049          },
  1050          "image": {
  1051            "$ref": "#/definitions/CardImage",
  1052            "description": "Image"
  1053          },
  1054          "price": {
  1055            "description": "Amount with currency",
  1056            "type": "string"
  1057          },
  1058          "quantity": {
  1059            "description": "Number of items of given kind",
  1060            "type": "string"
  1061          },
  1062          "tap": {
  1063            "$ref": "#/definitions/CardAction",
  1064            "description": "This action will be activated when user taps on the Item bubble."
  1065          }
  1066        }
  1067      },
  1068      "Fact": {
  1069        "description": "Set of key-value pairs. Advantage of this section is that key and value properties will be \r\n            rendered with default style information with some delimiter between them. So there is no need for developer to specify style information.",
  1070        "type": "object",
  1071        "properties": {
  1072          "key": {
  1073            "description": "The key for this Fact",
  1074            "type": "string"
  1075          },
  1076          "value": {
  1077            "description": "The value for this Fact",
  1078            "type": "string"
  1079          }
  1080        }
  1081      },
  1082      "SigninCard": {
  1083        "description": "A card representing a request to sign in",
  1084        "type": "object",
  1085        "properties": {
  1086          "text": {
  1087            "description": "Text for signin request",
  1088            "type": "string"
  1089          },
  1090          "buttons": {
  1091            "description": "Action to use to perform signin",
  1092            "type": "array",
  1093            "items": { "$ref": "#/definitions/CardAction" }
  1094          }
  1095        }
  1096      },
  1097      "AudioCard": {
  1098        "description": "A audio card",
  1099        "type": "object",
  1100        "properties": {
  1101          "aspect": {
  1102            "description": "Aspect ratio of thumbnail/media placeholder, allowed values are \"16x9\" and \"9x16\"",
  1103            "type": "string"
  1104          },
  1105          "title": {
  1106            "description": "Title of the card",
  1107            "type": "string"
  1108          },
  1109          "subtitle": {
  1110            "description": "Subtitle of the card",
  1111            "type": "string"
  1112          },
  1113          "text": {
  1114            "description": "Text of the card",
  1115            "type": "string"
  1116          },
  1117          "image": {
  1118            "$ref": "#/definitions/ThumbnailUrl",
  1119            "description": "Thumbnail placeholder"
  1120          },
  1121          "media": {
  1122            "description": "Array of media Url objects",
  1123            "type": "array",
  1124            "items": { "$ref": "#/definitions/MediaUrl" }
  1125          },
  1126          "buttons": {
  1127            "description": "Set of actions applicable to the current card",
  1128            "type": "array",
  1129            "items": { "$ref": "#/definitions/CardAction" }
  1130          },
  1131          "shareable": {
  1132            "description": "Is it OK for this content to be shareable with others (default:true)",
  1133            "type": "boolean"
  1134          },
  1135          "autoloop": {
  1136            "description": "Should the client loop playback at end of content (default:true)",
  1137            "type": "boolean"
  1138          },
  1139          "autostart": {
  1140            "description": "Should the client automatically start playback of video in this card (default:true)",
  1141            "type": "boolean"
  1142          }
  1143        }
  1144      },
  1145      "ThumbnailUrl": {
  1146        "description": "Object describing a media thumbnail",
  1147        "type": "object",
  1148        "properties": {
  1149          "url": {
  1150            "description": "url pointing to an thumbnail to use for media content",
  1151            "type": "string"
  1152          },
  1153          "alt": {
  1154            "description": "Alt text to display for screen readers on the thumbnail image",
  1155            "type": "string"
  1156          }
  1157        }
  1158      },
  1159      "MediaUrl": {
  1160        "description": "MediaUrl data",
  1161        "type": "object",
  1162        "properties": {
  1163          "url": {
  1164            "description": "Url for the media",
  1165            "type": "string"
  1166          },
  1167          "profile": {
  1168            "description": "Optional profile hint to the client to differentiate multiple MediaUrl objects from each other",
  1169            "type": "string"
  1170          }
  1171        }
  1172      },
  1173      "AnimationCard": {
  1174        "description": "An animation card (Ex: gif or short video clip)",
  1175        "type": "object",
  1176        "properties": {
  1177          "title": {
  1178            "description": "Title of the card",
  1179            "type": "string"
  1180          },
  1181          "subtitle": {
  1182            "description": "Subtitle of the card",
  1183            "type": "string"
  1184          },
  1185          "text": {
  1186            "description": "Text of the card",
  1187            "type": "string"
  1188          },
  1189          "image": {
  1190            "$ref": "#/definitions/ThumbnailUrl",
  1191            "description": "Thumbnail placeholder"
  1192          },
  1193          "media": {
  1194            "description": "Array of media Url objects",
  1195            "type": "array",
  1196            "items": { "$ref": "#/definitions/MediaUrl" }
  1197          },
  1198          "buttons": {
  1199            "description": "Set of actions applicable to the current card",
  1200            "type": "array",
  1201            "items": { "$ref": "#/definitions/CardAction" }
  1202          },
  1203          "shareable": {
  1204            "description": "Is it OK for this content to be shareable with others (default:true)",
  1205            "type": "boolean"
  1206          },
  1207          "autoloop": {
  1208            "description": "Should the client loop playback at end of content (default:true)",
  1209            "type": "boolean"
  1210          },
  1211          "autostart": {
  1212            "description": "Should the client automatically start playback of video in this card (default:true)",
  1213            "type": "boolean"
  1214          }
  1215        }
  1216      },
  1217      "VideoCard": {
  1218        "description": "A video card",
  1219        "type": "object",
  1220        "properties": {
  1221          "title": {
  1222            "description": "Title of the card",
  1223            "type": "string"
  1224          },
  1225          "subtitle": {
  1226            "description": "Subtitle of the card",
  1227            "type": "string"
  1228          },
  1229          "text": {
  1230            "description": "Text of the card",
  1231            "type": "string"
  1232          },
  1233          "image": {
  1234            "$ref": "#/definitions/ThumbnailUrl",
  1235            "description": "Thumbnail placeholder"
  1236          },
  1237          "media": {
  1238            "description": "Array of media Url objects",
  1239            "type": "array",
  1240            "items": { "$ref": "#/definitions/MediaUrl" }
  1241          },
  1242          "buttons": {
  1243            "description": "Set of actions applicable to the current card",
  1244            "type": "array",
  1245            "items": { "$ref": "#/definitions/CardAction" }
  1246          },
  1247          "shareable": {
  1248            "description": "Is it OK for this content to be shareable with others (default:true)",
  1249            "type": "boolean"
  1250          },
  1251          "autoloop": {
  1252            "description": "Should the client loop playback at end of content (default:true)",
  1253            "type": "boolean"
  1254          },
  1255          "autostart": {
  1256            "description": "Should the client automatically start playback of video in this card (default:true)",
  1257            "type": "boolean"
  1258          }
  1259        }
  1260      },
  1261      "GeoCoordinates": {
  1262        "description": "GeoCoordinates (entity type: \"https://schema.org/GeoCoordinates\")",
  1263        "type": "object",
  1264        "properties": {
  1265          "elevation": {
  1266            "format": "double",
  1267            "description": "Elevation of the location [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)",
  1268            "type": "number"
  1269          },
  1270          "latitude": {
  1271            "format": "double",
  1272            "description": "Latitude of the location [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)",
  1273            "type": "number"
  1274          },
  1275          "longitude": {
  1276            "format": "double",
  1277            "description": "Longitude of the location [WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)",
  1278            "type": "number"
  1279          },
  1280          "type": {
  1281            "description": "The type of the thing",
  1282            "type": "string"
  1283          },
  1284          "name": {
  1285            "description": "The name of the thing",
  1286            "type": "string"
  1287          }
  1288        }
  1289      },
  1290      "Place": {
  1291        "description": "Place (entity type: \"https://schema.org/Place\")",
  1292        "type": "object",
  1293        "properties": {
  1294          "address": {
  1295            "$ref": "#/definitions/Object",
  1296            "description": "Address of the place (may be `string` or complex object of type `PostalAddress`)"
  1297          },
  1298          "geo": {
  1299            "$ref": "#/definitions/Object",
  1300            "description": "Geo coordinates of the place (may be complex object of type `GeoCoordinates` or `GeoShape`)"
  1301          },
  1302          "hasMap": {
  1303            "$ref": "#/definitions/Object",
  1304            "description": "Map to the place (may be `string` (URL) or complex object of type `Map`)"
  1305          },
  1306          "type": {
  1307            "description": "The type of the thing",
  1308            "type": "string"
  1309          },
  1310          "name": {
  1311            "description": "The name of the thing",
  1312            "type": "string"
  1313          }
  1314        }
  1315      }
  1316    }
  1317  }