@azure/storage-blob 12.9.0-beta.1 → 12.9.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/CHANGELOG.md +34 -5
  2. package/README.md +11 -10
  3. package/dist/index.js +1339 -464
  4. package/dist/index.js.map +1 -1
  5. package/dist-esm/storage-blob/src/BatchResponseParser.js +2 -2
  6. package/dist-esm/storage-blob/src/BatchResponseParser.js.map +1 -1
  7. package/dist-esm/storage-blob/src/BlobBatch.js +8 -8
  8. package/dist-esm/storage-blob/src/BlobBatch.js.map +1 -1
  9. package/dist-esm/storage-blob/src/BlobBatchClient.js +2 -2
  10. package/dist-esm/storage-blob/src/BlobBatchClient.js.map +1 -1
  11. package/dist-esm/storage-blob/src/BlobDownloadResponse.js +1 -1
  12. package/dist-esm/storage-blob/src/BlobDownloadResponse.js.map +1 -1
  13. package/dist-esm/storage-blob/src/BlobLeaseClient.js +5 -5
  14. package/dist-esm/storage-blob/src/BlobLeaseClient.js.map +1 -1
  15. package/dist-esm/storage-blob/src/BlobQueryResponse.browser.js.map +1 -1
  16. package/dist-esm/storage-blob/src/BlobQueryResponse.js.map +1 -1
  17. package/dist-esm/storage-blob/src/BlobServiceClient.js +25 -20
  18. package/dist-esm/storage-blob/src/BlobServiceClient.js.map +1 -1
  19. package/dist-esm/storage-blob/src/Clients.js +105 -100
  20. package/dist-esm/storage-blob/src/Clients.js.map +1 -1
  21. package/dist-esm/storage-blob/src/ContainerClient.js +262 -41
  22. package/dist-esm/storage-blob/src/ContainerClient.js.map +1 -1
  23. package/dist-esm/storage-blob/src/PageBlobRangeResponse.js +3 -3
  24. package/dist-esm/storage-blob/src/PageBlobRangeResponse.js.map +1 -1
  25. package/dist-esm/storage-blob/src/Pipeline.js +9 -7
  26. package/dist-esm/storage-blob/src/Pipeline.js.map +1 -1
  27. package/dist-esm/storage-blob/src/TelemetryPolicyFactory.js +1 -1
  28. package/dist-esm/storage-blob/src/TelemetryPolicyFactory.js.map +1 -1
  29. package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.js +1 -3
  30. package/dist-esm/storage-blob/src/credentials/StorageSharedKeyCredential.js.map +1 -1
  31. package/dist-esm/storage-blob/src/credentials/UserDelegationKeyCredential.js +1 -3
  32. package/dist-esm/storage-blob/src/credentials/UserDelegationKeyCredential.js.map +1 -1
  33. package/dist-esm/storage-blob/src/generated/src/models/index.js.map +1 -1
  34. package/dist-esm/storage-blob/src/generated/src/models/mappers.js +81 -4
  35. package/dist-esm/storage-blob/src/generated/src/models/mappers.js.map +1 -1
  36. package/dist-esm/storage-blob/src/generated/src/models/parameters.js +2 -2
  37. package/dist-esm/storage-blob/src/generated/src/models/parameters.js.map +1 -1
  38. package/dist-esm/storage-blob/src/generated/src/operations/container.js +41 -0
  39. package/dist-esm/storage-blob/src/generated/src/operations/container.js.map +1 -1
  40. package/dist-esm/storage-blob/src/generated/src/storageClientContext.js +2 -2
  41. package/dist-esm/storage-blob/src/generated/src/storageClientContext.js.map +1 -1
  42. package/dist-esm/storage-blob/src/generatedModels.js.map +1 -1
  43. package/dist-esm/storage-blob/src/index.browser.js +1 -1
  44. package/dist-esm/storage-blob/src/index.browser.js.map +1 -1
  45. package/dist-esm/storage-blob/src/index.js +1 -1
  46. package/dist-esm/storage-blob/src/index.js.map +1 -1
  47. package/dist-esm/storage-blob/src/models.js +14 -0
  48. package/dist-esm/storage-blob/src/models.js.map +1 -1
  49. package/dist-esm/storage-blob/src/policies/StorageBearerTokenChallengeAuthenticationPolicy.js +245 -0
  50. package/dist-esm/storage-blob/src/policies/StorageBearerTokenChallengeAuthenticationPolicy.js.map +1 -0
  51. package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js +1 -1
  52. package/dist-esm/storage-blob/src/policies/StorageBrowserPolicy.js.map +1 -1
  53. package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js +5 -5
  54. package/dist-esm/storage-blob/src/policies/StorageRetryPolicy.js.map +1 -1
  55. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js +4 -2
  56. package/dist-esm/storage-blob/src/policies/StorageSharedKeyCredentialPolicy.js.map +1 -1
  57. package/dist-esm/storage-blob/src/policies/TelemetryPolicy.js +1 -1
  58. package/dist-esm/storage-blob/src/policies/TelemetryPolicy.js.map +1 -1
  59. package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js +3 -3
  60. package/dist-esm/storage-blob/src/pollers/BlobStartCopyFromUrlPoller.js.map +1 -1
  61. package/dist-esm/storage-blob/src/sas/AccountSASSignatureValues.js +2 -2
  62. package/dist-esm/storage-blob/src/sas/AccountSASSignatureValues.js.map +1 -1
  63. package/dist-esm/storage-blob/src/sas/BlobSASSignatureValues.js +11 -6
  64. package/dist-esm/storage-blob/src/sas/BlobSASSignatureValues.js.map +1 -1
  65. package/dist-esm/storage-blob/src/sas/ContainerSASPermissions.js +13 -0
  66. package/dist-esm/storage-blob/src/sas/ContainerSASPermissions.js.map +1 -1
  67. package/dist-esm/storage-blob/src/sas/SASQueryParameters.js +2 -2
  68. package/dist-esm/storage-blob/src/sas/SASQueryParameters.js.map +1 -1
  69. package/dist-esm/storage-blob/src/utils/Batch.js.map +1 -1
  70. package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js +1 -1
  71. package/dist-esm/storage-blob/src/utils/BlobQuickQueryStream.js.map +1 -1
  72. package/dist-esm/storage-blob/src/utils/Mutex.js.map +1 -1
  73. package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js +1 -2
  74. package/dist-esm/storage-blob/src/utils/RetriableReadableStream.js.map +1 -1
  75. package/dist-esm/storage-blob/src/utils/constants.js +9 -8
  76. package/dist-esm/storage-blob/src/utils/constants.js.map +1 -1
  77. package/dist-esm/storage-blob/src/utils/tracing.js +2 -2
  78. package/dist-esm/storage-blob/src/utils/tracing.js.map +1 -1
  79. package/dist-esm/storage-blob/src/utils/utils.common.js +212 -16
  80. package/dist-esm/storage-blob/src/utils/utils.common.js.map +1 -1
  81. package/dist-esm/storage-internal-avro/src/AvroParser.js.map +1 -1
  82. package/dist-esm/storage-internal-avro/src/AvroReader.js +8 -8
  83. package/dist-esm/storage-internal-avro/src/AvroReader.js.map +1 -1
  84. package/package.json +40 -49
  85. package/{typings → types}/3.1/storage-blob.d.ts +226 -9
  86. package/{typings → types}/latest/storage-blob.d.ts +206 -11
