diff --git a/sdk/storage/azblob/zc_blob_client.go b/sdk/storage/azblob/zc_blob_client.go index 4668047ccfb3..90fd3be3fa02 100644 --- a/sdk/storage/azblob/zc_blob_client.go +++ b/sdk/storage/azblob/zc_blob_client.go @@ -208,8 +208,8 @@ func (b *BlobClient) AbortCopyFromURL(ctx context.Context, copyID string, option // To remove all tags from the blob, call this operation with no tags set. // https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tags func (b *BlobClient) SetTags(ctx context.Context, options *SetTagsBlobOptions) (BlobSetTagsResponse, error) { - blobSetTagsOptions, modifiedAccessConditions := options.pointers() - resp, err := b.client.SetTags(ctx, blobSetTagsOptions, modifiedAccessConditions) + blobSetTagsOptions, leaseAccessConditions, modifiedAccessConditions := options.pointers() + resp, err := b.client.SetTags(ctx, blobSetTagsOptions, leaseAccessConditions, modifiedAccessConditions) return resp, handleError(err) } diff --git a/sdk/storage/azblob/zm_blob_request_options.go b/sdk/storage/azblob/zm_blob_request_options.go index 7d240e6104b9..b04d403aa745 100644 --- a/sdk/storage/azblob/zm_blob_request_options.go +++ b/sdk/storage/azblob/zm_blob_request_options.go @@ -258,11 +258,12 @@ type SetTagsBlobOptions struct { TagsMap map[string]string ModifiedAccessConditions *ModifiedAccessConditions + LeaseAccessConditions *LeaseAccessConditions } -func (o *SetTagsBlobOptions) pointers() (*BlobSetTagsOptions, *ModifiedAccessConditions) { +func (o *SetTagsBlobOptions) pointers() (*BlobSetTagsOptions, *LeaseAccessConditions, *ModifiedAccessConditions) { if o == nil { - return nil, nil + return nil, nil, nil } options := &BlobSetTagsOptions{ @@ -274,7 +275,7 @@ func (o *SetTagsBlobOptions) pointers() (*BlobSetTagsOptions, *ModifiedAccessCon VersionID: o.VersionID, } - return options, o.ModifiedAccessConditions + return options, o.LeaseAccessConditions, o.ModifiedAccessConditions } // GetTagsBlobOptions provides set of configurations for GetTags operation diff --git a/sdk/storage/azblob/zz_generated_blob_client.go b/sdk/storage/azblob/zz_generated_blob_client.go index 05a273cb25ae..dd9e5bd7fd96 100644 --- a/sdk/storage/azblob/zz_generated_blob_client.go +++ b/sdk/storage/azblob/zz_generated_blob_client.go @@ -2432,8 +2432,8 @@ func (client *blobClient) setMetadataHandleResponse(resp *http.Response) (BlobSe // SetTags - The Set Tags operation enables users to set tags on a blob. // If the operation fails it returns the *StorageError error type. -func (client *blobClient) SetTags(ctx context.Context, blobSetTagsOptions *BlobSetTagsOptions, modifiedAccessConditions *ModifiedAccessConditions) (BlobSetTagsResponse, error) { - req, err := client.setTagsCreateRequest(ctx, blobSetTagsOptions, modifiedAccessConditions) +func (client *blobClient) SetTags(ctx context.Context, blobSetTagsOptions *BlobSetTagsOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (BlobSetTagsResponse, error) { + req, err := client.setTagsCreateRequest(ctx, blobSetTagsOptions, leaseAccessConditions, modifiedAccessConditions) if err != nil { return BlobSetTagsResponse{}, err } @@ -2448,7 +2448,7 @@ func (client *blobClient) SetTags(ctx context.Context, blobSetTagsOptions *BlobS } // setTagsCreateRequest creates the SetTags request. -func (client *blobClient) setTagsCreateRequest(ctx context.Context, blobSetTagsOptions *BlobSetTagsOptions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { +func (client *blobClient) setTagsCreateRequest(ctx context.Context, blobSetTagsOptions *BlobSetTagsOptions, leaseAccessConditions *LeaseAccessConditions, modifiedAccessConditions *ModifiedAccessConditions) (*policy.Request, error) { req, err := runtime.NewRequest(ctx, http.MethodPut, client.con.Endpoint()) if err != nil { return nil, err @@ -2472,6 +2472,9 @@ func (client *blobClient) setTagsCreateRequest(ctx context.Context, blobSetTagsO if blobSetTagsOptions != nil && blobSetTagsOptions.RequestID != nil { req.Raw().Header.Set("x-ms-client-request-id", *blobSetTagsOptions.RequestID) } + if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil { + req.Raw().Header.Set("x-ms-lease-id", *leaseAccessConditions.LeaseID) + } if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil { req.Raw().Header.Set("x-ms-if-tags", *modifiedAccessConditions.IfTags) }