diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/blob.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/blob.json index a60b0a7b8de0..ad0759f162b9 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/blob.json +++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/blob.json @@ -597,6 +597,56 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease": { + "post": { + "tags": [ + "BlobContainers" + ], + "operationId": "BlobContainers_Lease", + "x-ms-examples": { + "Acquire a lease on a container": { + "$ref": "./examples/BlobContainersLease_Acquire.json" + }, + "Break a lease on a container": { + "$ref": "./examples/BlobContainersLease_Break.json" + } + }, + "description": "The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "$ref": "./storage.json#/parameters/ResourceGroupName" + }, + { + "$ref": "./storage.json#/parameters/StorageAccountName" + }, + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "schema": { + "$ref": "#/definitions/LeaseContainerRequest" + }, + "description": "Lease Container request body." + } + ], + "responses": { + "200": { + "description": "OK -- Lease Container operation completed successfully.", + "schema": { + "$ref": "#/definitions/LeaseContainerResponse" + } + } + } + } } }, "definitions": { @@ -917,6 +967,54 @@ } }, "description": "The list of blob containers." + }, + "LeaseContainerRequest": { + "properties": { + "action": { + "type": "string", + "enum": [ + "Acquire", + "Renew", + "Change", + "Release", + "Break" + ], + "description": "Specifies the lease action. Can be one of the available actions." + }, + "leaseId": { + "type": "string", + "description": "Identifies the lease. Can be specified in any valid GUID string format." + }, + "breakPeriod": { + "type": "integer", + "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." + }, + "leaseDuration": { + "type": "integer", + "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." + }, + "proposedLeaseId": { + "type": "string", + "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." + } + }, + "required": [ + "action" + ], + "description": "Lease Container request schema." + }, + "LeaseContainerResponse": { + "properties": { + "leaseId": { + "type": "string", + "description": "Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease." + }, + "leaseTimeSeconds": { + "type": "string", + "description": "Approximate time remaining in the lease period, in seconds." + } + }, + "description": "Lease Container response schema." } }, "parameters": { diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/examples/BlobContainersLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/examples/BlobContainersLease_Acquire.json new file mode 100644 index 000000000000..2adf9b52f08c --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/examples/BlobContainersLease_Acquire.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-03-01-preview", + "monitor": "true", + "parameters": { + "properties": { + "Action": 0, + "LeaseId": null, + "BreakPeriod": null, + "LeaseDuration": -1, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/examples/BlobContainersLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/examples/BlobContainersLease_Break.json new file mode 100644 index 000000000000..e14bdc92d3b3 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/preview/2018-03-01-preview/examples/BlobContainersLease_Break.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-03-01-preview", + "monitor": "true", + "parameters": { + "properties": { + "Action": 4, + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "BreakPeriod": null, + "LeaseDuration": null, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseTimeSeconds": "0" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/blob.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/blob.json index 3fb66dadbdc7..81fb16b4d0c8 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/blob.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/blob.json @@ -597,6 +597,56 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease": { + "post": { + "tags": [ + "BlobContainers" + ], + "operationId": "BlobContainers_Lease", + "x-ms-examples": { + "Acquire a lease on a container": { + "$ref": "./examples/BlobContainersLease_Acquire.json" + }, + "Break a lease on a container": { + "$ref": "./examples/BlobContainersLease_Break.json" + } + }, + "description": "The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "$ref": "./storage.json#/parameters/ResourceGroupName" + }, + { + "$ref": "#/parameters/AccountName" + }, + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "schema": { + "$ref": "#/definitions/LeaseContainerRequest" + }, + "description": "Lease Container request body." + } + ], + "responses": { + "200": { + "description": "OK -- Lease Container operation completed successfully.", + "schema": { + "$ref": "#/definitions/LeaseContainerResponse" + } + } + } + } } }, "definitions": { @@ -917,6 +967,54 @@ } }, "description": "The list of blob containers." + }, + "LeaseContainerRequest": { + "properties": { + "action": { + "type": "string", + "enum": [ + "Acquire", + "Renew", + "Change", + "Release", + "Break" + ], + "description": "Specifies the lease action. Can be one of the available actions." + }, + "leaseId": { + "type": "string", + "description": "Identifies the lease. Can be specified in any valid GUID string format." + }, + "breakPeriod": { + "type": "integer", + "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." + }, + "leaseDuration": { + "type": "integer", + "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." + }, + "proposedLeaseId": { + "type": "string", + "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." + } + }, + "required": [ + "action" + ], + "description": "Lease Container request schema." + }, + "LeaseContainerResponse": { + "properties": { + "leaseId": { + "type": "string", + "description": "Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease." + }, + "leaseTimeSeconds": { + "type": "string", + "description": "Approximate time remaining in the lease period, in seconds." + } + }, + "description": "Lease Container response schema." } }, "parameters": { diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/examples/BlobContainersLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/examples/BlobContainersLease_Acquire.json new file mode 100644 index 000000000000..4d1e6f7613d0 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/examples/BlobContainersLease_Acquire.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-02-01", + "monitor": "true", + "parameters": { + "properties": { + "Action": 0, + "LeaseId": null, + "BreakPeriod": null, + "LeaseDuration": -1, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/examples/BlobContainersLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/examples/BlobContainersLease_Break.json new file mode 100644 index 000000000000..e14bdc92d3b3 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-02-01/examples/BlobContainersLease_Break.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-03-01-preview", + "monitor": "true", + "parameters": { + "properties": { + "Action": 4, + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "BreakPeriod": null, + "LeaseDuration": null, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseTimeSeconds": "0" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/blob.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/blob.json index ad6bdfecb437..d87260e5fb17 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/blob.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/blob.json @@ -682,6 +682,56 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease": { + "post": { + "tags": [ + "BlobContainers" + ], + "operationId": "BlobContainers_Lease", + "x-ms-examples": { + "Acquire a lease on a container": { + "$ref": "./examples/BlobContainersLease_Acquire.json" + }, + "Break a lease on a container": { + "$ref": "./examples/BlobContainersLease_Break.json" + } + }, + "description": "The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "$ref": "./storage.json#/parameters/ResourceGroupName" + }, + { + "$ref": "./storage.json#/parameters/StorageAccountName" + }, + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "schema": { + "$ref": "#/definitions/LeaseContainerRequest" + }, + "description": "Lease Container request body." + } + ], + "responses": { + "200": { + "description": "OK -- Lease Container operation completed successfully.", + "schema": { + "$ref": "#/definitions/LeaseContainerResponse" + } + } + } + } } }, "definitions": { @@ -1104,6 +1154,54 @@ "allowedHeaders" ], "description": "Specifies a CORS rule for the Blob service." + }, + "LeaseContainerRequest": { + "properties": { + "action": { + "type": "string", + "enum": [ + "Acquire", + "Renew", + "Change", + "Release", + "Break" + ], + "description": "Specifies the lease action. Can be one of the available actions." + }, + "leaseId": { + "type": "string", + "description": "Identifies the lease. Can be specified in any valid GUID string format." + }, + "breakPeriod": { + "type": "integer", + "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." + }, + "leaseDuration": { + "type": "integer", + "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." + }, + "proposedLeaseId": { + "type": "string", + "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." + } + }, + "required": [ + "action" + ], + "description": "Lease Container request schema." + }, + "LeaseContainerResponse": { + "properties": { + "leaseId": { + "type": "string", + "description": "Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease." + }, + "leaseTimeSeconds": { + "type": "string", + "description": "Approximate time remaining in the lease period, in seconds." + } + }, + "description": "Lease Container response schema." } }, "parameters": { diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/examples/BlobContainersLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/examples/BlobContainersLease_Acquire.json new file mode 100644 index 000000000000..18c697021828 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/examples/BlobContainersLease_Acquire.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-07-01", + "monitor": "true", + "parameters": { + "properties": { + "Action": 0, + "LeaseId": null, + "BreakPeriod": null, + "LeaseDuration": -1, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/examples/BlobContainersLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/examples/BlobContainersLease_Break.json new file mode 100644 index 000000000000..e14bdc92d3b3 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-07-01/examples/BlobContainersLease_Break.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-03-01-preview", + "monitor": "true", + "parameters": { + "properties": { + "Action": 4, + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "BreakPeriod": null, + "LeaseDuration": null, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseTimeSeconds": "0" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/blob.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/blob.json index 34ece04573d8..786ef48f8132 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/blob.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/blob.json @@ -688,6 +688,56 @@ } } } + }, + "/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}/blobServices/default/containers/{containerName}/lease": { + "post": { + "tags": [ + "BlobContainers" + ], + "operationId": "BlobContainers_Lease", + "x-ms-examples": { + "Acquire a lease on a container": { + "$ref": "./examples/BlobContainersLease_Acquire.json" + }, + "Break a lease on a container": { + "$ref": "./examples/BlobContainersLease_Break.json" + } + }, + "description": "The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite.", + "parameters": [ + { + "$ref": "./storage.json#/parameters/ResourceGroupName" + }, + { + "$ref": "./storage.json#/parameters/StorageAccountName" + }, + { + "$ref": "#/parameters/ContainerName" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "parameters", + "in": "body", + "schema": { + "$ref": "#/definitions/LeaseContainerRequest" + }, + "description": "Lease Container request body." + } + ], + "responses": { + "200": { + "description": "OK -- Lease Container operation completed successfully.", + "schema": { + "$ref": "#/definitions/LeaseContainerResponse" + } + } + } + } } }, "definitions": { @@ -1110,6 +1160,54 @@ "allowedHeaders" ], "description": "Specifies a CORS rule for the Blob service." + }, + "LeaseContainerRequest": { + "properties": { + "action": { + "type": "string", + "enum": [ + "Acquire", + "Renew", + "Change", + "Release", + "Break" + ], + "description": "Specifies the lease action. Can be one of the available actions." + }, + "leaseId": { + "type": "string", + "description": "Identifies the lease. Can be specified in any valid GUID string format." + }, + "breakPeriod": { + "type": "integer", + "description": "Optional. For a break action, proposed duration the lease should continue before it is broken, in seconds, between 0 and 60." + }, + "leaseDuration": { + "type": "integer", + "description": "Required for acquire. Specifies the duration of the lease, in seconds, or negative one (-1) for a lease that never expires." + }, + "proposedLeaseId": { + "type": "string", + "description": "Optional for acquire, required for change. Proposed lease ID, in a GUID string format." + } + }, + "required": [ + "action" + ], + "description": "Lease Container request schema." + }, + "LeaseContainerResponse": { + "properties": { + "leaseId": { + "type": "string", + "description": "Returned unique lease ID that must be included with any request to delete the container, or to renew, change, or release the lease." + }, + "leaseTimeSeconds": { + "type": "string", + "description": "Approximate time remaining in the lease period, in seconds." + } + }, + "description": "Lease Container response schema." } }, "parameters": { diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/examples/BlobContainersLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/examples/BlobContainersLease_Acquire.json new file mode 100644 index 000000000000..e38f795bdc16 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/examples/BlobContainersLease_Acquire.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-11-01", + "monitor": "true", + "parameters": { + "properties": { + "Action": 0, + "LeaseId": null, + "BreakPeriod": null, + "LeaseDuration": -1, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/examples/BlobContainersLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/examples/BlobContainersLease_Break.json new file mode 100644 index 000000000000..e14bdc92d3b3 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2018-11-01/examples/BlobContainersLease_Break.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2018-03-01-preview", + "monitor": "true", + "parameters": { + "properties": { + "Action": 4, + "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "BreakPeriod": null, + "LeaseDuration": null, + "ProposedLeaseId": null + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/{subscription-id}/resourceGroups/res3376/providers/Microsoft.Storage/storageAccounts/sto328/blobServices/default/containers/container6185", + "name": "container6185", + "type": "Microsoft.Storage/storageAccounts/blobServices/containers", + "properties": { + "LeaseTimeSeconds": "0" + } + } + } + } +} \ No newline at end of file