@@ -1252,7 +1252,13 @@ export declare class BlobClient extends StorageClient {
1252
1252
  private _containerName;
1253
1253
  private _versionId?;
1254
1254
  private _snapshot?;
1255
+ /*
1256
+ * The name of the blob.
1257
+ */
1255
1258
  readonly name: string;
1259
+ /*
1260
+ * The name of the storage container the blob is associated with.
1261
+ */
1256
1262
  readonly containerName: string;
1257
1263
  /**
1258
1264
  *
@@ -2449,7 +2455,17 @@ export declare class BlobLeaseClient {
2449
2455
  private _url;
2450
2456
  private _containerOrBlobOperation;
2451
2457
  private _isContainer;
2458
+ /*
2459
+ * Gets the lease Id.
2460
+ *
2461
+ * @readonly
2462
+ */
2452
2463
  readonly leaseId: string;
2464
+ /*
2465
+ * Gets the url.
2466
+ *
2467
+ * @readonly
2468
+ */
2453
2469
  readonly url: string;
2454
2470
  /**
2455
2471
  * Creates an instance of BlobLeaseClient.
@@ -5003,6 +5019,9 @@ export declare class ContainerClient extends StorageClient {
5003
5019
  */
5004
5020
  private containerContext;
5005
5021
  private _containerName;
5022
+ /*
5023
+ * The name of the container.
5024
+ */
5006
5025
  readonly containerName: string;
5007
5026
  /**
5008
5027
  *
@@ -5380,7 +5399,7 @@ export declare class ContainerClient extends StorageClient {
5380
5399
  * if (item.kind === "prefix") {
5381
5400
  * console.log(`\tBlobPrefix: ${item.name}`);
5382
5401
  * } else {
5383
- * console.log(`\tBlobItem: name - ${item.name}, last modified - ${item.properties.lastModified}`);
5402
+ * console.log(`\tBlobItem: name - ${item.name}`);
5384
5403
  * }
5385
5404
  * }
5386
5405
  * ```
@@ -5395,7 +5414,7 @@ export declare class ContainerClient extends StorageClient {
5395
5414
  * if (item.kind === "prefix") {
5396
5415
  * console.log(`\tBlobPrefix: ${item.name}`);
5397
5416
  * } else {
5398
- * console.log(`\tBlobItem: name - ${item.name}, last modified - ${item.properties.lastModified}`);
5417
+ * console.log(`\tBlobItem: name - ${item.name}`);
5399
5418
  * }
5400
5419
  * entity = await iter.next();
5401
5420
  * }
@@ -5413,7 +5432,7 @@ export declare class ContainerClient extends StorageClient {
5413
5432
  * }
5414
5433
  * }
5415
5434
  * for (const blob of response.segment.blobItems) {
5416
- * console.log(`\tBlobItem: name - ${blob.name}, last modified - ${blob.properties.lastModified}`);
5435
+ * console.log(`\tBlobItem: name - ${blob.name}`);
5417
5436
  * }
5418
5437
  * }
5419
5438
  * ```
@@ -5424,7 +5443,9 @@ export declare class ContainerClient extends StorageClient {
5424
5443
  * console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");
5425
5444
  *
5426
5445
  * let i = 1;
5427
- * for await (const response of containerClient.listBlobsByHierarchy("/", { prefix: "prefix2/sub1/"}).byPage({ maxPageSize: 2 })) {
5446
+ * for await (const response of containerClient
5447
+ * .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
5448
+ * .byPage({ maxPageSize: 2 })) {
5428
5449
  * console.log(`Page ${i++}`);
5429
5450
  * const segment = response.segment;
5430
5451
  *
@@ -5435,7 +5456,7 @@ export declare class ContainerClient extends StorageClient {
5435
5456
  * }
5436
5457
  *
5437
5458
  * for (const blob of response.segment.blobItems) {
5438
- * console.log(`\tBlobItem: name - ${blob.name}, last modified - ${blob.properties.lastModified}`);
5459
+ * console.log(`\tBlobItem: name - ${blob.name}`);
5439
5460
  * }
5440
5461
  * }
5441
5462
  * ```
@@ -5448,6 +5469,129 @@ export declare class ContainerClient extends StorageClient {
5448
5469
  } & BlobPrefix) | ({
5449
5470
  kind: "blob";
5450
5471
  } & BlobItem), ContainerListBlobHierarchySegmentResponse>;
5472
+ /**
5473
+ * The Filter Blobs operation enables callers to list blobs in the container whose tags
5474
+ * match a given search expression.
5475
+ *
5476
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5477
+ * The given expression must evaluate to true for a blob to be returned in the results.
5478
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5479
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5480
+ * @param marker - A string value that identifies the portion of
5481
+ * the list of blobs to be returned with the next listing operation. The
5482
+ * operation returns the continuationToken value within the response body if the
5483
+ * listing operation did not return all blobs remaining to be listed
5484
+ * with the current page. The continuationToken value can be used as the value for
5485
+ * the marker parameter in a subsequent call to request the next page of list
5486
+ * items. The marker value is opaque to the client.
5487
+ * @param options - Options to find blobs by tags.
5488
+ */
5489
+ private findBlobsByTagsSegment;
5490
+ /**
5491
+ * Returns an AsyncIterableIterator for ContainerFindBlobsByTagsSegmentResponse.
5492
+ *
5493
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5494
+ * The given expression must evaluate to true for a blob to be returned in the results.
5495
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5496
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5497
+ * @param marker - A string value that identifies the portion of
5498
+ * the list of blobs to be returned with the next listing operation. The
5499
+ * operation returns the continuationToken value within the response body if the
5500
+ * listing operation did not return all blobs remaining to be listed
5501
+ * with the current page. The continuationToken value can be used as the value for
5502
+ * the marker parameter in a subsequent call to request the next page of list
5503
+ * items. The marker value is opaque to the client.
5504
+ * @param options - Options to find blobs by tags.
5505
+ */
5506
+ private findBlobsByTagsSegments;
5507
+ /**
5508
+ * Returns an AsyncIterableIterator for blobs.
5509
+ *
5510
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5511
+ * The given expression must evaluate to true for a blob to be returned in the results.
5512
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5513
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5514
+ * @param options - Options to findBlobsByTagsItems.
5515
+ */
5516
+ private findBlobsByTagsItems;
5517
+ /**
5518
+ * Returns an async iterable iterator to find all blobs with specified tag
5519
+ * under the specified container.
5520
+ *
5521
+ * .byPage() returns an async iterable iterator to list the blobs in pages.
5522
+ *
5523
+ * Example using `for await` syntax:
5524
+ *
5525
+ * ```js
5526
+ * let i = 1;
5527
+ * for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
5528
+ * console.log(`Blob ${i++}: ${blob.name}`);
5529
+ * }
5530
+ * ```
5531
+ *
5532
+ * Example using `iter.next()`:
5533
+ *
5534
+ * ```js
5535
+ * let i = 1;
5536
+ * const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
5537
+ * let blobItem = await iter.next();
5538
+ * while (!blobItem.done) {
5539
+ * console.log(`Blob ${i++}: ${blobItem.value.name}`);
5540
+ * blobItem = await iter.next();
5541
+ * }
5542
+ * ```
5543
+ *
5544
+ * Example using `byPage()`:
5545
+ *
5546
+ * ```js
5547
+ * // passing optional maxPageSize in the page settings
5548
+ * let i = 1;
5549
+ * for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
5550
+ * if (response.blobs) {
5551
+ * for (const blob of response.blobs) {
5552
+ * console.log(`Blob ${i++}: ${blob.name}`);
5553
+ * }
5554
+ * }
5555
+ * }
5556
+ * ```
5557
+ *
5558
+ * Example using paging with a marker:
5559
+ *
5560
+ * ```js
5561
+ * let i = 1;
5562
+ * let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
5563
+ * let response = (await iterator.next()).value;
5564
+ *
5565
+ * // Prints 2 blob names
5566
+ * if (response.blobs) {
5567
+ * for (const blob of response.blobs) {
5568
+ * console.log(`Blob ${i++}: ${blob.name}`);
5569
+ * }
5570
+ * }
5571
+ *
5572
+ * // Gets next marker
5573
+ * let marker = response.continuationToken;
5574
+ * // Passing next marker as continuationToken
5575
+ * iterator = containerClient
5576
+ * .findBlobsByTags("tagkey='tagvalue'")
5577
+ * .byPage({ continuationToken: marker, maxPageSize: 10 });
5578
+ * response = (await iterator.next()).value;
5579
+ *
5580
+ * // Prints blob names
5581
+ * if (response.blobs) {
5582
+ * for (const blob of response.blobs) {
5583
+ * console.log(`Blob ${i++}: ${blob.name}`);
5584
+ * }
5585
+ * }
5586
+ * ```
5587
+ *
5588
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5589
+ * The given expression must evaluate to true for a blob to be returned in the results.
5590
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5591
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5592
+ * @param options - Options to find blobs by tags.
5593
+ */
5594
+ findBlobsByTags(tagFilterSqlExpression: string, options?: ContainerFindBlobByTagsOptions): PagedAsyncIterableIterator<FilterBlobItem, ContainerFindBlobsByTagsSegmentResponse>;
5451
5595
  private getContainerNameFromUrl;
5452
5596
  /**
5453
5597
  * Only available for ContainerClient constructed with a shared key credential.
@@ -5599,6 +5743,49 @@ export declare interface ContainerExistsOptions extends CommonOptions {
5599
5743
  */
5600
5744
  abortSignal?: AbortSignalLike;
5601
5745
  }
