Skip to main content

azure_storage_blob/generated/models/
method_options.rs

1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the MIT License.
3//
4// Code generated by Microsoft (R) Rust Code Generator. DO NOT EDIT.
5
6use super::{
7    AccessTier, BlobCopySourceTags, BlobDeleteType, DeleteSnapshotsOptionType,
8    EncryptionAlgorithmType, FileShareTokenIntent, FilterBlobsIncludeItem, ImmutabilityPolicyMode,
9    ListBlobsIncludeItem, ListContainersIncludeType, PremiumPageBlobAccessTier, PublicAccessType,
10    RehydratePriority,
11};
12use crate::models::HttpRange;
13use azure_core::{
14    fmt::SafeDebug,
15    http::{pager::PagerOptions, ClientMethodOptions, Etag},
16    time::OffsetDateTime,
17};
18use std::collections::HashMap;
19
20/// Options to be passed to `AppendBlobClient::append_block_from_url()`
21#[derive(Clone, Default, SafeDebug)]
22pub struct AppendBlobClientAppendBlockFromUrlOptions<'a> {
23    /// A byte offset where the operation will only succeed if the append position is equal. If not, the request will fail with
24    /// AppendPositionConditionNotMet.
25    pub append_position: Option<i64>,
26
27    /// Only the Bearer authorization scheme is supported, and the value must be a valid OAuth access token for the copy source.
28    pub copy_source_authorization: Option<String>,
29
30    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
31    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
32
33    /// Specifies the encryption key to use to encrypt the data provided in the request.
34    pub encryption_key: Option<String>,
35
36    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
37    pub encryption_key_sha256: Option<String>,
38
39    /// Specifies the encryption scope used to encrypt the data.
40    pub encryption_scope: Option<String>,
41
42    /// Specifies the file request token intent.
43    pub file_request_intent: Option<FileShareTokenIntent>,
44
45    /// Specify this value to operate only on a blob with a matching Etag value.
46    pub if_match: Option<Etag>,
47
48    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
49    pub if_modified_since: Option<OffsetDateTime>,
50
51    /// Specify this value to operate only on a blob with a non-matching Etag value.
52    pub if_none_match: Option<Etag>,
53
54    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
55    pub if_tags: Option<String>,
56
57    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
58    pub if_unmodified_since: Option<OffsetDateTime>,
59
60    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
61    pub lease_id: Option<String>,
62
63    /// The max length of the blob. If the operation would cause the blob to exceed that limit or if the blob size is already
64    /// greater than the value specified, the request will fail with MaxBlobSizeConditionNotMet.
65    pub max_size: Option<i64>,
66
67    /// Allows customization of the method call.
68    pub method_options: ClientMethodOptions<'a>,
69
70    /// Specifies the CRC64 calculated for the range of bytes that must be read from the source.
71    pub source_content_crc64: Option<Vec<u8>>,
72
73    /// Specifies the MD5 hash calculated for the range of bytes that must be read from the copy source.
74    pub source_content_md5: Option<Vec<u8>>,
75
76    /// The algorithm used to produce the source encryption key hash. Must be provided if the source encryption key is provided.
77    pub source_encryption_algorithm: Option<EncryptionAlgorithmType>,
78
79    /// Specifies the encryption key to use to decrypt the source data provided in the request.
80    pub source_encryption_key: Option<String>,
81
82    /// The SHA-256 hash of the provided source encryption key. Must be provided if the source encryption key is provided.
83    pub source_encryption_key_sha256: Option<String>,
84
85    /// Specify this value to operate only on a source blob with a matching Etag value.
86    pub source_if_match: Option<Etag>,
87
88    /// Specify this value to operate only on a source blob if it has been modified since the specified date-time.
89    pub source_if_modified_since: Option<OffsetDateTime>,
90
91    /// Specify this value to operate only on a source blob with a non-matching Etag value.
92    pub source_if_none_match: Option<Etag>,
93
94    /// Specify this header value to operate only on a blob if it has not been modified since the specified date-time.
95    pub source_if_unmodified_since: Option<OffsetDateTime>,
96
97    /// Specifies the bytes of the source.
98    pub source_range: Option<HttpRange>,
99
100    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
101    pub timeout: Option<i32>,
102
103    /// Specifies the transactional MD5 hash for the body.
104    pub transactional_content_md5: Option<Vec<u8>>,
105}
106
107/// Options to be passed to `AppendBlobClient::append_block()`
108#[derive(Clone, Default, SafeDebug)]
109pub struct AppendBlobClientAppendBlockOptions<'a> {
110    /// A byte offset where the operation will only succeed if the append position is equal. If not, the request will fail with
111    /// AppendPositionConditionNotMet.
112    pub append_position: Option<i64>,
113
114    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
115    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
116
117    /// Specifies the encryption key to use to encrypt the data provided in the request.
118    pub encryption_key: Option<String>,
119
120    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
121    pub encryption_key_sha256: Option<String>,
122
123    /// Specifies the encryption scope used to encrypt the data.
124    pub encryption_scope: Option<String>,
125
126    /// Specify this value to operate only on a blob with a matching Etag value.
127    pub if_match: Option<Etag>,
128
129    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
130    pub if_modified_since: Option<OffsetDateTime>,
131
132    /// Specify this value to operate only on a blob with a non-matching Etag value.
133    pub if_none_match: Option<Etag>,
134
135    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
136    pub if_tags: Option<String>,
137
138    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
139    pub if_unmodified_since: Option<OffsetDateTime>,
140
141    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
142    pub lease_id: Option<String>,
143
144    /// The max length of the blob. If the operation would cause the blob to exceed that limit or if the blob size is already
145    /// greater than the value specified, the request will fail with MaxBlobSizeConditionNotMet.
146    pub max_size: Option<i64>,
147
148    /// Allows customization of the method call.
149    pub method_options: ClientMethodOptions<'a>,
150
151    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
152    pub timeout: Option<i32>,
153
154    /// Specifies the transactional CRC64 hash for the body.
155    pub transactional_content_crc64: Option<Vec<u8>>,
156
157    /// Specifies the transactional MD5 hash for the body.
158    pub transactional_content_md5: Option<Vec<u8>>,
159}
160
161/// Options to be passed to `AppendBlobClient::create()`
162#[derive(Clone, Default, SafeDebug)]
163pub struct AppendBlobClientCreateOptions<'a> {
164    /// Specifies the blob's Cache-Control. If specified, this property is stored with the blob and returned with a read request.
165    pub blob_cache_control: Option<String>,
166
167    /// Specifies the blob's Content-Disposition. If specified, this property is stored with the blob and returned with a read
168    /// request.
169    pub blob_content_disposition: Option<String>,
170
171    /// Specifies the blob's Content-Encoding. If specified, this property is stored with the blob and returned with a read request.
172    pub blob_content_encoding: Option<String>,
173
174    /// Specifies the blob's Content-Language. If specified, this property is stored with the blob and returned with a read request.
175    pub blob_content_language: Option<String>,
176
177    /// The MD5 hash of the blob content that is stored as a property on the blob. Note: This hash is not validated.
178    pub blob_content_md5: Option<Vec<u8>>,
179
180    /// Specifies the blob's Content-Type. If specified, this property is stored with the blob and returned with a read request.
181    pub blob_content_type: Option<String>,
182
183    /// The blob tags.
184    pub blob_tags_string: Option<String>,
185
186    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
187    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
188
189    /// Specifies the encryption key to use to encrypt the data provided in the request.
190    pub encryption_key: Option<String>,
191
192    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
193    pub encryption_key_sha256: Option<String>,
194
195    /// Specifies the encryption scope used to encrypt the data.
196    pub encryption_scope: Option<String>,
197
198    /// Specify this value to operate only on a blob with a matching Etag value.
199    pub if_match: Option<Etag>,
200
201    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
202    pub if_modified_since: Option<OffsetDateTime>,
203
204    /// Specify this value to operate only on a blob with a non-matching Etag value.
205    pub if_none_match: Option<Etag>,
206
207    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
208    pub if_tags: Option<String>,
209
210    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
211    pub if_unmodified_since: Option<OffsetDateTime>,
212
213    /// The date-time that indicates the time at which the blob immutability policy will expire.
214    pub immutability_policy_expiry: Option<OffsetDateTime>,
215
216    /// Indicates the immutability policy mode of the blob.
217    pub immutability_policy_mode: Option<ImmutabilityPolicyMode>,
218
219    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
220    pub lease_id: Option<String>,
221
222    /// Indicates whether the blob has a legal hold.
223    pub legal_hold: Option<bool>,
224
225    /// The metadata headers.
226    pub metadata: Option<HashMap<String, String>>,
227
228    /// Allows customization of the method call.
229    pub method_options: ClientMethodOptions<'a>,
230
231    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
232    pub timeout: Option<i32>,
233}
234
235/// Options to be passed to `AppendBlobClient::seal()`
236#[derive(Clone, Default, SafeDebug)]
237pub struct AppendBlobClientSealOptions<'a> {
238    /// A byte offset where the operation will only succeed if the append position is equal. If not, the request will fail with
239    /// AppendPositionConditionNotMet.
240    pub append_position: Option<i64>,
241
242    /// Specify this value to operate only on a blob with a matching Etag value.
243    pub if_match: Option<Etag>,
244
245    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
246    pub if_modified_since: Option<OffsetDateTime>,
247
248    /// Specify this value to operate only on a blob with a non-matching Etag value.
249    pub if_none_match: Option<Etag>,
250
251    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
252    pub if_unmodified_since: Option<OffsetDateTime>,
253
254    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
255    pub lease_id: Option<String>,
256
257    /// Allows customization of the method call.
258    pub method_options: ClientMethodOptions<'a>,
259
260    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
261    pub timeout: Option<i32>,
262}
263
264/// Options to be passed to `BlobClient::abort_copy()`
265#[derive(Clone, Default, SafeDebug)]
266pub struct BlobClientAbortCopyOptions<'a> {
267    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
268    pub lease_id: Option<String>,
269
270    /// Allows customization of the method call.
271    pub method_options: ClientMethodOptions<'a>,
272
273    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
274    pub timeout: Option<i32>,
275}
276
277/// Options to be passed to `BlobClient::acquire_lease()`
278#[derive(Clone, Default, SafeDebug)]
279pub struct BlobClientAcquireLeaseOptions<'a> {
280    /// Specify this value to operate only on a blob with a matching Etag value.
281    pub if_match: Option<Etag>,
282
283    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
284    pub if_modified_since: Option<OffsetDateTime>,
285
286    /// Specify this value to operate only on a blob with a non-matching Etag value.
287    pub if_none_match: Option<Etag>,
288
289    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
290    pub if_tags: Option<String>,
291
292    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
293    pub if_unmodified_since: Option<OffsetDateTime>,
294
295    /// Allows customization of the method call.
296    pub method_options: ClientMethodOptions<'a>,
297
298    /// The proposed lease ID for the lease.
299    pub proposed_lease_id: Option<String>,
300
301    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
302    pub timeout: Option<i32>,
303}
304
305/// Options to be passed to `BlobClient::break_lease()`
306#[derive(Clone, Default, SafeDebug)]
307pub struct BlobClientBreakLeaseOptions<'a> {
308    /// Proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only
309    /// used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used.
310    pub break_period: Option<i32>,
311
312    /// Specify this value to operate only on a blob with a matching Etag value.
313    pub if_match: Option<Etag>,
314
315    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
316    pub if_modified_since: Option<OffsetDateTime>,
317
318    /// Specify this value to operate only on a blob with a non-matching Etag value.
319    pub if_none_match: Option<Etag>,
320
321    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
322    pub if_tags: Option<String>,
323
324    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
325    pub if_unmodified_since: Option<OffsetDateTime>,
326
327    /// Allows customization of the method call.
328    pub method_options: ClientMethodOptions<'a>,
329
330    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
331    pub timeout: Option<i32>,
332}
333
334/// Options to be passed to `BlobClient::change_lease()`
335#[derive(Clone, Default, SafeDebug)]
336pub struct BlobClientChangeLeaseOptions<'a> {
337    /// Specify this value to operate only on a blob with a matching Etag value.
338    pub if_match: Option<Etag>,
339
340    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
341    pub if_modified_since: Option<OffsetDateTime>,
342
343    /// Specify this value to operate only on a blob with a non-matching Etag value.
344    pub if_none_match: Option<Etag>,
345
346    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
347    pub if_tags: Option<String>,
348
349    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
350    pub if_unmodified_since: Option<OffsetDateTime>,
351
352    /// Allows customization of the method call.
353    pub method_options: ClientMethodOptions<'a>,
354
355    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
356    pub timeout: Option<i32>,
357}
358
359/// Options to be passed to `BlobClient::create_snapshot()`
360#[derive(Clone, Default, SafeDebug)]
361pub struct BlobClientCreateSnapshotOptions<'a> {
362    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
363    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
364
365    /// Specifies the encryption key to use to encrypt the data provided in the request.
366    pub encryption_key: Option<String>,
367
368    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
369    pub encryption_key_sha256: Option<String>,
370
371    /// Specifies the encryption scope used to encrypt the data.
372    pub encryption_scope: Option<String>,
373
374    /// Specify this value to operate only on a blob with a matching Etag value.
375    pub if_match: Option<Etag>,
376
377    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
378    pub if_modified_since: Option<OffsetDateTime>,
379
380    /// Specify this value to operate only on a blob with a non-matching Etag value.
381    pub if_none_match: Option<Etag>,
382
383    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
384    pub if_tags: Option<String>,
385
386    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
387    pub if_unmodified_since: Option<OffsetDateTime>,
388
389    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
390    pub lease_id: Option<String>,
391
392    /// The metadata headers.
393    pub metadata: Option<HashMap<String, String>>,
394
395    /// Allows customization of the method call.
396    pub method_options: ClientMethodOptions<'a>,
397
398    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
399    pub timeout: Option<i32>,
400}
401
402/// Options to be passed to `BlobClient::delete_immutability_policy()`
403#[derive(Clone, Default, SafeDebug)]
404pub struct BlobClientDeleteImmutabilityPolicyOptions<'a> {
405    /// Allows customization of the method call.
406    pub method_options: ClientMethodOptions<'a>,
407
408    /// Specifies the snapshot of the blob.
409    pub snapshot: Option<String>,
410
411    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
412    pub timeout: Option<i32>,
413
414    /// Specifies the version ID of the blob.
415    pub version_id: Option<String>,
416}
417
418/// Options to be passed to `BlobClient::delete()`
419#[derive(Clone, Default, SafeDebug)]
420pub struct BlobClientDeleteOptions<'a> {
421    /// Specify this header value to operate only on a blob if the access-tier has been modified since the specified date-time.
422    pub access_tier_if_modified_since: Option<OffsetDateTime>,
423
424    /// Specify this header value to operate only on a blob if the access-tier has not been modified since the specified date-time.
425    pub access_tier_if_unmodified_since: Option<OffsetDateTime>,
426
427    /// The delete type.
428    pub blob_delete_type: Option<BlobDeleteType>,
429
430    /// Required if the blob has associated snapshots. Specifies the delete behavior.
431    pub delete_snapshots: Option<DeleteSnapshotsOptionType>,
432
433    /// Specify this value to operate only on a blob with a matching Etag value.
434    pub if_match: Option<Etag>,
435
436    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
437    pub if_modified_since: Option<OffsetDateTime>,
438
439    /// Specify this value to operate only on a blob with a non-matching Etag value.
440    pub if_none_match: Option<Etag>,
441
442    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
443    pub if_tags: Option<String>,
444
445    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
446    pub if_unmodified_since: Option<OffsetDateTime>,
447
448    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
449    pub lease_id: Option<String>,
450
451    /// Allows customization of the method call.
452    pub method_options: ClientMethodOptions<'a>,
453
454    /// Specifies the snapshot of the blob.
455    pub snapshot: Option<String>,
456
457    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
458    pub timeout: Option<i32>,
459
460    /// Specifies the version ID of the blob.
461    pub version_id: Option<String>,
462}
463
464/// Options to be passed to `BlobClient::download_internal()`
465#[derive(Clone, Default, SafeDebug)]
466pub(crate) struct BlobClientDownloadInternalOptions<'a> {
467    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
468    pub(crate) encryption_algorithm: Option<EncryptionAlgorithmType>,
469
470    /// Specifies the encryption key to use to encrypt the data provided in the request.
471    pub(crate) encryption_key: Option<String>,
472
473    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
474    pub(crate) encryption_key_sha256: Option<String>,
475
476    /// Specify this value to operate only on a blob with a matching Etag value.
477    pub(crate) if_match: Option<Etag>,
478
479    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
480    pub(crate) if_modified_since: Option<OffsetDateTime>,
481
482    /// Specify this value to operate only on a blob with a non-matching Etag value.
483    pub(crate) if_none_match: Option<Etag>,
484
485    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
486    pub(crate) if_tags: Option<String>,
487
488    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
489    pub(crate) if_unmodified_since: Option<OffsetDateTime>,
490
491    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
492    pub(crate) lease_id: Option<String>,
493
494    /// Allows customization of the method call.
495    pub(crate) method_options: ClientMethodOptions<'a>,
496
497    /// Specifies the range of the blob to operate on.
498    pub(crate) range: Option<HttpRange>,
499
500    /// When set to true and the request includes a Range header, the service returns the CRC64 hash for the range, as long as
501    /// the range is less than or equal to 4 MiB in size.
502    pub(crate) range_get_content_crc64: Option<bool>,
503
504    /// When set to true and specified together with the `Range` header, the service returns the MD5 hash for the range, as long
505    /// as the range is less than or equal to 4 MiB in size.
506    pub(crate) range_get_content_md5: Option<bool>,
507
508    /// Specifies the snapshot of the blob.
509    pub(crate) snapshot: Option<String>,
510
511    /// Specifies the response content should be returned as a structured message and specifies the message schema version and
512    /// properties.
513    pub(crate) structured_body_type: Option<String>,
514
515    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
516    pub(crate) timeout: Option<i32>,
517
518    /// Specifies the version ID of the blob.
519    pub(crate) version_id: Option<String>,
520}
521
522/// Options to be passed to `BlobClient::get_account_info()`
523#[derive(Clone, Default, SafeDebug)]
524pub struct BlobClientGetAccountInfoOptions<'a> {
525    /// Allows customization of the method call.
526    pub method_options: ClientMethodOptions<'a>,
527
528    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
529    pub timeout: Option<i32>,
530}
531
532/// Options to be passed to `BlobClient::get_properties()`
533#[derive(Clone, Default, SafeDebug)]
534pub struct BlobClientGetPropertiesOptions<'a> {
535    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
536    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
537
538    /// Specifies the encryption key to use to encrypt the data provided in the request.
539    pub encryption_key: Option<String>,
540
541    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
542    pub encryption_key_sha256: Option<String>,
543
544    /// Specify this value to operate only on a blob with a matching Etag value.
545    pub if_match: Option<Etag>,
546
547    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
548    pub if_modified_since: Option<OffsetDateTime>,
549
550    /// Specify this value to operate only on a blob with a non-matching Etag value.
551    pub if_none_match: Option<Etag>,
552
553    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
554    pub if_tags: Option<String>,
555
556    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
557    pub if_unmodified_since: Option<OffsetDateTime>,
558
559    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
560    pub lease_id: Option<String>,
561
562    /// Allows customization of the method call.
563    pub method_options: ClientMethodOptions<'a>,
564
565    /// Specifies the snapshot of the blob.
566    pub snapshot: Option<String>,
567
568    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
569    pub timeout: Option<i32>,
570
571    /// Specifies the version ID of the blob.
572    pub version_id: Option<String>,
573}
574
575/// Options to be passed to `BlobClient::get_tags()`
576#[derive(Clone, Default, SafeDebug)]
577pub struct BlobClientGetTagsOptions<'a> {
578    /// Specify this value to operate only on a blob with a matching Etag value.
579    pub if_match: Option<Etag>,
580
581    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
582    pub if_modified_since: Option<OffsetDateTime>,
583
584    /// Specify this value to operate only on a blob with a non-matching Etag value.
585    pub if_none_match: Option<Etag>,
586
587    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
588    pub if_tags: Option<String>,
589
590    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
591    pub if_unmodified_since: Option<OffsetDateTime>,
592
593    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
594    pub lease_id: Option<String>,
595
596    /// Allows customization of the method call.
597    pub method_options: ClientMethodOptions<'a>,
598
599    /// Specifies the snapshot of the blob.
600    pub snapshot: Option<String>,
601
602    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
603    pub timeout: Option<i32>,
604
605    /// Specifies the version ID of the blob.
606    pub version_id: Option<String>,
607}
608
609/// Options to be passed to `BlobClient::release_lease()`
610#[derive(Clone, Default, SafeDebug)]
611pub struct BlobClientReleaseLeaseOptions<'a> {
612    /// Specify this value to operate only on a blob with a matching Etag value.
613    pub if_match: Option<Etag>,
614
615    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
616    pub if_modified_since: Option<OffsetDateTime>,
617
618    /// Specify this value to operate only on a blob with a non-matching Etag value.
619    pub if_none_match: Option<Etag>,
620
621    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
622    pub if_tags: Option<String>,
623
624    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
625    pub if_unmodified_since: Option<OffsetDateTime>,
626
627    /// Allows customization of the method call.
628    pub method_options: ClientMethodOptions<'a>,
629
630    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
631    pub timeout: Option<i32>,
632}
633
634/// Options to be passed to `BlobClient::renew_lease()`
635#[derive(Clone, Default, SafeDebug)]
636pub struct BlobClientRenewLeaseOptions<'a> {
637    /// Specify this value to operate only on a blob with a matching Etag value.
638    pub if_match: Option<Etag>,
639
640    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
641    pub if_modified_since: Option<OffsetDateTime>,
642
643    /// Specify this value to operate only on a blob with a non-matching Etag value.
644    pub if_none_match: Option<Etag>,
645
646    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
647    pub if_tags: Option<String>,
648
649    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
650    pub if_unmodified_since: Option<OffsetDateTime>,
651
652    /// Allows customization of the method call.
653    pub method_options: ClientMethodOptions<'a>,
654
655    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
656    pub timeout: Option<i32>,
657}
658
659/// Options to be passed to `BlobClient::set_immutability_policy()`
660#[derive(Clone, Default, SafeDebug)]
661pub struct BlobClientSetImmutabilityPolicyOptions<'a> {
662    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
663    pub if_unmodified_since: Option<OffsetDateTime>,
664
665    /// Indicates the immutability policy mode of the blob.
666    pub immutability_policy_mode: Option<ImmutabilityPolicyMode>,
667
668    /// Allows customization of the method call.
669    pub method_options: ClientMethodOptions<'a>,
670
671    /// Specifies the snapshot of the blob.
672    pub snapshot: Option<String>,
673
674    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
675    pub timeout: Option<i32>,
676
677    /// Specifies the version ID of the blob.
678    pub version_id: Option<String>,
679}
680
681/// Options to be passed to `BlobClient::set_legal_hold()`
682#[derive(Clone, Default, SafeDebug)]
683pub struct BlobClientSetLegalHoldOptions<'a> {
684    /// Allows customization of the method call.
685    pub method_options: ClientMethodOptions<'a>,
686
687    /// Specifies the snapshot of the blob.
688    pub snapshot: Option<String>,
689
690    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
691    pub timeout: Option<i32>,
692
693    /// Specifies the version ID of the blob.
694    pub version_id: Option<String>,
695}
696
697/// Options to be passed to `BlobClient::set_metadata()`
698#[derive(Clone, Default, SafeDebug)]
699pub struct BlobClientSetMetadataOptions<'a> {
700    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
701    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
702
703    /// Specifies the encryption key to use to encrypt the data provided in the request.
704    pub encryption_key: Option<String>,
705
706    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
707    pub encryption_key_sha256: Option<String>,
708
709    /// Specifies the encryption scope used to encrypt the data.
710    pub encryption_scope: Option<String>,
711
712    /// Specify this value to operate only on a blob with a matching Etag value.
713    pub if_match: Option<Etag>,
714
715    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
716    pub if_modified_since: Option<OffsetDateTime>,
717
718    /// Specify this value to operate only on a blob with a non-matching Etag value.
719    pub if_none_match: Option<Etag>,
720
721    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
722    pub if_tags: Option<String>,
723
724    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
725    pub if_unmodified_since: Option<OffsetDateTime>,
726
727    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
728    pub lease_id: Option<String>,
729
730    /// Allows customization of the method call.
731    pub method_options: ClientMethodOptions<'a>,
732
733    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
734    pub timeout: Option<i32>,
735}
736
737/// Options to be passed to `BlobClient::set_properties()`
738#[derive(Clone, Default, SafeDebug)]
739pub struct BlobClientSetPropertiesOptions<'a> {
740    /// Specifies the blob's Cache-Control. If specified, this property is stored with the blob and returned with a read request.
741    pub blob_cache_control: Option<String>,
742
743    /// Specifies the blob's Content-Disposition. If specified, this property is stored with the blob and returned with a read
744    /// request.
745    pub blob_content_disposition: Option<String>,
746
747    /// Specifies the blob's Content-Encoding. If specified, this property is stored with the blob and returned with a read request.
748    pub blob_content_encoding: Option<String>,
749
750    /// Specifies the blob's Content-Language. If specified, this property is stored with the blob and returned with a read request.
751    pub blob_content_language: Option<String>,
752
753    /// The MD5 hash of the blob content that is stored as a property on the blob. Note: This hash is not validated.
754    pub blob_content_md5: Option<Vec<u8>>,
755
756    /// Specifies the blob's Content-Type. If specified, this property is stored with the blob and returned with a read request.
757    pub blob_content_type: Option<String>,
758
759    /// Specify this value to operate only on a blob with a matching Etag value.
760    pub if_match: Option<Etag>,
761
762    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
763    pub if_modified_since: Option<OffsetDateTime>,
764
765    /// Specify this value to operate only on a blob with a non-matching Etag value.
766    pub if_none_match: Option<Etag>,
767
768    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
769    pub if_tags: Option<String>,
770
771    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
772    pub if_unmodified_since: Option<OffsetDateTime>,
773
774    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
775    pub lease_id: Option<String>,
776
777    /// Allows customization of the method call.
778    pub method_options: ClientMethodOptions<'a>,
779
780    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
781    pub timeout: Option<i32>,
782}
783
784/// Options to be passed to `BlobClient::set_tags()`
785#[derive(Clone, Default, SafeDebug)]
786pub struct BlobClientSetTagsOptions<'a> {
787    /// Specify this value to operate only on a blob with a matching Etag value.
788    pub if_match: Option<Etag>,
789
790    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
791    pub if_modified_since: Option<OffsetDateTime>,
792
793    /// Specify this value to operate only on a blob with a non-matching Etag value.
794    pub if_none_match: Option<Etag>,
795
796    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
797    pub if_tags: Option<String>,
798
799    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
800    pub if_unmodified_since: Option<OffsetDateTime>,
801
802    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
803    pub lease_id: Option<String>,
804
805    /// Allows customization of the method call.
806    pub method_options: ClientMethodOptions<'a>,
807
808    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
809    pub timeout: Option<i32>,
810
811    /// Specifies the transactional CRC64 hash for the body.
812    pub transactional_content_crc64: Option<Vec<u8>>,
813
814    /// Specifies the transactional MD5 hash for the body.
815    pub transactional_content_md5: Option<Vec<u8>>,
816
817    /// Specifies the version ID of the blob.
818    pub version_id: Option<String>,
819}
820
821/// Options to be passed to `BlobClient::set_tier()`
822#[derive(Clone, Default, SafeDebug)]
823pub struct BlobClientSetTierOptions<'a> {
824    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
825    pub if_tags: Option<String>,
826
827    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
828    pub lease_id: Option<String>,
829
830    /// Allows customization of the method call.
831    pub method_options: ClientMethodOptions<'a>,
832
833    /// The priority of the rehydration operation.
834    pub rehydrate_priority: Option<RehydratePriority>,
835
836    /// Specifies the snapshot of the blob.
837    pub snapshot: Option<String>,
838
839    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
840    pub timeout: Option<i32>,
841
842    /// Specifies the version ID of the blob.
843    pub version_id: Option<String>,
844}
845
846/// Options to be passed to `BlobClient::start_copy_from_url()`
847#[derive(Clone, Default, SafeDebug)]
848pub struct BlobClientStartCopyFromUrlOptions<'a> {
849    /// The blob tags.
850    pub blob_tags_string: Option<String>,
851
852    /// Specify this value to operate only on a blob with a matching Etag value.
853    pub if_match: Option<Etag>,
854
855    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
856    pub if_modified_since: Option<OffsetDateTime>,
857
858    /// Specify this value to operate only on a blob with a non-matching Etag value.
859    pub if_none_match: Option<Etag>,
860
861    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
862    pub if_tags: Option<String>,
863
864    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
865    pub if_unmodified_since: Option<OffsetDateTime>,
866
867    /// The date-time that indicates the time at which the blob immutability policy will expire.
868    pub immutability_policy_expiry: Option<OffsetDateTime>,
869
870    /// Indicates the immutability policy mode of the blob.
871    pub immutability_policy_mode: Option<ImmutabilityPolicyMode>,
872
873    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
874    pub lease_id: Option<String>,
875
876    /// Indicates whether the blob has a legal hold.
877    pub legal_hold: Option<bool>,
878
879    /// The metadata headers.
880    pub metadata: Option<HashMap<String, String>>,
881
882    /// Allows customization of the method call.
883    pub method_options: ClientMethodOptions<'a>,
884
885    /// The priority of the rehydration operation.
886    pub rehydrate_priority: Option<RehydratePriority>,
887
888    /// Overrides the sealed state of the destination blob.
889    pub seal_blob: Option<bool>,
890
891    /// Specify this value to operate only on a source blob with a matching Etag value.
892    pub source_if_match: Option<Etag>,
893
894    /// Specify this value to operate only on a source blob if it has been modified since the specified date-time.
895    pub source_if_modified_since: Option<OffsetDateTime>,
896
897    /// Specify this value to operate only on a source blob with a non-matching Etag value.
898    pub source_if_none_match: Option<Etag>,
899
900    /// Specifies a SQL-like where clause on blob tags to operate only on a source blob with matching tags.
901    pub source_if_tags: Option<String>,
902
903    /// Specify this header value to operate only on a blob if it has not been modified since the specified date-time.
904    pub source_if_unmodified_since: Option<OffsetDateTime>,
905
906    /// The tier to be set on the blob.
907    pub tier: Option<AccessTier>,
908
909    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
910    pub timeout: Option<i32>,
911}
912
913/// Options to be passed to `BlobClient::undelete()`
914#[derive(Clone, Default, SafeDebug)]
915pub struct BlobClientUndeleteOptions<'a> {
916    /// Allows customization of the method call.
917    pub method_options: ClientMethodOptions<'a>,
918
919    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
920    pub timeout: Option<i32>,
921}
922
923/// Options to be passed to `BlobContainerClient::acquire_lease()`
924#[derive(Clone, Default, SafeDebug)]
925pub struct BlobContainerClientAcquireLeaseOptions<'a> {
926    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
927    pub if_modified_since: Option<OffsetDateTime>,
928
929    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
930    pub if_unmodified_since: Option<OffsetDateTime>,
931
932    /// Allows customization of the method call.
933    pub method_options: ClientMethodOptions<'a>,
934
935    /// The proposed lease ID for the lease.
936    pub proposed_lease_id: Option<String>,
937
938    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
939    pub timeout: Option<i32>,
940}
941
942/// Options to be passed to `BlobContainerClient::break_lease()`
943#[derive(Clone, Default, SafeDebug)]
944pub struct BlobContainerClientBreakLeaseOptions<'a> {
945    /// Proposed duration the lease should continue before it is broken, in seconds, between 0 and 60. This break period is only
946    /// used if it is shorter than the time remaining on the lease. If longer, the time remaining on the lease is used.
947    pub break_period: Option<i32>,
948
949    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
950    pub if_modified_since: Option<OffsetDateTime>,
951
952    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
953    pub if_unmodified_since: Option<OffsetDateTime>,
954
955    /// Allows customization of the method call.
956    pub method_options: ClientMethodOptions<'a>,
957
958    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
959    pub timeout: Option<i32>,
960}
961
962/// Options to be passed to `BlobContainerClient::change_lease()`
963#[derive(Clone, Default, SafeDebug)]
964pub struct BlobContainerClientChangeLeaseOptions<'a> {
965    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
966    pub if_modified_since: Option<OffsetDateTime>,
967
968    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
969    pub if_unmodified_since: Option<OffsetDateTime>,
970
971    /// Allows customization of the method call.
972    pub method_options: ClientMethodOptions<'a>,
973
974    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
975    pub timeout: Option<i32>,
976}
977
978/// Options to be passed to `BlobContainerClient::create()`
979#[derive(Clone, Default, SafeDebug)]
980pub struct BlobContainerClientCreateOptions<'a> {
981    /// The public access setting for the container.
982    pub access: Option<PublicAccessType>,
983
984    /// Specifies the default encryption scope to set on the container and use for all future requests.
985    pub default_encryption_scope: Option<String>,
986
987    /// The metadata headers.
988    pub metadata: Option<HashMap<String, String>>,
989
990    /// Allows customization of the method call.
991    pub method_options: ClientMethodOptions<'a>,
992
993    /// Whether to prevent encryption scope override.
994    pub prevent_encryption_scope_override: Option<bool>,
995
996    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
997    pub timeout: Option<i32>,
998}
999
1000/// Options to be passed to `BlobContainerClient::delete()`
1001#[derive(Clone, Default, SafeDebug)]
1002pub struct BlobContainerClientDeleteOptions<'a> {
1003    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1004    pub if_modified_since: Option<OffsetDateTime>,
1005
1006    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1007    pub if_unmodified_since: Option<OffsetDateTime>,
1008
1009    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1010    pub lease_id: Option<String>,
1011
1012    /// Allows customization of the method call.
1013    pub method_options: ClientMethodOptions<'a>,
1014
1015    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1016    pub timeout: Option<i32>,
1017}
1018
1019/// Options to be passed to `BlobContainerClient::find_blobs_by_tags()`
1020#[derive(Clone, Default, SafeDebug)]
1021pub struct BlobContainerClientFindBlobsByTagsOptions<'a> {
1022    /// Specify to include additional, optional information.
1023    pub include: Option<Vec<FilterBlobsIncludeItem>>,
1024
1025    /// An opaque string value that identifies the portion of the result set to return with this operation.
1026    pub marker: Option<String>,
1027
1028    /// Specifies the maximum number of resources to return. If the request does not specify maxresults, or specifies a value
1029    /// greater than 5000, the server will return up to 5000 items.
1030    pub maxresults: Option<i32>,
1031
1032    /// Allows customization of the method call.
1033    pub method_options: PagerOptions<'a>,
1034
1035    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1036    pub timeout: Option<i32>,
1037}
1038
1039impl BlobContainerClientFindBlobsByTagsOptions<'_> {
1040    /// Transforms this [`BlobContainerClientFindBlobsByTagsOptions`] into a new `BlobContainerClientFindBlobsByTagsOptions` that owns the underlying data, cloning it if necessary.
1041    pub fn into_owned(self) -> BlobContainerClientFindBlobsByTagsOptions<'static> {
1042        BlobContainerClientFindBlobsByTagsOptions {
1043            include: self.include,
1044            marker: self.marker,
1045            maxresults: self.maxresults,
1046            method_options: PagerOptions {
1047                context: self.method_options.context.into_owned(),
1048                ..self.method_options
1049            },
1050            timeout: self.timeout,
1051        }
1052    }
1053}
1054
1055/// Options to be passed to `BlobContainerClient::get_access_policy()`
1056#[derive(Clone, Default, SafeDebug)]
1057pub struct BlobContainerClientGetAccessPolicyOptions<'a> {
1058    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1059    pub lease_id: Option<String>,
1060
1061    /// Allows customization of the method call.
1062    pub method_options: ClientMethodOptions<'a>,
1063
1064    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1065    pub timeout: Option<i32>,
1066}
1067
1068/// Options to be passed to `BlobContainerClient::get_account_info()`
1069#[derive(Clone, Default, SafeDebug)]
1070pub struct BlobContainerClientGetAccountInfoOptions<'a> {
1071    /// Allows customization of the method call.
1072    pub method_options: ClientMethodOptions<'a>,
1073
1074    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1075    pub timeout: Option<i32>,
1076}
1077
1078/// Options to be passed to `BlobContainerClient::get_properties()`
1079#[derive(Clone, Default, SafeDebug)]
1080pub struct BlobContainerClientGetPropertiesOptions<'a> {
1081    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1082    pub lease_id: Option<String>,
1083
1084    /// Allows customization of the method call.
1085    pub method_options: ClientMethodOptions<'a>,
1086
1087    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1088    pub timeout: Option<i32>,
1089}
1090
1091/// Options to be passed to `BlobContainerClient::list_blobs()`
1092#[derive(Clone, Default, SafeDebug)]
1093pub struct BlobContainerClientListBlobsOptions<'a> {
1094    /// Specify to include additional, optional information.
1095    pub include: Option<Vec<ListBlobsIncludeItem>>,
1096
1097    /// An opaque string value that identifies the portion of the result set to return with this operation.
1098    pub marker: Option<String>,
1099
1100    /// Specifies the maximum number of resources to return. If the request does not specify maxresults, or specifies a value
1101    /// greater than 5000, the server will return up to 5000 items.
1102    pub maxresults: Option<i32>,
1103
1104    /// Allows customization of the method call.
1105    pub method_options: PagerOptions<'a>,
1106
1107    /// Filters the results to return only resources whose name begins with the specified prefix.
1108    pub prefix: Option<String>,
1109
1110    /// Specifies the relative path to list paths from. For non-recursive list, only one entity level is supported; for recursive
1111    /// list, multiple entity levels are supported. (Inclusive)
1112    pub start_from: Option<String>,
1113
1114    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1115    pub timeout: Option<i32>,
1116}
1117
1118impl BlobContainerClientListBlobsOptions<'_> {
1119    /// Transforms this [`BlobContainerClientListBlobsOptions`] into a new `BlobContainerClientListBlobsOptions` that owns the underlying data, cloning it if necessary.
1120    pub fn into_owned(self) -> BlobContainerClientListBlobsOptions<'static> {
1121        BlobContainerClientListBlobsOptions {
1122            include: self.include,
1123            marker: self.marker,
1124            maxresults: self.maxresults,
1125            method_options: PagerOptions {
1126                context: self.method_options.context.into_owned(),
1127                ..self.method_options
1128            },
1129            prefix: self.prefix,
1130            start_from: self.start_from,
1131            timeout: self.timeout,
1132        }
1133    }
1134}
1135
1136/// Options to be passed to `BlobContainerClient::release_lease()`
1137#[derive(Clone, Default, SafeDebug)]
1138pub struct BlobContainerClientReleaseLeaseOptions<'a> {
1139    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1140    pub if_modified_since: Option<OffsetDateTime>,
1141
1142    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1143    pub if_unmodified_since: Option<OffsetDateTime>,
1144
1145    /// Allows customization of the method call.
1146    pub method_options: ClientMethodOptions<'a>,
1147
1148    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1149    pub timeout: Option<i32>,
1150}
1151
1152/// Options to be passed to `BlobContainerClient::renew_lease()`
1153#[derive(Clone, Default, SafeDebug)]
1154pub struct BlobContainerClientRenewLeaseOptions<'a> {
1155    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1156    pub if_modified_since: Option<OffsetDateTime>,
1157
1158    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1159    pub if_unmodified_since: Option<OffsetDateTime>,
1160
1161    /// Allows customization of the method call.
1162    pub method_options: ClientMethodOptions<'a>,
1163
1164    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1165    pub timeout: Option<i32>,
1166}
1167
1168/// Options to be passed to `BlobContainerClient::set_access_policy()`
1169#[derive(Clone, Default, SafeDebug)]
1170pub struct BlobContainerClientSetAccessPolicyOptions<'a> {
1171    /// The public access setting for the container.
1172    pub access: Option<PublicAccessType>,
1173
1174    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1175    pub if_modified_since: Option<OffsetDateTime>,
1176
1177    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1178    pub if_unmodified_since: Option<OffsetDateTime>,
1179
1180    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1181    pub lease_id: Option<String>,
1182
1183    /// Allows customization of the method call.
1184    pub method_options: ClientMethodOptions<'a>,
1185
1186    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1187    pub timeout: Option<i32>,
1188}
1189
1190/// Options to be passed to `BlobContainerClient::set_metadata()`
1191#[derive(Clone, Default, SafeDebug)]
1192pub struct BlobContainerClientSetMetadataOptions<'a> {
1193    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1194    pub if_modified_since: Option<OffsetDateTime>,
1195
1196    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1197    pub lease_id: Option<String>,
1198
1199    /// Allows customization of the method call.
1200    pub method_options: ClientMethodOptions<'a>,
1201
1202    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1203    pub timeout: Option<i32>,
1204}
1205
1206/// Options to be passed to `BlobServiceClient::find_blobs_by_tags()`
1207#[derive(Clone, Default, SafeDebug)]
1208pub struct BlobServiceClientFindBlobsByTagsOptions<'a> {
1209    /// Specify to include additional, optional information.
1210    pub include: Option<Vec<FilterBlobsIncludeItem>>,
1211
1212    /// An opaque string value that identifies the portion of the result set to return with this operation.
1213    pub marker: Option<String>,
1214
1215    /// Specifies the maximum number of resources to return. If the request does not specify maxresults, or specifies a value
1216    /// greater than 5000, the server will return up to 5000 items.
1217    pub maxresults: Option<i32>,
1218
1219    /// Allows customization of the method call.
1220    pub method_options: PagerOptions<'a>,
1221
1222    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1223    pub timeout: Option<i32>,
1224}
1225
1226impl BlobServiceClientFindBlobsByTagsOptions<'_> {
1227    /// Transforms this [`BlobServiceClientFindBlobsByTagsOptions`] into a new `BlobServiceClientFindBlobsByTagsOptions` that owns the underlying data, cloning it if necessary.
1228    pub fn into_owned(self) -> BlobServiceClientFindBlobsByTagsOptions<'static> {
1229        BlobServiceClientFindBlobsByTagsOptions {
1230            include: self.include,
1231            marker: self.marker,
1232            maxresults: self.maxresults,
1233            method_options: PagerOptions {
1234                context: self.method_options.context.into_owned(),
1235                ..self.method_options
1236            },
1237            timeout: self.timeout,
1238        }
1239    }
1240}
1241
1242/// Options to be passed to `BlobServiceClient::get_account_info()`
1243#[derive(Clone, Default, SafeDebug)]
1244pub struct BlobServiceClientGetAccountInfoOptions<'a> {
1245    /// Allows customization of the method call.
1246    pub method_options: ClientMethodOptions<'a>,
1247
1248    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1249    pub timeout: Option<i32>,
1250}
1251
1252/// Options to be passed to `BlobServiceClient::get_properties()`
1253#[derive(Clone, Default, SafeDebug)]
1254pub struct BlobServiceClientGetPropertiesOptions<'a> {
1255    /// Allows customization of the method call.
1256    pub method_options: ClientMethodOptions<'a>,
1257
1258    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1259    pub timeout: Option<i32>,
1260}
1261
1262/// Options to be passed to `BlobServiceClient::get_statistics()`
1263#[derive(Clone, Default, SafeDebug)]
1264pub struct BlobServiceClientGetStatisticsOptions<'a> {
1265    /// Allows customization of the method call.
1266    pub method_options: ClientMethodOptions<'a>,
1267
1268    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1269    pub timeout: Option<i32>,
1270}
1271
1272/// Options to be passed to `BlobServiceClient::get_user_delegation_key()`
1273#[derive(Clone, Default, SafeDebug)]
1274pub struct BlobServiceClientGetUserDelegationKeyOptions<'a> {
1275    /// Allows customization of the method call.
1276    pub method_options: ClientMethodOptions<'a>,
1277
1278    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1279    pub timeout: Option<i32>,
1280}
1281
1282/// Options to be passed to `BlobServiceClient::list_containers()`
1283#[derive(Clone, Default, SafeDebug)]
1284pub struct BlobServiceClientListContainersOptions<'a> {
1285    /// Specify to include additional, optional information.
1286    pub include: Option<Vec<ListContainersIncludeType>>,
1287
1288    /// An opaque string value that identifies the portion of the result set to return with this operation.
1289    pub marker: Option<String>,
1290
1291    /// Specifies the maximum number of resources to return. If the request does not specify maxresults, or specifies a value
1292    /// greater than 5000, the server will return up to 5000 items.
1293    pub maxresults: Option<i32>,
1294
1295    /// Allows customization of the method call.
1296    pub method_options: PagerOptions<'a>,
1297
1298    /// Filters the results to return only resources whose name begins with the specified prefix.
1299    pub prefix: Option<String>,
1300
1301    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1302    pub timeout: Option<i32>,
1303}
1304
1305impl BlobServiceClientListContainersOptions<'_> {
1306    /// Transforms this [`BlobServiceClientListContainersOptions`] into a new `BlobServiceClientListContainersOptions` that owns the underlying data, cloning it if necessary.
1307    pub fn into_owned(self) -> BlobServiceClientListContainersOptions<'static> {
1308        BlobServiceClientListContainersOptions {
1309            include: self.include,
1310            marker: self.marker,
1311            maxresults: self.maxresults,
1312            method_options: PagerOptions {
1313                context: self.method_options.context.into_owned(),
1314                ..self.method_options
1315            },
1316            prefix: self.prefix,
1317            timeout: self.timeout,
1318        }
1319    }
1320}
1321
1322/// Options to be passed to `BlobServiceClient::set_properties()`
1323#[derive(Clone, Default, SafeDebug)]
1324pub struct BlobServiceClientSetPropertiesOptions<'a> {
1325    /// Allows customization of the method call.
1326    pub method_options: ClientMethodOptions<'a>,
1327
1328    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1329    pub timeout: Option<i32>,
1330}
1331
1332/// Options to be passed to `BlockBlobClient::commit_block_list()`
1333#[derive(Clone, Default, SafeDebug)]
1334pub struct BlockBlobClientCommitBlockListOptions<'a> {
1335    /// Specifies the blob's Cache-Control. If specified, this property is stored with the blob and returned with a read request.
1336    pub blob_cache_control: Option<String>,
1337
1338    /// Specifies the blob's Content-Disposition. If specified, this property is stored with the blob and returned with a read
1339    /// request.
1340    pub blob_content_disposition: Option<String>,
1341
1342    /// Specifies the blob's Content-Encoding. If specified, this property is stored with the blob and returned with a read request.
1343    pub blob_content_encoding: Option<String>,
1344
1345    /// Specifies the blob's Content-Language. If specified, this property is stored with the blob and returned with a read request.
1346    pub blob_content_language: Option<String>,
1347
1348    /// The MD5 hash of the blob content that is stored as a property on the blob. Note: This hash is not validated.
1349    pub blob_content_md5: Option<Vec<u8>>,
1350
1351    /// Specifies the blob's Content-Type. If specified, this property is stored with the blob and returned with a read request.
1352    pub blob_content_type: Option<String>,
1353
1354    /// The blob tags.
1355    pub blob_tags_string: Option<String>,
1356
1357    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1358    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1359
1360    /// Specifies the encryption key to use to encrypt the data provided in the request.
1361    pub encryption_key: Option<String>,
1362
1363    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1364    pub encryption_key_sha256: Option<String>,
1365
1366    /// Specifies the encryption scope used to encrypt the data.
1367    pub encryption_scope: Option<String>,
1368
1369    /// Specify this value to operate only on a blob with a matching Etag value.
1370    pub if_match: Option<Etag>,
1371
1372    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1373    pub if_modified_since: Option<OffsetDateTime>,
1374
1375    /// Specify this value to operate only on a blob with a non-matching Etag value.
1376    pub if_none_match: Option<Etag>,
1377
1378    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1379    pub if_tags: Option<String>,
1380
1381    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1382    pub if_unmodified_since: Option<OffsetDateTime>,
1383
1384    /// The date-time that indicates the time at which the blob immutability policy will expire.
1385    pub immutability_policy_expiry: Option<OffsetDateTime>,
1386
1387    /// Indicates the immutability policy mode of the blob.
1388    pub immutability_policy_mode: Option<ImmutabilityPolicyMode>,
1389
1390    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1391    pub lease_id: Option<String>,
1392
1393    /// Indicates whether the blob has a legal hold.
1394    pub legal_hold: Option<bool>,
1395
1396    /// The metadata headers.
1397    pub metadata: Option<HashMap<String, String>>,
1398
1399    /// Allows customization of the method call.
1400    pub method_options: ClientMethodOptions<'a>,
1401
1402    /// The tier to be set on the blob.
1403    pub tier: Option<AccessTier>,
1404
1405    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1406    pub timeout: Option<i32>,
1407
1408    /// Specifies the transactional CRC64 hash for the body.
1409    pub transactional_content_crc64: Option<Vec<u8>>,
1410
1411    /// Specifies the transactional MD5 hash for the body.
1412    pub transactional_content_md5: Option<Vec<u8>>,
1413}
1414
1415/// Options to be passed to `BlockBlobClient::get_block_list()`
1416#[derive(Clone, Default, SafeDebug)]
1417pub struct BlockBlobClientGetBlockListOptions<'a> {
1418    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1419    pub if_tags: Option<String>,
1420
1421    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1422    pub lease_id: Option<String>,
1423
1424    /// Allows customization of the method call.
1425    pub method_options: ClientMethodOptions<'a>,
1426
1427    /// Specifies the snapshot of the blob.
1428    pub snapshot: Option<String>,
1429
1430    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1431    pub timeout: Option<i32>,
1432}
1433
1434/// Options to be passed to `BlockBlobClient::stage_block_from_url()`
1435#[derive(Clone, Default, SafeDebug)]
1436pub struct BlockBlobClientStageBlockFromUrlOptions<'a> {
1437    /// Only the Bearer authorization scheme is supported, and the value must be a valid OAuth access token for the copy source.
1438    pub copy_source_authorization: Option<String>,
1439
1440    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1441    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1442
1443    /// Specifies the encryption key to use to encrypt the data provided in the request.
1444    pub encryption_key: Option<String>,
1445
1446    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1447    pub encryption_key_sha256: Option<String>,
1448
1449    /// Specifies the encryption scope used to encrypt the data.
1450    pub encryption_scope: Option<String>,
1451
1452    /// Specifies the file request token intent.
1453    pub file_request_intent: Option<FileShareTokenIntent>,
1454
1455    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1456    pub lease_id: Option<String>,
1457
1458    /// Allows customization of the method call.
1459    pub method_options: ClientMethodOptions<'a>,
1460
1461    /// Specifies the CRC64 calculated for the range of bytes that must be read from the source.
1462    pub source_content_crc64: Option<Vec<u8>>,
1463
1464    /// Specifies the MD5 hash calculated for the range of bytes that must be read from the copy source.
1465    pub source_content_md5: Option<Vec<u8>>,
1466
1467    /// The algorithm used to produce the source encryption key hash. Must be provided if the source encryption key is provided.
1468    pub source_encryption_algorithm: Option<EncryptionAlgorithmType>,
1469
1470    /// Specifies the encryption key to use to decrypt the source data provided in the request.
1471    pub source_encryption_key: Option<String>,
1472
1473    /// The SHA-256 hash of the provided source encryption key. Must be provided if the source encryption key is provided.
1474    pub source_encryption_key_sha256: Option<String>,
1475
1476    /// Specify this value to operate only on a source blob with a matching Etag value.
1477    pub source_if_match: Option<Etag>,
1478
1479    /// Specify this value to operate only on a source blob if it has been modified since the specified date-time.
1480    pub source_if_modified_since: Option<OffsetDateTime>,
1481
1482    /// Specify this value to operate only on a source blob with a non-matching Etag value.
1483    pub source_if_none_match: Option<Etag>,
1484
1485    /// Specify this header value to operate only on a blob if it has not been modified since the specified date-time.
1486    pub source_if_unmodified_since: Option<OffsetDateTime>,
1487
1488    /// Specifies the bytes of the source.
1489    pub source_range: Option<HttpRange>,
1490
1491    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1492    pub timeout: Option<i32>,
1493}
1494
1495/// Options to be passed to `BlockBlobClient::stage_block()`
1496#[derive(Clone, Default, SafeDebug)]
1497pub struct BlockBlobClientStageBlockOptions<'a> {
1498    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1499    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1500
1501    /// Specifies the encryption key to use to encrypt the data provided in the request.
1502    pub encryption_key: Option<String>,
1503
1504    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1505    pub encryption_key_sha256: Option<String>,
1506
1507    /// Specifies the encryption scope used to encrypt the data.
1508    pub encryption_scope: Option<String>,
1509
1510    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1511    pub lease_id: Option<String>,
1512
1513    /// Allows customization of the method call.
1514    pub method_options: ClientMethodOptions<'a>,
1515
1516    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1517    pub timeout: Option<i32>,
1518
1519    /// Specifies the transactional CRC64 hash for the body.
1520    pub transactional_content_crc64: Option<Vec<u8>>,
1521
1522    /// Specifies the transactional MD5 hash for the body.
1523    pub transactional_content_md5: Option<Vec<u8>>,
1524}
1525
1526/// Options to be passed to `BlockBlobClient::upload_blob_from_url()`
1527#[derive(Clone, Default, SafeDebug)]
1528pub struct BlockBlobClientUploadBlobFromUrlOptions<'a> {
1529    /// Specifies the blob's Cache-Control. If specified, this property is stored with the blob and returned with a read request.
1530    pub blob_cache_control: Option<String>,
1531
1532    /// Specifies the blob's Content-Disposition. If specified, this property is stored with the blob and returned with a read
1533    /// request.
1534    pub blob_content_disposition: Option<String>,
1535
1536    /// Specifies the blob's Content-Encoding. If specified, this property is stored with the blob and returned with a read request.
1537    pub blob_content_encoding: Option<String>,
1538
1539    /// Specifies the blob's Content-Language. If specified, this property is stored with the blob and returned with a read request.
1540    pub blob_content_language: Option<String>,
1541
1542    /// The MD5 hash of the blob content that is stored as a property on the blob. Note: This hash is not validated.
1543    pub blob_content_md5: Option<Vec<u8>>,
1544
1545    /// Specifies the blob's Content-Type. If specified, this property is stored with the blob and returned with a read request.
1546    pub blob_content_type: Option<String>,
1547
1548    /// The blob tags.
1549    pub blob_tags_string: Option<String>,
1550
1551    /// Only the Bearer authorization scheme is supported, and the value must be a valid OAuth access token for the copy source.
1552    pub copy_source_authorization: Option<String>,
1553
1554    /// Indicates if properties from the source blob should be copied. Default is true.
1555    pub copy_source_blob_properties: Option<bool>,
1556
1557    /// Indicates if source tags should be copied or replaced with the tags specified. Default is 'Replace'.
1558    pub copy_source_tags: Option<BlobCopySourceTags>,
1559
1560    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1561    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1562
1563    /// Specifies the encryption key to use to encrypt the data provided in the request.
1564    pub encryption_key: Option<String>,
1565
1566    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1567    pub encryption_key_sha256: Option<String>,
1568
1569    /// Specifies the encryption scope used to encrypt the data.
1570    pub encryption_scope: Option<String>,
1571
1572    /// Specifies the file request token intent.
1573    pub file_request_intent: Option<FileShareTokenIntent>,
1574
1575    /// Specify this value to operate only on a blob with a matching Etag value.
1576    pub if_match: Option<Etag>,
1577
1578    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1579    pub if_modified_since: Option<OffsetDateTime>,
1580
1581    /// Specify this value to operate only on a blob with a non-matching Etag value.
1582    pub if_none_match: Option<Etag>,
1583
1584    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1585    pub if_tags: Option<String>,
1586
1587    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1588    pub if_unmodified_since: Option<OffsetDateTime>,
1589
1590    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1591    pub lease_id: Option<String>,
1592
1593    /// The metadata headers.
1594    pub metadata: Option<HashMap<String, String>>,
1595
1596    /// Allows customization of the method call.
1597    pub method_options: ClientMethodOptions<'a>,
1598
1599    /// Specifies the MD5 hash calculated for the range of bytes that must be read from the copy source.
1600    pub source_content_md5: Option<Vec<u8>>,
1601
1602    /// The algorithm used to produce the source encryption key hash. Must be provided if the source encryption key is provided.
1603    pub source_encryption_algorithm: Option<EncryptionAlgorithmType>,
1604
1605    /// Specifies the encryption key to use to decrypt the source data provided in the request.
1606    pub source_encryption_key: Option<String>,
1607
1608    /// The SHA-256 hash of the provided source encryption key. Must be provided if the source encryption key is provided.
1609    pub source_encryption_key_sha256: Option<String>,
1610
1611    /// Specify this value to operate only on a source blob with a matching Etag value.
1612    pub source_if_match: Option<Etag>,
1613
1614    /// Specify this value to operate only on a source blob if it has been modified since the specified date-time.
1615    pub source_if_modified_since: Option<OffsetDateTime>,
1616
1617    /// Specify this value to operate only on a source blob with a non-matching Etag value.
1618    pub source_if_none_match: Option<Etag>,
1619
1620    /// Specifies a SQL-like where clause on blob tags to operate only on a source blob with matching tags.
1621    pub source_if_tags: Option<String>,
1622
1623    /// Specify this header value to operate only on a blob if it has not been modified since the specified date-time.
1624    pub source_if_unmodified_since: Option<OffsetDateTime>,
1625
1626    /// The tier to be set on the blob.
1627    pub tier: Option<AccessTier>,
1628
1629    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1630    pub timeout: Option<i32>,
1631
1632    /// Specifies the transactional MD5 hash for the body.
1633    pub transactional_content_md5: Option<Vec<u8>>,
1634}
1635
1636/// Options to be passed to `BlockBlobClient::upload_internal()`
1637#[derive(Clone, Default, SafeDebug)]
1638pub(crate) struct BlockBlobClientUploadInternalOptions<'a> {
1639    /// Specifies the blob's Cache-Control. If specified, this property is stored with the blob and returned with a read request.
1640    pub(crate) blob_cache_control: Option<String>,
1641
1642    /// Specifies the blob's Content-Disposition. If specified, this property is stored with the blob and returned with a read
1643    /// request.
1644    pub(crate) blob_content_disposition: Option<String>,
1645
1646    /// Specifies the blob's Content-Encoding. If specified, this property is stored with the blob and returned with a read request.
1647    pub(crate) blob_content_encoding: Option<String>,
1648
1649    /// Specifies the blob's Content-Language. If specified, this property is stored with the blob and returned with a read request.
1650    pub(crate) blob_content_language: Option<String>,
1651
1652    /// The MD5 hash of the blob content that is stored as a property on the blob. Note: This hash is not validated.
1653    pub(crate) blob_content_md5: Option<Vec<u8>>,
1654
1655    /// Specifies the blob's Content-Type. If specified, this property is stored with the blob and returned with a read request.
1656    pub(crate) blob_content_type: Option<String>,
1657
1658    /// The blob tags.
1659    pub(crate) blob_tags_string: Option<String>,
1660
1661    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1662    pub(crate) encryption_algorithm: Option<EncryptionAlgorithmType>,
1663
1664    /// Specifies the encryption key to use to encrypt the data provided in the request.
1665    pub(crate) encryption_key: Option<String>,
1666
1667    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1668    pub(crate) encryption_key_sha256: Option<String>,
1669
1670    /// Specifies the encryption scope used to encrypt the data.
1671    pub(crate) encryption_scope: Option<String>,
1672
1673    /// Specify this value to operate only on a blob with a matching Etag value.
1674    pub(crate) if_match: Option<Etag>,
1675
1676    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1677    pub(crate) if_modified_since: Option<OffsetDateTime>,
1678
1679    /// Specify this value to operate only on a blob with a non-matching Etag value.
1680    pub(crate) if_none_match: Option<Etag>,
1681
1682    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1683    pub(crate) if_tags: Option<String>,
1684
1685    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1686    pub(crate) if_unmodified_since: Option<OffsetDateTime>,
1687
1688    /// The date-time that indicates the time at which the blob immutability policy will expire.
1689    pub(crate) immutability_policy_expiry: Option<OffsetDateTime>,
1690
1691    /// Indicates the immutability policy mode of the blob.
1692    pub(crate) immutability_policy_mode: Option<ImmutabilityPolicyMode>,
1693
1694    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1695    pub(crate) lease_id: Option<String>,
1696
1697    /// Indicates whether the blob has a legal hold.
1698    pub(crate) legal_hold: Option<bool>,
1699
1700    /// The metadata headers.
1701    pub(crate) metadata: Option<HashMap<String, String>>,
1702
1703    /// Allows customization of the method call.
1704    pub(crate) method_options: ClientMethodOptions<'a>,
1705
1706    /// Required if the request body is a structured message. Specifies the message schema version and properties.
1707    pub(crate) structured_body_type: Option<String>,
1708
1709    /// Required if the request body is a structured message. Specifies the length of the blob/file content inside the message
1710    /// body. Will always be smaller than Content-Length.
1711    pub(crate) structured_content_length: Option<u64>,
1712
1713    /// The tier to be set on the blob.
1714    pub(crate) tier: Option<AccessTier>,
1715
1716    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1717    pub(crate) timeout: Option<i32>,
1718
1719    /// Specifies the transactional CRC64 hash for the body.
1720    pub(crate) transactional_content_crc64: Option<Vec<u8>>,
1721
1722    /// Specifies the transactional MD5 hash for the body.
1723    pub(crate) transactional_content_md5: Option<Vec<u8>>,
1724}
1725
1726/// Options to be passed to `PageBlobClient::clear_pages()`
1727#[derive(Clone, Default, SafeDebug)]
1728pub struct PageBlobClientClearPagesOptions<'a> {
1729    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1730    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1731
1732    /// Specifies the encryption key to use to encrypt the data provided in the request.
1733    pub encryption_key: Option<String>,
1734
1735    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1736    pub encryption_key_sha256: Option<String>,
1737
1738    /// Specifies the encryption scope used to encrypt the data.
1739    pub encryption_scope: Option<String>,
1740
1741    /// Specify this value to operate only on a blob with a matching Etag value.
1742    pub if_match: Option<Etag>,
1743
1744    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1745    pub if_modified_since: Option<OffsetDateTime>,
1746
1747    /// Specify this value to operate only on a blob with a non-matching Etag value.
1748    pub if_none_match: Option<Etag>,
1749
1750    /// Specify this value to operate only on a blob if it has the specified sequence number.
1751    pub if_sequence_number_equal_to: Option<i64>,
1752
1753    /// Specify this value to operate only on a blob if it has a sequence number less than the specified.
1754    pub if_sequence_number_less_than: Option<i64>,
1755
1756    /// Specify this value to operate only on a blob if it has a sequence number less than or equal to the specified.
1757    pub if_sequence_number_less_than_or_equal_to: Option<i64>,
1758
1759    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1760    pub if_tags: Option<String>,
1761
1762    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1763    pub if_unmodified_since: Option<OffsetDateTime>,
1764
1765    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1766    pub lease_id: Option<String>,
1767
1768    /// Allows customization of the method call.
1769    pub method_options: ClientMethodOptions<'a>,
1770
1771    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1772    pub timeout: Option<i32>,
1773}
1774
1775/// Options to be passed to `PageBlobClient::create()`
1776#[derive(Clone, Default, SafeDebug)]
1777pub struct PageBlobClientCreateOptions<'a> {
1778    /// Specifies the blob's Cache-Control. If specified, this property is stored with the blob and returned with a read request.
1779    pub blob_cache_control: Option<String>,
1780
1781    /// Specifies the blob's Content-Disposition. If specified, this property is stored with the blob and returned with a read
1782    /// request.
1783    pub blob_content_disposition: Option<String>,
1784
1785    /// Specifies the blob's Content-Encoding. If specified, this property is stored with the blob and returned with a read request.
1786    pub blob_content_encoding: Option<String>,
1787
1788    /// Specifies the blob's Content-Language. If specified, this property is stored with the blob and returned with a read request.
1789    pub blob_content_language: Option<String>,
1790
1791    /// The MD5 hash of the blob content that is stored as a property on the blob. Note: This hash is not validated.
1792    pub blob_content_md5: Option<Vec<u8>>,
1793
1794    /// Specifies the blob's Content-Type. If specified, this property is stored with the blob and returned with a read request.
1795    pub blob_content_type: Option<String>,
1796
1797    /// A value that can be used to track the request. The value of the sequence number must be between 0 and 2^63 - 1.
1798    pub blob_sequence_number: Option<i64>,
1799
1800    /// The blob tags.
1801    pub blob_tags_string: Option<String>,
1802
1803    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1804    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1805
1806    /// Specifies the encryption key to use to encrypt the data provided in the request.
1807    pub encryption_key: Option<String>,
1808
1809    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1810    pub encryption_key_sha256: Option<String>,
1811
1812    /// Specifies the encryption scope used to encrypt the data.
1813    pub encryption_scope: Option<String>,
1814
1815    /// Specify this value to operate only on a blob with a matching Etag value.
1816    pub if_match: Option<Etag>,
1817
1818    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1819    pub if_modified_since: Option<OffsetDateTime>,
1820
1821    /// Specify this value to operate only on a blob with a non-matching Etag value.
1822    pub if_none_match: Option<Etag>,
1823
1824    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1825    pub if_tags: Option<String>,
1826
1827    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1828    pub if_unmodified_since: Option<OffsetDateTime>,
1829
1830    /// The date-time that indicates the time at which the blob immutability policy will expire.
1831    pub immutability_policy_expiry: Option<OffsetDateTime>,
1832
1833    /// Indicates the immutability policy mode of the blob.
1834    pub immutability_policy_mode: Option<ImmutabilityPolicyMode>,
1835
1836    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1837    pub lease_id: Option<String>,
1838
1839    /// Indicates whether the blob has a legal hold.
1840    pub legal_hold: Option<bool>,
1841
1842    /// The metadata headers.
1843    pub metadata: Option<HashMap<String, String>>,
1844
1845    /// Allows customization of the method call.
1846    pub method_options: ClientMethodOptions<'a>,
1847
1848    /// Indicates the tier to be set on the page blob.
1849    pub tier: Option<PremiumPageBlobAccessTier>,
1850
1851    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1852    pub timeout: Option<i32>,
1853}
1854
1855/// Options to be passed to `PageBlobClient::list_page_ranges()`
1856#[derive(Clone, Default, SafeDebug)]
1857pub struct PageBlobClientListPageRangesOptions<'a> {
1858    /// Specify this value to operate only on a blob with a matching Etag value.
1859    pub if_match: Option<Etag>,
1860
1861    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1862    pub if_modified_since: Option<OffsetDateTime>,
1863
1864    /// Specify this value to operate only on a blob with a non-matching Etag value.
1865    pub if_none_match: Option<Etag>,
1866
1867    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1868    pub if_tags: Option<String>,
1869
1870    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1871    pub if_unmodified_since: Option<OffsetDateTime>,
1872
1873    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1874    pub lease_id: Option<String>,
1875
1876    /// An opaque string value that identifies the portion of the result set to return with this operation.
1877    pub marker: Option<String>,
1878
1879    /// Specifies the maximum number of resources to return. If the request does not specify maxresults, or specifies a value
1880    /// greater than 5000, the server will return up to 5000 items.
1881    pub maxresults: Option<i32>,
1882
1883    /// Allows customization of the method call.
1884    pub method_options: PagerOptions<'a>,
1885
1886    /// Specifies the range of the blob to operate on.
1887    pub range: Option<HttpRange>,
1888
1889    /// Specifies the snapshot of the blob.
1890    pub snapshot: Option<String>,
1891
1892    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1893    pub timeout: Option<i32>,
1894}
1895
1896impl PageBlobClientListPageRangesOptions<'_> {
1897    /// Transforms this [`PageBlobClientListPageRangesOptions`] into a new `PageBlobClientListPageRangesOptions` that owns the underlying data, cloning it if necessary.
1898    pub fn into_owned(self) -> PageBlobClientListPageRangesOptions<'static> {
1899        PageBlobClientListPageRangesOptions {
1900            if_match: self.if_match,
1901            if_modified_since: self.if_modified_since,
1902            if_none_match: self.if_none_match,
1903            if_tags: self.if_tags,
1904            if_unmodified_since: self.if_unmodified_since,
1905            lease_id: self.lease_id,
1906            marker: self.marker,
1907            maxresults: self.maxresults,
1908            method_options: PagerOptions {
1909                context: self.method_options.context.into_owned(),
1910                ..self.method_options
1911            },
1912            range: self.range,
1913            snapshot: self.snapshot,
1914            timeout: self.timeout,
1915        }
1916    }
1917}
1918
1919/// Options to be passed to `PageBlobClient::resize()`
1920#[derive(Clone, Default, SafeDebug)]
1921pub struct PageBlobClientResizeOptions<'a> {
1922    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1923    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1924
1925    /// Specifies the encryption key to use to encrypt the data provided in the request.
1926    pub encryption_key: Option<String>,
1927
1928    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
1929    pub encryption_key_sha256: Option<String>,
1930
1931    /// Specifies the encryption scope used to encrypt the data.
1932    pub encryption_scope: Option<String>,
1933
1934    /// Specify this value to operate only on a blob with a matching Etag value.
1935    pub if_match: Option<Etag>,
1936
1937    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1938    pub if_modified_since: Option<OffsetDateTime>,
1939
1940    /// Specify this value to operate only on a blob with a non-matching Etag value.
1941    pub if_none_match: Option<Etag>,
1942
1943    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1944    pub if_tags: Option<String>,
1945
1946    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1947    pub if_unmodified_since: Option<OffsetDateTime>,
1948
1949    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1950    pub lease_id: Option<String>,
1951
1952    /// Allows customization of the method call.
1953    pub method_options: ClientMethodOptions<'a>,
1954
1955    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1956    pub timeout: Option<i32>,
1957}
1958
1959/// Options to be passed to `PageBlobClient::set_sequence_number()`
1960#[derive(Clone, Default, SafeDebug)]
1961pub struct PageBlobClientSetSequenceNumberOptions<'a> {
1962    /// A value that can be used to track the request. The value of the sequence number must be between 0 and 2^63 - 1.
1963    pub blob_sequence_number: Option<i64>,
1964
1965    /// Specify this value to operate only on a blob with a matching Etag value.
1966    pub if_match: Option<Etag>,
1967
1968    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
1969    pub if_modified_since: Option<OffsetDateTime>,
1970
1971    /// Specify this value to operate only on a blob with a non-matching Etag value.
1972    pub if_none_match: Option<Etag>,
1973
1974    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
1975    pub if_tags: Option<String>,
1976
1977    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
1978    pub if_unmodified_since: Option<OffsetDateTime>,
1979
1980    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
1981    pub lease_id: Option<String>,
1982
1983    /// Allows customization of the method call.
1984    pub method_options: ClientMethodOptions<'a>,
1985
1986    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
1987    pub timeout: Option<i32>,
1988}
1989
1990/// Options to be passed to `PageBlobClient::upload_pages_from_url()`
1991#[derive(Clone, Default, SafeDebug)]
1992pub struct PageBlobClientUploadPagesFromUrlOptions<'a> {
1993    /// Only the Bearer authorization scheme is supported, and the value must be a valid OAuth access token for the copy source.
1994    pub copy_source_authorization: Option<String>,
1995
1996    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
1997    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
1998
1999    /// Specifies the encryption key to use to encrypt the data provided in the request.
2000    pub encryption_key: Option<String>,
2001
2002    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
2003    pub encryption_key_sha256: Option<String>,
2004
2005    /// Specifies the encryption scope used to encrypt the data.
2006    pub encryption_scope: Option<String>,
2007
2008    /// Specifies the file request token intent.
2009    pub file_request_intent: Option<FileShareTokenIntent>,
2010
2011    /// Specify this value to operate only on a blob with a matching Etag value.
2012    pub if_match: Option<Etag>,
2013
2014    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
2015    pub if_modified_since: Option<OffsetDateTime>,
2016
2017    /// Specify this value to operate only on a blob with a non-matching Etag value.
2018    pub if_none_match: Option<Etag>,
2019
2020    /// Specify this value to operate only on a blob if it has the specified sequence number.
2021    pub if_sequence_number_equal_to: Option<i64>,
2022
2023    /// Specify this value to operate only on a blob if it has a sequence number less than the specified.
2024    pub if_sequence_number_less_than: Option<i64>,
2025
2026    /// Specify this value to operate only on a blob if it has a sequence number less than or equal to the specified.
2027    pub if_sequence_number_less_than_or_equal_to: Option<i64>,
2028
2029    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
2030    pub if_tags: Option<String>,
2031
2032    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
2033    pub if_unmodified_since: Option<OffsetDateTime>,
2034
2035    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
2036    pub lease_id: Option<String>,
2037
2038    /// Allows customization of the method call.
2039    pub method_options: ClientMethodOptions<'a>,
2040
2041    /// Specifies the CRC64 calculated for the range of bytes that must be read from the source.
2042    pub source_content_crc64: Option<Vec<u8>>,
2043
2044    /// Specifies the MD5 hash calculated for the range of bytes that must be read from the copy source.
2045    pub source_content_md5: Option<Vec<u8>>,
2046
2047    /// The algorithm used to produce the source encryption key hash. Must be provided if the source encryption key is provided.
2048    pub source_encryption_algorithm: Option<EncryptionAlgorithmType>,
2049
2050    /// Specifies the encryption key to use to decrypt the source data provided in the request.
2051    pub source_encryption_key: Option<String>,
2052
2053    /// The SHA-256 hash of the provided source encryption key. Must be provided if the source encryption key is provided.
2054    pub source_encryption_key_sha256: Option<String>,
2055
2056    /// Specify this value to operate only on a source blob with a matching Etag value.
2057    pub source_if_match: Option<Etag>,
2058
2059    /// Specify this value to operate only on a source blob if it has been modified since the specified date-time.
2060    pub source_if_modified_since: Option<OffsetDateTime>,
2061
2062    /// Specify this value to operate only on a source blob with a non-matching Etag value.
2063    pub source_if_none_match: Option<Etag>,
2064
2065    /// Specify this header value to operate only on a blob if it has not been modified since the specified date-time.
2066    pub source_if_unmodified_since: Option<OffsetDateTime>,
2067
2068    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
2069    pub timeout: Option<i32>,
2070}
2071
2072/// Options to be passed to `PageBlobClient::upload_pages()`
2073#[derive(Clone, Default, SafeDebug)]
2074pub struct PageBlobClientUploadPagesOptions<'a> {
2075    /// The algorithm used to produce the encryption key hash. Must be provided if the encryption key is provided.
2076    pub encryption_algorithm: Option<EncryptionAlgorithmType>,
2077
2078    /// Specifies the encryption key to use to encrypt the data provided in the request.
2079    pub encryption_key: Option<String>,
2080
2081    /// The SHA-256 hash of the provided encryption key. Must be provided if the encryption key is provided.
2082    pub encryption_key_sha256: Option<String>,
2083
2084    /// Specifies the encryption scope used to encrypt the data.
2085    pub encryption_scope: Option<String>,
2086
2087    /// Specify this value to operate only on a blob with a matching Etag value.
2088    pub if_match: Option<Etag>,
2089
2090    /// Specify this value to operate only on a blob if it has been modified since the specified date-time.
2091    pub if_modified_since: Option<OffsetDateTime>,
2092
2093    /// Specify this value to operate only on a blob with a non-matching Etag value.
2094    pub if_none_match: Option<Etag>,
2095
2096    /// Specify this value to operate only on a blob if it has the specified sequence number.
2097    pub if_sequence_number_equal_to: Option<i64>,
2098
2099    /// Specify this value to operate only on a blob if it has a sequence number less than the specified.
2100    pub if_sequence_number_less_than: Option<i64>,
2101
2102    /// Specify this value to operate only on a blob if it has a sequence number less than or equal to the specified.
2103    pub if_sequence_number_less_than_or_equal_to: Option<i64>,
2104
2105    /// Specifies a SQL-like where clause on blob tags to operate only on a blob with matching tags.
2106    pub if_tags: Option<String>,
2107
2108    /// Specify this value to operate only on a blob if it has not been modified since the specified date-time.
2109    pub if_unmodified_since: Option<OffsetDateTime>,
2110
2111    /// If specified, the operation only succeeds if the resource's lease is active and matches this ID.
2112    pub lease_id: Option<String>,
2113
2114    /// Allows customization of the method call.
2115    pub method_options: ClientMethodOptions<'a>,
2116
2117    /// The timeout parameter is expressed in seconds. For more information, see [Setting Timeouts for Blob Service Operations.](\"<https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/setting-timeouts-for-blob-service-operations\>")
2118    pub timeout: Option<i32>,
2119
2120    /// Specifies the transactional CRC64 hash for the body.
2121    pub transactional_content_crc64: Option<Vec<u8>>,
2122
2123    /// Specifies the transactional MD5 hash for the body.
2124    pub transactional_content_md5: Option<Vec<u8>>,
2125}