From 27e6adcc3373f9ab168fe7cb1e306a532fad8b0f Mon Sep 17 00:00:00 2001 From: huizlAzure <43765498+huizlAzure@users.noreply.github.com> Date: Mon, 29 Apr 2019 15:42:44 -0700 Subject: [PATCH] [SRP] Expose lease container in Apr19 API. (#5733) * [SRP] Expose lease container in Apr19 API. * Fix lease container example files; fix casing in Lease Container URL --- .../examples/BlobContainersLease_Acquire.json | 19 ++-- .../examples/BlobContainersLease_Break.json | 19 ++-- .../examples/BlobContainersLease_Acquire.json | 19 ++-- .../examples/BlobContainersLease_Break.json | 21 ++-- .../examples/BlobContainersLease_Acquire.json | 19 ++-- .../examples/BlobContainersLease_Break.json | 21 ++-- .../stable/2019-04-01/blob.json | 98 +++++++++++++++++++ .../examples/BlobContainersLease_Acquire.json | 24 +++++ .../examples/BlobContainersLease_Break.json | 24 +++++ 9 files changed, 184 insertions(+), 80 deletions(-) create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Acquire.json create mode 100644 specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Break.json 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 index 2adf9b52f08c..bb8b046aa4d3 100644 --- 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 @@ -7,24 +7,17 @@ "api-version": "2018-03-01-preview", "monitor": "true", "parameters": { - "properties": { - "Action": 0, - "LeaseId": null, - "BreakPeriod": null, - "LeaseDuration": -1, - "ProposedLeaseId": null - } + "action": "Acquire", + "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" - } + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" } } } 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 index e14bdc92d3b3..418c63ed1bdb 100644 --- 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 @@ -7,24 +7,17 @@ "api-version": "2018-03-01-preview", "monitor": "true", "parameters": { - "properties": { - "Action": 4, - "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", - "BreakPeriod": null, - "LeaseDuration": null, - "ProposedLeaseId": null - } + "action": "Break", + "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" - } + "leaseTimeSeconds": "0" } } } 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 index 18c697021828..03d7d9e857bf 100644 --- 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 @@ -7,24 +7,17 @@ "api-version": "2018-07-01", "monitor": "true", "parameters": { - "properties": { - "Action": 0, - "LeaseId": null, - "BreakPeriod": null, - "LeaseDuration": -1, - "ProposedLeaseId": null - } + "action": "Acquire", + "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" - } + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" } } } 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 index e14bdc92d3b3..d0a97bce588d 100644 --- 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 @@ -4,27 +4,20 @@ "resourceGroupName": "res3376", "accountName": "sto328", "containerName": "container6185", - "api-version": "2018-03-01-preview", + "api-version": "2018-07-01", "monitor": "true", "parameters": { - "properties": { - "Action": 4, - "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", - "BreakPeriod": null, - "LeaseDuration": null, - "ProposedLeaseId": null - } + "action": "Break", + "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" - } + "leaseTimeSeconds": "0" } } } 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 index e38f795bdc16..a7d2e6b56976 100644 --- 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 @@ -7,24 +7,17 @@ "api-version": "2018-11-01", "monitor": "true", "parameters": { - "properties": { - "Action": 0, - "LeaseId": null, - "BreakPeriod": null, - "LeaseDuration": -1, - "ProposedLeaseId": null - } + "action": "Acquire", + "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" - } + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" } } } 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 index e14bdc92d3b3..54ef93b1f6e3 100644 --- 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 @@ -4,27 +4,20 @@ "resourceGroupName": "res3376", "accountName": "sto328", "containerName": "container6185", - "api-version": "2018-03-01-preview", + "api-version": "2018-11-01", "monitor": "true", "parameters": { - "properties": { - "Action": 4, - "LeaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", - "BreakPeriod": null, - "LeaseDuration": null, - "ProposedLeaseId": null - } + "action": "Break", + "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" - } + "leaseTimeSeconds": "0" } } } diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/blob.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/blob.json index d09eefe50e32..966b39d203c0 100644 --- a/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/blob.json +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-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": { @@ -1114,6 +1164,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/2019-04-01/examples/BlobContainersLease_Acquire.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Acquire.json new file mode 100644 index 000000000000..b12570e9ef7f --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Acquire.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2019-04-01", + "monitor": "true", + "parameters": { + "action": "Acquire", + "leaseId": null, + "breakPeriod": null, + "leaseDuration": -1, + "proposedLeaseId": null + } + }, + "responses": { + "200": { + "body": { + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d" + } + } + } +} \ No newline at end of file diff --git a/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Break.json b/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Break.json new file mode 100644 index 000000000000..4a786add7ec4 --- /dev/null +++ b/specification/storage/resource-manager/Microsoft.Storage/stable/2019-04-01/examples/BlobContainersLease_Break.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "subscriptionId": "{subscription-id}", + "resourceGroupName": "res3376", + "accountName": "sto328", + "containerName": "container6185", + "api-version": "2019-04-01", + "monitor": "true", + "parameters": { + "action": "Break", + "leaseId": "8698f513-fa75-44a1-b8eb-30ba336af27d", + "breakPeriod": null, + "leaseDuration": null, + "proposedLeaseId": null + } + }, + "responses": { + "200": { + "body": { + "leaseTimeSeconds": "0" + } + } + } +} \ No newline at end of file