5746
+ /** Defines headers for Container_filterBlobs operation. */
5747
+ export declare interface ContainerFilterBlobsHeaders {
5748
+ /** If a client request id header is sent in the request, this header will be present in the response with the same value. */
5749
+ clientRequestId?: string;
5750
+ /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */
5751
+ requestId?: string;
5752
+ /** Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */
5753
+ version?: string;
5754
+ /** UTC date/time value generated by the service that indicates the time at which the response was initiated */
5755
+ date?: Date;
5756
+ }
5757
+ /**
5758
+ * Options to configure the {@link BlobServiceClient.findBlobsByTags} operation.
5759
+ */
5760
+ export declare interface ContainerFindBlobByTagsOptions extends CommonOptions {
5761
+ /**
5762
+ * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
5763
+ * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
5764
+ */
5765
+ abortSignal?: AbortSignalLike;
5766
+ }
5767
+ /**
5768
+ * The response of {@link BlobServiceClient.findBlobsByTags} operation.
5769
+ */
5770
+ export declare type ContainerFindBlobsByTagsSegmentResponse = FilterBlobSegment & ContainerFilterBlobsHeaders & {
5771
+ /**
5772
+ * The underlying HTTP response.
5773
+ */
5774
+ _response: HttpResponse & {
5775
+ /**
5776
+ * The parsed HTTP response headers.
5777
+ */
5778
+ parsedHeaders: ContainerFilterBlobsHeaders;
5779
+ /**
5780
+ * The response body as text (string format)
5781
+ */
5782
+ bodyAsText: string;
5783
+ /**
5784
+ * The response body as parsed JSON or XML
5785
+ */
5786
+ parsedBody: FilterBlobSegmentModel;
5787
+ };
5788
+ };
5602
5789
  /**
5603
5790
  * Options to configure {@link ContainerClient.generateSasUrl} operation.
5604
5791
  */
