diff --git a/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/CommonDefinitions.json b/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/CommonDefinitions.json index 49ade60347df..50937ab0891c 100644 --- a/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/CommonDefinitions.json +++ b/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/CommonDefinitions.json @@ -507,6 +507,53 @@ } } }, + "AzureStorageInfoValue": { + "description": "Azure Files or Blob Storage access information value for dictionary storage.", + "type": "object", + "properties": { + "type": { + "description": "Type of storage.", + "enum": [ + "AzureFiles", + "AzureBlob" + ], + "type": "string", + "x-ms-enum": { + "name": "AzureStorageType", + "modelAsString": false + } + }, + "accountName": { + "description": "Name of the storage account.", + "type": "string" + }, + "shareName": { + "description": "Name of the file share (container name, for Blob storage).", + "type": "string" + }, + "accessKey": { + "description": "Access key for the storage account.", + "type": "string" + }, + "mountPath": { + "description": "Path to mount the storage within the site's runtime environment.", + "type": "string" + }, + "state": { + "description": "State of the storage account.", + "enum": [ + "Ok", + "InvalidCredentials", + "InvalidShare" + ], + "type": "string", + "x-ms-enum": { + "name": "AzureStorageState", + "modelAsString": false + } + } + } + }, "Capability": { "description": "Describes the capabilities/features allowed for a specific SKU.", "type": "object", @@ -2127,6 +2174,13 @@ "$ref": "#/definitions/NameValuePair" } }, + "azureStorageAccounts": { + "description": "User-provided Azure storage accounts.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/AzureStorageInfoValue" + } + }, "connectionStrings": { "description": "Connection strings.", "type": "array", diff --git a/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json b/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json index 0ec3d9f459bc..b76a9b8dc718 100644 --- a/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json +++ b/specification/web/resource-manager/Microsoft.Web/stable/2018-02-01/WebApps.json @@ -911,6 +911,99 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/azurestorageaccounts": { + "put": { + "tags": [ + "WebApps" + ], + "summary": "Updates the Azure storage account configurations of an app.", + "description": "Updates the Azure storage account configurations of an app.", + "operationId": "WebApps_UpdateAzureStorageAccounts", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the app.", + "required": true, + "type": "string" + }, + { + "name": "azureStorageAccounts", + "in": "body", + "description": "Azure storage accounts of the app.", + "required": true, + "schema": { + "$ref": "#/definitions/AzureStoragePropertyDictionaryResource" + } + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AzureStoragePropertyDictionaryResource" + } + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/azurestorageaccounts/list": { + "post": { + "tags": [ + "WebApps" + ], + "summary": "Gets the Azure storage account configurations of an app.", + "description": "Gets the Azure storage account configurations of an app.", + "operationId": "WebApps_ListAzureStorageAccounts", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the app.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AzureStoragePropertyDictionaryResource" + } + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/config/backup": { "put": { "tags": [ @@ -7577,6 +7670,113 @@ } } }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/azurestorageaccounts": { + "put": { + "tags": [ + "WebApps" + ], + "summary": "Updates the Azure storage account configurations of an app.", + "description": "Updates the Azure storage account configurations of an app.", + "operationId": "WebApps_UpdateAzureStorageAccountsSlot", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the app.", + "required": true, + "type": "string" + }, + { + "name": "azureStorageAccounts", + "in": "body", + "description": "Azure storage accounts of the app.", + "required": true, + "schema": { + "$ref": "#/definitions/AzureStoragePropertyDictionaryResource" + } + }, + { + "name": "slot", + "in": "path", + "description": "Name of the deployment slot. If a slot is not specified, the API will update the Azure storage account configurations for the production slot.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AzureStoragePropertyDictionaryResource" + } + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/azurestorageaccounts/list": { + "post": { + "tags": [ + "WebApps" + ], + "summary": "Gets the Azure storage account configurations of an app.", + "description": "Gets the Azure storage account configurations of an app.", + "operationId": "WebApps_ListAzureStorageAccountsSlot", + "parameters": [ + { + "$ref": "#/parameters/resourceGroupNameParameter" + }, + { + "name": "name", + "in": "path", + "description": "Name of the app.", + "required": true, + "type": "string" + }, + { + "name": "slot", + "in": "path", + "description": "Name of the deployment slot. If a slot is not specified, the API will update the Azure storage account configurations for the production slot.", + "required": true, + "type": "string" + }, + { + "$ref": "#/parameters/subscriptionIdParameter" + }, + { + "$ref": "#/parameters/apiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/AzureStoragePropertyDictionaryResource" + } + }, + "default": { + "description": "App Service error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + } + } + }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{name}/slots/{slot}/config/backup": { "put": { "tags": [ @@ -15659,7 +15859,7 @@ "$ref": "#/definitions/SiteSourceControl" } }, - "default": { + "default": { "description": "App Service error response.", "schema": { "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" @@ -16817,6 +17017,25 @@ } } }, + "AzureStoragePropertyDictionaryResource": { + "description": "AzureStorageInfo dictionary resource.", + "type": "object", + "allOf": [ + { + "$ref": "./CommonDefinitions.json#/definitions/ProxyOnlyResource" + } + ], + "properties": { + "properties": { + "description": "Azure storage accounts.", + "type": "object", + "additionalProperties": { + "$ref": "./CommonDefinitions.json#/definitions/AzureStorageInfoValue" + }, + "x-ms-client-flatten": true + } + } + }, "AzureTableStorageApplicationLogsConfig": { "description": "Application logs to Azure table storage configuration.", "required": [ @@ -19689,7 +19908,7 @@ } }, "SlotConfigNames": { - "description": "Names for connection strings and application settings to be marked as sticky to the deployment slot and not moved during a swap operation.\nThis is valid for all deployment slots in an app.", + "description": "Names for connection strings, application settings, and external Azure storage account configuration\nidentifiers to be marked as sticky to the deployment slot and not moved during a swap operation.\nThis is valid for all deployment slots in an app.", "type": "object", "properties": { "connectionStringNames": { @@ -19705,6 +19924,13 @@ "items": { "type": "string" } + }, + "azureStorageConfigNames": { + "description": "List of external Azure storage account identifiers.", + "type": "array", + "items": { + "type": "string" + } } } }, @@ -20339,4 +20565,4 @@ ] } ] -} \ No newline at end of file +}