async setMetadata(metadata, options = {}) {
        options.conditions = options.conditions || {};
        ensureCpkIfSpecified(options.customerProvidedKey, this.isHttps);
        return tracingClient.withSpan("BlobClient-setMetadata", options, async (updatedOptions) => {
            var _a;
            return assertResponse(await this.blobContext.setMetadata({
                abortSignal: options.abortSignal,
                leaseAccessConditions: options.conditions,
                metadata,
                modifiedAccessConditions: Object.assign(Object.assign({}, options.conditions), { ifTags: (_a = options.conditions) === null || _a === void 0 ? void 0 : _a.tagConditions }),
                cpkInfo: options.customerProvidedKey,
                encryptionScope: options.encryptionScope,
                tracingOptions: updatedOptions.tracingOptions,
            }));
        });
    }
Sets user-defined metadata for the specified blob as one or more name-value pairs.

If no option provided, or no metadata defined in the parameter, the blob
metadata will be removed.
@see https://learn.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata

@param metadata - Replace existing metadata with this value.
                              If no value provided the existing metadata will be removed.
@param options - Optional options to Set Metadata operation.