@@ -6013,6 +6200,10 @@ export declare class ContainerSASPermissions {
6013
6200
  * Specifies that Permanent Delete is permitted.
6014
6201
  */
6015
6202
  permanentDelete: boolean;
6203
+ /**
6204
+ * Specifies that Filter Blobs by Tags is permitted.
6205
+ */
6206
+ filterByTags: boolean;
6016
6207
  /**
6017
6208
  * Converts the given permissions to a string. Using this method will guarantee the permissions are in an
6018
6209
  * order accepted by the service.
@@ -6076,6 +6267,10 @@ export declare interface ContainerSASPermissionsLike {
6076
6267
  * Specifies that Permanent Delete is permitted.
6077
6268
  */
6078
6269
  permanentDelete?: boolean;
6270
+ /**
6271
+ * Specifies that Filter Blobs by Tags is permitted.
6272
+ */
6273
+ filterByTags?: boolean;
6079
6274
  }
6080
6275
  /** Defines headers for Container_setAccessPolicy operation. */
6081
6276
  export declare interface ContainerSetAccessPolicyHeaders {
@@ -6590,10 +6785,6 @@ export declare interface ListBlobsHierarchySegmentResponseModel {
6590
6785
  segment: BlobHierarchyListSegmentModel;
6591
6786
  continuationToken?: string;
6592
6787
  }
6593
- /** Defines values for ListBlobsIncludeItem. */
6594
- export declare type ListBlobsIncludeItem = "copy" | "deleted" | "metadata" | "snapshots" | "uncommittedblobs" | "versions" | "tags" | "immutabilitypolicy" | "legalhold" | "deletedwithversions";
6595
- /** Defines values for ListContainersIncludeType. */
6596
- export declare type ListContainersIncludeType = "metadata" | "deleted";
6597
6788
  /** An enumeration of containers */
6598
6789
  export declare interface ListContainersSegmentResponse {
6599
6790
  serviceEndpoint: string;
@@ -7869,6 +8060,11 @@ export declare class SASQueryParameters {
7869
8060
  * This is only used for User Delegation SAS.
7870
8061
  */
7871
8062
  readonly correlationId?: string;
8063
+ /*
8064
+ * Optional. IP range allowed for this SAS.
8065
+ *
8066
+ * @readonly
8067
+ */
7872
8068
  readonly ipRange: SasIPRange | undefined;
7873
8069
  /**
7874
8070
  * Creates an instance of SASQueryParameters.
@@ -8261,6 +8457,10 @@ export declare interface ServiceListContainersOptions extends CommonOptions {
8261
8457
  * Specifies whether soft deleted containers should be included in the response.
8262
8458
  */
8263
8459
  includeDeleted?: boolean;
8460
+ /**
8461
+ * Specifies whether system containers should be included in the response.
8462
+ */
8463
+ includeSystem?: boolean;
8264
8464
  }
8265
8465
  /** Defines headers for Service_listContainersSegment operation. */
8266
8466
  export declare interface ServiceListContainersSegmentHeaders {
@@ -8433,6 +8633,19 @@ export declare interface StaticWebsite {
8433
8633
  /** Absolute path of the default index page */
8434
8634
  defaultIndexDocumentPath?: string;
8435
8635
  }
8636
+ /**
8637
+ * Defines the known cloud audiences for Storage.
8638
+ */
8639
+ export declare enum StorageBlobAudience {
8640
+ /**
8641
+ * The OAuth scope to use to retrieve an AAD token for Azure Storage.
8642
+ */
8643
+ StorageOAuthScopes = "https://storage.azure.com/.default",
8644
+ /**
8645
+ * The OAuth scope to use to retrieve an AAD token for Azure Disk.
8646
+ */
8647
+ DiskComputeOAuthScopes = "https://disk.compute.azure.com/.default"
8648
+ }
8436
8649
  /**
8437
8650
  * StorageBrowserPolicy will handle differences between Node.js and browser runtime, including:
8438
8651
  *
@@ -8546,6 +8759,10 @@ export declare interface StoragePipelineOptions {
8546
8759
  * Configures the HTTP client to send requests and receive responses.
8547
8760
  */
8548
8761
  httpClient?: IHttpClient;
8762
+ /**
8763
+ * The audience used to retrieve an AAD token.
8764
+ */
8765
+ audience?: string | string[];
8549
8766
  }
8550
8767
  /**
8551
8768
  * Storage Blob retry options interface.
@@ -5564,7 +5564,7 @@ export declare class ContainerClient extends StorageClient {
5564
5564
  * if (item.kind === "prefix") {
5565
5565
  * console.log(`\tBlobPrefix: ${item.name}`);
5566
5566
  * } else {
5567
- * console.log(`\tBlobItem: name - ${item.name}, last modified - ${item.properties.lastModified}`);
5567
+ * console.log(`\tBlobItem: name - ${item.name}`);
5568
5568
  * }
5569
5569
  * }
5570
5570
  * ```
@@ -5579,7 +5579,7 @@ export declare class ContainerClient extends StorageClient {
5579
5579
  * if (item.kind === "prefix") {
5580
5580
  * console.log(`\tBlobPrefix: ${item.name}`);
5581
5581
  * } else {
5582
- * console.log(`\tBlobItem: name - ${item.name}, last modified - ${item.properties.lastModified}`);
5582
+ * console.log(`\tBlobItem: name - ${item.name}`);
5583
5583
  * }
5584
5584
  * entity = await iter.next();
5585
5585
  * }
@@ -5597,7 +5597,7 @@ export declare class ContainerClient extends StorageClient {
5597
5597
  * }
5598
5598
  * }
5599
5599
  * for (const blob of response.segment.blobItems) {
5600
- * console.log(`\tBlobItem: name - ${blob.name}, last modified - ${blob.properties.lastModified}`);
5600
+ * console.log(`\tBlobItem: name - ${blob.name}`);
5601
5601
  * }
5602
5602
  * }
5603
5603
  * ```
@@ -5608,7 +5608,9 @@ export declare class ContainerClient extends StorageClient {
5608
5608
  * console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");
5609
5609
  *
5610
5610
  * let i = 1;
5611
- * for await (const response of containerClient.listBlobsByHierarchy("/", { prefix: "prefix2/sub1/"}).byPage({ maxPageSize: 2 })) {
5611
+ * for await (const response of containerClient
5612
+ * .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
5613
+ * .byPage({ maxPageSize: 2 })) {
5612
5614
  * console.log(`Page ${i++}`);
5613
5615
  * const segment = response.segment;
5614
5616
  *
@@ -5619,7 +5621,7 @@ export declare class ContainerClient extends StorageClient {
5619
5621
  * }
5620
5622
  *
5621
5623
  * for (const blob of response.segment.blobItems) {
5622
- * console.log(`\tBlobItem: name - ${blob.name}, last modified - ${blob.properties.lastModified}`);
5624
+ * console.log(`\tBlobItem: name - ${blob.name}`);
5623
5625
  * }
5624
5626
  * }
5625
5627
  * ```
@@ -5632,6 +5634,129 @@ export declare class ContainerClient extends StorageClient {
5632
5634
  } & BlobPrefix) | ({
5633
5635
  kind: "blob";
5634
5636
  } & BlobItem), ContainerListBlobHierarchySegmentResponse>;
5637
+ /**
5638
+ * The Filter Blobs operation enables callers to list blobs in the container whose tags
5639
+ * match a given search expression.
5640
+ *
5641
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5642
+ * The given expression must evaluate to true for a blob to be returned in the results.
5643
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5644
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5645
+ * @param marker - A string value that identifies the portion of
5646
+ * the list of blobs to be returned with the next listing operation. The
5647
+ * operation returns the continuationToken value within the response body if the
5648
+ * listing operation did not return all blobs remaining to be listed
5649
+ * with the current page. The continuationToken value can be used as the value for
5650
+ * the marker parameter in a subsequent call to request the next page of list
5651
+ * items. The marker value is opaque to the client.
5652
+ * @param options - Options to find blobs by tags.
5653
+ */
5654
+ private findBlobsByTagsSegment;
5655
+ /**
5656
+ * Returns an AsyncIterableIterator for ContainerFindBlobsByTagsSegmentResponse.
5657
+ *
5658
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5659
+ * The given expression must evaluate to true for a blob to be returned in the results.
5660
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5661
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5662
+ * @param marker - A string value that identifies the portion of
5663
+ * the list of blobs to be returned with the next listing operation. The
5664
+ * operation returns the continuationToken value within the response body if the
5665
+ * listing operation did not return all blobs remaining to be listed
5666
+ * with the current page. The continuationToken value can be used as the value for
5667
+ * the marker parameter in a subsequent call to request the next page of list
5668
+ * items. The marker value is opaque to the client.
5669
+ * @param options - Options to find blobs by tags.
5670
+ */
5671
+ private findBlobsByTagsSegments;
5672
+ /**
5673
+ * Returns an AsyncIterableIterator for blobs.
5674
+ *
5675
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5676
+ * The given expression must evaluate to true for a blob to be returned in the results.
5677
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5678
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5679
+ * @param options - Options to findBlobsByTagsItems.
5680
+ */
5681
+ private findBlobsByTagsItems;
5682
+ /**
5683
+ * Returns an async iterable iterator to find all blobs with specified tag
5684
+ * under the specified container.
5685
+ *
5686
+ * .byPage() returns an async iterable iterator to list the blobs in pages.
5687
+ *
5688
+ * Example using `for await` syntax:
5689
+ *
5690
+ * ```js
5691
+ * let i = 1;
5692
+ * for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
5693
+ * console.log(`Blob ${i++}: ${blob.name}`);
5694
+ * }
5695
+ * ```
5696
+ *
5697
+ * Example using `iter.next()`:
5698
+ *
5699
+ * ```js
5700
+ * let i = 1;
5701
+ * const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
5702
+ * let blobItem = await iter.next();
5703
+ * while (!blobItem.done) {
5704
+ * console.log(`Blob ${i++}: ${blobItem.value.name}`);
5705
+ * blobItem = await iter.next();
5706
+ * }
5707
+ * ```
5708
+ *
5709
+ * Example using `byPage()`:
5710
+ *
5711
+ * ```js
5712
+ * // passing optional maxPageSize in the page settings
5713
+ * let i = 1;
5714
+ * for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
5715
+ * if (response.blobs) {
5716
+ * for (const blob of response.blobs) {
5717
+ * console.log(`Blob ${i++}: ${blob.name}`);
5718
+ * }
5719
+ * }
5720
+ * }
5721
+ * ```
5722
+ *
5723
+ * Example using paging with a marker:
5724
+ *
5725
+ * ```js
5726
+ * let i = 1;
5727
+ * let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
5728
+ * let response = (await iterator.next()).value;
5729
+ *
5730
+ * // Prints 2 blob names
5731
+ * if (response.blobs) {
5732
+ * for (const blob of response.blobs) {
5733
+ * console.log(`Blob ${i++}: ${blob.name}`);
5734
+ * }
5735
+ * }
5736
+ *
5737
+ * // Gets next marker
5738
+ * let marker = response.continuationToken;
5739
+ * // Passing next marker as continuationToken
5740
+ * iterator = containerClient
5741
+ * .findBlobsByTags("tagkey='tagvalue'")
5742
+ * .byPage({ continuationToken: marker, maxPageSize: 10 });
5743
+ * response = (await iterator.next()).value;
5744
+ *
5745
+ * // Prints blob names
5746
+ * if (response.blobs) {
5747
+ * for (const blob of response.blobs) {
5748
+ * console.log(`Blob ${i++}: ${blob.name}`);
5749
+ * }
5750
+ * }
5751
+ * ```
5752
+ *
5753
+ * @param tagFilterSqlExpression - The where parameter enables the caller to query blobs whose tags match a given expression.
5754
+ * The given expression must evaluate to true for a blob to be returned in the results.
5755
+ * The[OData - ABNF] filter syntax rule defines the formal grammar for the value of the where query parameter;
5756
+ * however, only a subset of the OData filter syntax is supported in the Blob service.
5757
+ * @param options - Options to find blobs by tags.
5758
+ */
5759
+ findBlobsByTags(tagFilterSqlExpression: string, options?: ContainerFindBlobByTagsOptions): PagedAsyncIterableIterator<FilterBlobItem, ContainerFindBlobsByTagsSegmentResponse>;
5635
5760
  private getContainerNameFromUrl;
5636
5761
  /**
5637
5762
  * Only available for ContainerClient constructed with a shared key credential.
@@ -5795,6 +5920,52 @@ export declare interface ContainerExistsOptions extends CommonOptions {
5795
5920
  abortSignal?: AbortSignalLike;
5796
5921
  }
5797
5922
 
5923
+ /** Defines headers for Container_filterBlobs operation. */
5924
+ export declare interface ContainerFilterBlobsHeaders {
5925
+ /** If a client request id header is sent in the request, this header will be present in the response with the same value. */
5926
+ clientRequestId?: string;
5927
+ /** This header uniquely identifies the request that was made and can be used for troubleshooting the request. */
5928
+ requestId?: string;
5929
+ /** Indicates the version of the Blob service used to execute the request. This header is returned for requests made against version 2009-09-19 and above. */
5930
+ version?: string;
5931
+ /** UTC date/time value generated by the service that indicates the time at which the response was initiated */
5932
+ date?: Date;
5933
+ }
5934
+
5935
+ /**
5936
+ * Options to configure the {@link BlobServiceClient.findBlobsByTags} operation.
5937
+ */
5938
+ export declare interface ContainerFindBlobByTagsOptions extends CommonOptions {
5939
+ /**
5940
+ * An implementation of the `AbortSignalLike` interface to signal the request to cancel the operation.
5941
+ * For example, use the &commat;azure/abort-controller to create an `AbortSignal`.
5942
+ */
5943
+ abortSignal?: AbortSignalLike;
5944
+ }
5945
+
5946
+ /**
5947
+ * The response of {@link BlobServiceClient.findBlobsByTags} operation.
5948
+ */
5949
+ export declare type ContainerFindBlobsByTagsSegmentResponse = FilterBlobSegment & ContainerFilterBlobsHeaders & {
5950
+ /**
5951
+ * The underlying HTTP response.
5952
+ */
5953
+ _response: HttpResponse & {
5954
+ /**
5955
+ * The parsed HTTP response headers.
5956
+ */
5957
+ parsedHeaders: ContainerFilterBlobsHeaders;
5958
+ /**
5959
+ * The response body as text (string format)
5960
+ */
5961
+ bodyAsText: string;
5962
+ /**
5963
+ * The response body as parsed JSON or XML
5964
+ */
5965
+ parsedBody: FilterBlobSegmentModel;
5966
+ };
5967
+ };
5968
+
5798
5969
  /**
5799
5970
  * Options to configure {@link ContainerClient.generateSasUrl} operation.
5800
5971
  */
@@ -6228,6 +6399,10 @@ export declare class ContainerSASPermissions {
6228
6399
  * Specifies that Permanent Delete is permitted.
6229
6400
  */
6230
6401
  permanentDelete: boolean;
6402
+ /**
6403
+ * Specifies that Filter Blobs by Tags is permitted.
6404
+ */
6405
+ filterByTags: boolean;
6231
6406
  /**
6232
6407
  * Converts the given permissions to a string. Using this method will guarantee the permissions are in an
6233
6408
  * order accepted by the service.
@@ -6292,6 +6467,10 @@ export declare interface ContainerSASPermissionsLike {
6292
6467
  * Specifies that Permanent Delete is permitted.
6293
6468
  */
6294
6469
  permanentDelete?: boolean;
6470
+ /**
6471
+ * Specifies that Filter Blobs by Tags is permitted.
6472
+ */
6473
+ filterByTags?: boolean;
6295
6474
  }
6296
6475
 
6297
6476
  /** Defines headers for Container_setAccessPolicy operation. */
@@ -6851,12 +7030,6 @@ export declare interface ListBlobsHierarchySegmentResponseModel {
6851
7030
  continuationToken?: string;
6852
7031
  }
6853
7032
 
6854
- /** Defines values for ListBlobsIncludeItem. */
6855
- export declare type ListBlobsIncludeItem = "copy" | "deleted" | "metadata" | "snapshots" | "uncommittedblobs" | "versions" | "tags" | "immutabilitypolicy" | "legalhold" | "deletedwithversions";
6856
-
6857
- /** Defines values for ListContainersIncludeType. */
6858
- export declare type ListContainersIncludeType = "metadata" | "deleted";
6859
-
6860
7033
  /** An enumeration of containers */
6861
7034
  export declare interface ListContainersSegmentResponse {
6862
7035
  serviceEndpoint: string;
@@ -8611,6 +8784,10 @@ export declare interface ServiceListContainersOptions extends CommonOptions {
8611
8784
  * Specifies whether soft deleted containers should be included in the response.
8612
8785
  */
8613
8786
  includeDeleted?: boolean;
8787
+ /**
8788
+ * Specifies whether system containers should be included in the response.
8789
+ */
8790
+ includeSystem?: boolean;
8614
8791
  }
8615
8792
 
8616
8793
  /** Defines headers for Service_listContainersSegment operation. */
@@ -8798,6 +8975,20 @@ export declare interface StaticWebsite {
8798
8975
  defaultIndexDocumentPath?: string;
8799
8976
  }
8800
8977
 
8978
+ /**
8979
+ * Defines the known cloud audiences for Storage.
8980
+ */
8981
+ export declare enum StorageBlobAudience {
8982
+ /**
8983
+ * The OAuth scope to use to retrieve an AAD token for Azure Storage.
8984
+ */
8985
+ StorageOAuthScopes = "https://storage.azure.com/.default",
8986
+ /**
8987
+ * The OAuth scope to use to retrieve an AAD token for Azure Disk.
8988
+ */
8989
+ DiskComputeOAuthScopes = "https://disk.compute.azure.com/.default"
8990
+ }
8991
+
8801
8992
  /**
8802
8993
  * StorageBrowserPolicy will handle differences between Node.js and browser runtime, including:
8803
8994
  *
@@ -8917,6 +9108,10 @@ export declare interface StoragePipelineOptions {
8917
9108
  * Configures the HTTP client to send requests and receive responses.
8918
9109
  */
8919
9110
  httpClient?: IHttpClient;
9111
+ /**
9112
+ * The audience used to retrieve an AAD token.
9113
+ */
9114
+ audience?: string | string[];
8920
9115
  }
8921
9116
 
8922
9117
  /**