azure-storage-files-datalake
Loading...
Searching...
No Matches
datalake_options.hpp
1// Copyright (c) Microsoft Corporation.
2// Licensed under the MIT License.
3
4#pragma once
5
6#include "azure/storage/blobs/rest_client.hpp"
7#include "azure/storage/files/datalake/rest_client.hpp"
8
9#include <azure/core/nullable.hpp>
10#include <azure/storage/blobs/blob_options.hpp>
11#include <azure/storage/common/access_conditions.hpp>
12
13#include <cstdint>
14#include <memory>
15#include <string>
16#include <vector>
17
18namespace Azure { namespace Storage { namespace Files { namespace DataLake {
19
20 namespace Models {
21 using PathHttpHeaders = Blobs::Models::BlobHttpHeaders;
22 using ListFileSystemsIncludeFlags = Blobs::Models::ListBlobContainersIncludeFlags;
23 using SignedIdentifier = Blobs::Models::SignedIdentifier;
24 using FileQueryArrowField = Blobs::Models::BlobQueryArrowField;
25 using FileQueryArrowFieldType = Blobs::Models::BlobQueryArrowFieldType;
26 using EncryptionAlgorithmType = Blobs::Models::EncryptionAlgorithmType;
27
31 struct Acl final
32 {
36 std::string Scope;
37
41 std::string Type;
42
46 std::string Id;
47
51 std::string Permissions;
52
58 static Acl FromString(const std::string& aclString);
59
65 static std::string ToString(const Acl& acl);
66
72 static std::vector<Acl> DeserializeAcls(const std::string& aclsString);
73
79 static std::string SerializeAcls(const std::vector<Acl>& aclsArray);
80 };
81 } // namespace Models
82
83 using DownloadFileToOptions = Blobs::DownloadBlobToOptions;
84 using GetUserDelegationKeyOptions = Blobs::GetUserDelegationKeyOptions;
85 using GetServicePropertiesOptions = Blobs::GetServicePropertiesOptions;
86 using SetServicePropertiesOptions = Blobs::SetServicePropertiesOptions;
87 using EncryptionKey = Blobs::EncryptionKey;
88
89 namespace _detail {
90 struct DatalakeClientConfiguration
91 {
92
96 std::string ApiVersion;
97
101 std::shared_ptr<const Core::Credentials::TokenCredential> TokenCredential;
102
106 Azure::Nullable<EncryptionKey> CustomerProvidedKey;
107
112 Azure::Nullable<Azure::Core::Url> FileSystemUrl;
113 };
114 } // namespace _detail
115
121 : public Azure::Core::_internal::ExtendableEnumeration<DataLakeAudience> {
122 public:
131 explicit DataLakeAudience(std::string dataLakeAudience)
132 : ExtendableEnumeration(std::move(dataLakeAudience))
133 {
134 }
135
144 const std::string& storageAccountName)
145 {
146 return DataLakeAudience("https://" + storageAccountName + ".blob.core.windows.net/");
147 }
148
153 AZ_STORAGE_FILES_DATALAKE_DLLEXPORT const static DataLakeAudience DefaultAudience;
154 };
155
159 struct DataLakeClientOptions final : Azure::Core::_internal::ClientOptions
160 {
169
173 std::string ApiVersion;
174
178 Azure::Nullable<EncryptionKey> CustomerProvidedKey;
179
186
192 Azure::Nullable<DataLakeAudience> Audience;
193 };
194
198 struct FileSystemAccessConditions final : public Azure::ModifiedConditions,
199 public LeaseAccessConditions
200 {
201 };
202
206 struct PathAccessConditions final : public Azure::ModifiedConditions,
207 public Azure::MatchConditions,
208 public LeaseAccessConditions
209 {
210 };
211
217 {
221 Azure::Nullable<std::string> Prefix;
222
230 Azure::Nullable<std::string> ContinuationToken;
231
236 Azure::Nullable<int32_t> PageSizeHint;
237
241 Models::ListFileSystemsIncludeFlags Include = Models::ListFileSystemsIncludeFlags::None;
242 };
243
249 {
254 Storage::Metadata Metadata;
255
260
264 Azure::Nullable<std::string> DefaultEncryptionScope;
265
270 Azure::Nullable<bool> PreventEncryptionScopeOverride;
271 };
272
278 {
283 };
284
290 {
294 LeaseAccessConditions AccessConditions;
295 };
296
302 {
303 struct : public LeaseAccessConditions
304 {
309 Azure::Nullable<Azure::DateTime> IfModifiedSince;
310 }
314 };
315
320 struct ListPathsOptions final
321 {
331 Azure::Nullable<bool> UserPrincipalName;
332
339 Azure::Nullable<std::string> ContinuationToken;
340
345 Azure::Nullable<int32_t> PageSizeHint;
346 };
347
353 {
357 Azure::Nullable<std::string> Prefix;
358
365 Azure::Nullable<std::string> ContinuationToken;
366
371 Azure::Nullable<int32_t> PageSizeHint;
372 };
373
379 {
380 };
381
387 {
391 LeaseAccessConditions AccessConditions;
392 };
393
399 {
404
409 std::vector<Models::SignedIdentifier> SignedIdentifiers;
410
415 };
416
425 {
430 Azure::Nullable<std::string> DestinationFileSystem;
431
436
441 };
442
446 struct AppendFileOptions final
447 {
451 Azure::Nullable<Storage::ContentHash> TransactionalContentHash;
452
456 LeaseAccessConditions AccessConditions;
457
461 Azure::Nullable<bool> Flush;
462
471 Azure::Nullable<Models::LeaseAction> LeaseAction;
472
476 Azure::Nullable<std::string> LeaseId;
477
483 Azure::Nullable<std::chrono::seconds> LeaseDuration;
484 };
485
489 struct FlushFileOptions final
490 {
498 Azure::Nullable<bool> RetainUncommittedData;
499
512 Azure::Nullable<bool> Close;
513
520 Azure::Nullable<Storage::ContentHash> ContentHash;
521
525 Models::PathHttpHeaders HttpHeaders;
526
531
540 Azure::Nullable<Models::LeaseAction> LeaseAction;
541
545 Azure::Nullable<std::string> LeaseId;
546
552 Azure::Nullable<std::chrono::seconds> LeaseDuration;
553 };
554
560 {
564 Azure::Nullable<std::string> Owner;
565
569 Azure::Nullable<std::string> Group;
570
575 };
576
582 {
586 Azure::Nullable<std::string> Owner;
587
591 Azure::Nullable<std::string> Group;
592
597 };
598
604 {
609 };
610
616 {
621 };
622
623 using ScheduleFileExpiryOriginType = Blobs::Models::ScheduleBlobExpiryOriginType;
624
629 {
637 Azure::Nullable<std::chrono::milliseconds> TimeToExpire;
638
645 Azure::Nullable<DateTime> ExpiresOn;
646 };
647
649
656 struct CreatePathOptions final
657 {
661 Models::PathHttpHeaders HttpHeaders;
662
670 Storage::Metadata Metadata;
671
681 Azure::Nullable<std::string> Umask;
682
689 Azure::Nullable<std::string> Permissions;
690
694 Azure::Nullable<std::string> Owner;
695
699 Azure::Nullable<std::string> Group;
700
705 Azure::Nullable<std::vector<Models::Acl>> Acls;
706
710 Azure::Nullable<std::string> LeaseId;
711
717 Azure::Nullable<std::chrono::seconds> LeaseDuration;
718
723
728
735 Azure::Nullable<std::string> EncryptionContext;
736 };
737
744 struct DeletePathOptions final
745 {
750 Azure::Nullable<bool> Recursive;
751
756 };
757
766 {
771
782 };
783
789 {
794
805 };
806
814 {
818 Azure::Nullable<Core::Http::HttpRange> Range;
819
823 Azure::Nullable<HashAlgorithm> RangeHashAlgorithm;
824
829
840 };
841
846 struct RenameFileOptions final
847 {
852 Azure::Nullable<std::string> DestinationFileSystem;
853
858
863 };
864
868 struct DeleteFileOptions final
869 {
874 };
875
877
883 {
888 };
889
894 {
903 Azure::Nullable<std::string> ContinuationToken;
904
909 Azure::Nullable<int32_t> PageSizeHint;
910
918 Azure::Nullable<bool> ContinueOnFailure;
919 };
920
922
924
927
933 {
937 Models::PathHttpHeaders HttpHeaders;
938
942 Storage::Metadata Metadata;
943
947 struct
948 {
953 int64_t SingleUploadThreshold = 256 * 1024 * 1024;
954
959 Azure::Nullable<int64_t> ChunkSize;
960
964 int32_t Concurrency = 5;
966 };
967
968 using AcquireLeaseOptions = Blobs::AcquireLeaseOptions;
969 using BreakLeaseOptions = Blobs::BreakLeaseOptions;
970 using RenewLeaseOptions = Blobs::RenewLeaseOptions;
971 using ReleaseLeaseOptions = Blobs::ReleaseLeaseOptions;
972 using ChangeLeaseOptions = Blobs::ChangeLeaseOptions;
973
974 using FileQueryInputTextOptions = Blobs::BlobQueryInputTextOptions;
975 using FileQueryOutputTextOptions = Blobs::BlobQueryOutputTextOptions;
976 using FileQueryError = Blobs::BlobQueryError;
977
981 struct QueryFileOptions final
982 {
986 FileQueryInputTextOptions InputTextConfiguration;
990 FileQueryOutputTextOptions OutputTextConfiguration;
998 std::function<void(int64_t, int64_t)> ProgressHandler;
1003 std::function<void(FileQueryError)> ErrorHandler;
1004 };
1005}}}} // namespace Azure::Storage::Files::DataLake
Audiences available for data lake service.
Definition datalake_options.hpp:121
DataLakeAudience(std::string dataLakeAudience)
Construct a new DataLakeAudience object.
Definition datalake_options.hpp:131
AZ_STORAGE_FILES_DATALAKE_DLLEXPORT static const DataLakeAudience DefaultAudience
Default Audience. Use to acquire a token for authorizing requests to any Azure Storage account.
Definition datalake_options.hpp:153
static DataLakeAudience CreateDataLakeServiceAccountAudience(const std::string &storageAccountName)
The service endpoint for a given storage account. Use this method to acquire a token for authorizing ...
Definition datalake_options.hpp:143
Specifies whether data in the file system may be accessed publicly and the level of access.
Definition rest_client.hpp:71
AZ_STORAGE_FILES_DATALAKE_DLLEXPORT static const PublicAccessType None
Definition rest_client.hpp:79
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Append.
Definition datalake_options.hpp:447
LeaseAccessConditions AccessConditions
Definition datalake_options.hpp:456
Azure::Nullable< std::chrono::seconds > LeaseDuration
Definition datalake_options.hpp:483
Azure::Nullable< std::string > LeaseId
Definition datalake_options.hpp:476
Azure::Nullable< bool > Flush
Definition datalake_options.hpp:461
Azure::Nullable< Storage::ContentHash > TransactionalContentHash
Definition datalake_options.hpp:451
Azure::Nullable< Models::LeaseAction > LeaseAction
Definition datalake_options.hpp:471
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::Create.
Definition datalake_options.hpp:249
Models::PublicAccessType AccessType
Definition datalake_options.hpp:259
Azure::Nullable< bool > PreventEncryptionScopeOverride
If true, prevents any file upload from specifying a different encryption scope.
Definition datalake_options.hpp:270
Storage::Metadata Metadata
Definition datalake_options.hpp:254
Azure::Nullable< std::string > DefaultEncryptionScope
The encryption scope to use as the default on the filesystem.
Definition datalake_options.hpp:264
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::Create.
Definition datalake_options.hpp:657
Models::PathHttpHeaders HttpHeaders
Definition datalake_options.hpp:661
Azure::Nullable< std::vector< Models::Acl > > Acls
Definition datalake_options.hpp:705
Azure::Nullable< std::chrono::seconds > LeaseDuration
Definition datalake_options.hpp:717
Azure::Nullable< std::string > EncryptionContext
Definition datalake_options.hpp:735
Azure::Nullable< std::string > Permissions
Definition datalake_options.hpp:689
Azure::Nullable< std::string > Owner
Definition datalake_options.hpp:694
PathAccessConditions AccessConditions
Definition datalake_options.hpp:727
Azure::Nullable< std::string > Umask
Definition datalake_options.hpp:681
Azure::Nullable< std::string > LeaseId
Definition datalake_options.hpp:710
Azure::Nullable< std::string > Group
Definition datalake_options.hpp:699
Storage::Metadata Metadata
Definition datalake_options.hpp:670
SchedulePathDeletionOptions ScheduleDeletionOptions
Definition datalake_options.hpp:722
Client options used to initialize all DataLake clients.
Definition datalake_options.hpp:160
Azure::Nullable< EncryptionKey > CustomerProvidedKey
Holds the customer provided key used when making requests.
Definition datalake_options.hpp:178
std::string ApiVersion
Definition datalake_options.hpp:173
Azure::Nullable< DataLakeAudience > Audience
Definition datalake_options.hpp:192
bool EnableTenantDiscovery
Definition datalake_options.hpp:185
std::string SecondaryHostForRetryReads
Definition datalake_options.hpp:168
Optional parameters for Azure::Storage::Files::DataLake::DataLakeDirectoryClient::Delete.
Definition datalake_options.hpp:883
PathAccessConditions AccessConditions
Definition datalake_options.hpp:887
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Delete.
Definition datalake_options.hpp:869
PathAccessConditions AccessConditions
Definition datalake_options.hpp:873
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::Delete.
Definition datalake_options.hpp:278
FileSystemAccessConditions AccessConditions
Definition datalake_options.hpp:282
Optional parameters for Azure::Storage::Files::DataLake::DirectoryClient::Delete.
Definition datalake_options.hpp:745
Azure::Nullable< bool > Recursive
Definition datalake_options.hpp:750
PathAccessConditions AccessConditions
Definition datalake_options.hpp:755
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Download.
Definition datalake_options.hpp:814
Azure::Nullable< Core::Http::HttpRange > Range
Definition datalake_options.hpp:818
Nullable< bool > IncludeUserPrincipalName
Definition datalake_options.hpp:839
Azure::Nullable< HashAlgorithm > RangeHashAlgorithm
Definition datalake_options.hpp:823
PathAccessConditions AccessConditions
Definition datalake_options.hpp:828
Specifies access conditions for a file system.
Definition datalake_options.hpp:200
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Flush.
Definition datalake_options.hpp:490
Azure::Nullable< bool > RetainUncommittedData
Definition datalake_options.hpp:498
Azure::Nullable< std::string > LeaseId
Definition datalake_options.hpp:545
PathAccessConditions AccessConditions
Definition datalake_options.hpp:530
Azure::Nullable< bool > Close
Definition datalake_options.hpp:512
Azure::Nullable< Models::LeaseAction > LeaseAction
Definition datalake_options.hpp:540
Azure::Nullable< std::chrono::seconds > LeaseDuration
Definition datalake_options.hpp:552
Models::PathHttpHeaders HttpHeaders
Definition datalake_options.hpp:525
Azure::Nullable< Storage::ContentHash > ContentHash
Definition datalake_options.hpp:520
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::GetAccessPolicy.
Definition datalake_options.hpp:387
LeaseAccessConditions AccessConditions
Definition datalake_options.hpp:391
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::GetProperties.
Definition datalake_options.hpp:290
LeaseAccessConditions AccessConditions
Definition datalake_options.hpp:294
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::GetAccessControlList.
Definition datalake_options.hpp:789
PathAccessConditions AccessConditions
Definition datalake_options.hpp:793
Nullable< bool > IncludeUserPrincipalName
Definition datalake_options.hpp:804
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::GetProperties.
Definition datalake_options.hpp:766
PathAccessConditions AccessConditions
Definition datalake_options.hpp:770
Nullable< bool > IncludeUserPrincipalName
Definition datalake_options.hpp:781
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListPaths.
Definition datalake_options.hpp:353
Azure::Nullable< int32_t > PageSizeHint
Definition datalake_options.hpp:371
Azure::Nullable< std::string > Prefix
Definition datalake_options.hpp:357
Azure::Nullable< std::string > ContinuationToken
Definition datalake_options.hpp:365
Optional parameters for Azure::Storage::Files::DataLake::DataLakeServiceClient::ListFileSystems.
Definition datalake_options.hpp:217
Azure::Nullable< std::string > Prefix
Definition datalake_options.hpp:221
Models::ListFileSystemsIncludeFlags Include
Definition datalake_options.hpp:241
Azure::Nullable< std::string > ContinuationToken
Definition datalake_options.hpp:230
Azure::Nullable< int32_t > PageSizeHint
Definition datalake_options.hpp:236
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::ListPaths.
Definition datalake_options.hpp:321
Azure::Nullable< int32_t > PageSizeHint
Definition datalake_options.hpp:345
Azure::Nullable< std::string > ContinuationToken
Definition datalake_options.hpp:339
Azure::Nullable< bool > UserPrincipalName
Definition datalake_options.hpp:331
An access control object.
Definition datalake_options.hpp:32
static Acl FromString(const std::string &aclString)
Creates an Acl based on acl input string.
static std::string SerializeAcls(const std::vector< Acl > &aclsArray)
Creates a string that contains several Acls.
static std::vector< Acl > DeserializeAcls(const std::string &aclsString)
Creates a vector of Acl from a string that indicates multiple acls.
std::string Permissions
Definition datalake_options.hpp:51
std::string Type
Definition datalake_options.hpp:41
std::string Scope
Definition datalake_options.hpp:36
std::string Id
Definition datalake_options.hpp:46
static std::string ToString(const Acl &acl)
Creates a string from an Acl.
Specifies access conditions for a path.
Definition datalake_options.hpp:209
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::Query.
Definition datalake_options.hpp:982
FileQueryInputTextOptions InputTextConfiguration
Input text configuration.
Definition datalake_options.hpp:986
std::function< void(int64_t, int64_t)> ProgressHandler
Callback for progress handling.
Definition datalake_options.hpp:998
FileQueryOutputTextOptions OutputTextConfiguration
Output text configuration.
Definition datalake_options.hpp:990
std::function< void(FileQueryError)> ErrorHandler
Callback for error handling. If you don't specify one, the default will be used, which will ignore al...
Definition datalake_options.hpp:1003
PathAccessConditions AccessConditions
Optional conditions that must be met to perform this operation.
Definition datalake_options.hpp:994
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::RenameDirectory.
Definition datalake_options.hpp:425
PathAccessConditions AccessConditions
Definition datalake_options.hpp:435
PathAccessConditions SourceAccessConditions
Definition datalake_options.hpp:440
Azure::Nullable< std::string > DestinationFileSystem
Definition datalake_options.hpp:430
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::RenameFile.
Definition datalake_options.hpp:847
Azure::Nullable< std::string > DestinationFileSystem
Definition datalake_options.hpp:852
PathAccessConditions AccessConditions
Definition datalake_options.hpp:857
PathAccessConditions SourceAccessConditions
Definition datalake_options.hpp:862
Options for scheduling the deletion of a path.
Definition datalake_options.hpp:629
Azure::Nullable< DateTime > ExpiresOn
Definition datalake_options.hpp:645
Azure::Nullable< std::chrono::milliseconds > TimeToExpire
Definition datalake_options.hpp:637
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::SetAccessPolicy.
Definition datalake_options.hpp:399
std::vector< Models::SignedIdentifier > SignedIdentifiers
Definition datalake_options.hpp:409
FileSystemAccessConditions AccessConditions
Definition datalake_options.hpp:414
Models::PublicAccessType AccessType
Definition datalake_options.hpp:403
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::SetMetadata.
Definition datalake_options.hpp:302
Azure::Nullable< Azure::DateTime > IfModifiedSince
Specify this header to perform the operation only if the resource has been modified since the specifi...
Definition datalake_options.hpp:309
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::SetAccessControlList.
Definition datalake_options.hpp:560
PathAccessConditions AccessConditions
Definition datalake_options.hpp:574
Azure::Nullable< std::string > Group
Definition datalake_options.hpp:569
Azure::Nullable< std::string > Owner
Definition datalake_options.hpp:564
Optional parameters for DirectoryClient::SetAccessControlListRecursive.
Definition datalake_options.hpp:894
Azure::Nullable< bool > ContinueOnFailure
Definition datalake_options.hpp:918
Azure::Nullable< std::string > ContinuationToken
Definition datalake_options.hpp:903
Azure::Nullable< int32_t > PageSizeHint
Definition datalake_options.hpp:909
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::SetHttpHeaders.
Definition datalake_options.hpp:604
PathAccessConditions AccessConditions
Definition datalake_options.hpp:608
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::SetMetadata.
Definition datalake_options.hpp:616
PathAccessConditions AccessConditions
Definition datalake_options.hpp:620
Optional parameters for Azure::Storage::Files::DataLake::DataLakePathClient::SetPermissions.
Definition datalake_options.hpp:582
Azure::Nullable< std::string > Group
Definition datalake_options.hpp:591
Azure::Nullable< std::string > Owner
Definition datalake_options.hpp:586
PathAccessConditions AccessConditions
Definition datalake_options.hpp:596
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileSystemClient::UndeletePath.
Definition datalake_options.hpp:379
Optional parameters for Azure::Storage::Files::DataLake::DataLakeFileClient::UploadFrom.
Definition datalake_options.hpp:933
Models::PathHttpHeaders HttpHeaders
Definition datalake_options.hpp:937
int64_t SingleUploadThreshold
Definition datalake_options.hpp:953
Storage::Metadata Metadata
Definition datalake_options.hpp:942
struct Azure::Storage::Files::DataLake::UploadFileFromOptions::@0 TransferOptions
Azure::Nullable< int64_t > ChunkSize
Definition datalake_options.hpp:959
int32_t Concurrency
Definition datalake_options.hpp:964