azure-storage-blobs
blob_service_client.hpp
1 // Copyright (c) Microsoft Corporation. All rights reserved.
2 // SPDX-License-Identifier: MIT
3 
4 #pragma once
5 
6 #include <memory>
7 #include <string>
8 
9 #include <azure/core/credentials/credentials.hpp>
10 #include <azure/storage/common/storage_credential.hpp>
11 
12 #include "azure/storage/blobs/blob_container_client.hpp"
13 
14 namespace Azure { namespace Storage { namespace Blobs {
15 
20  class BlobServiceClient final {
21  public:
32  const std::string& connectionString,
33  const BlobClientOptions& options = BlobClientOptions());
34 
43  explicit BlobServiceClient(
44  const std::string& serviceUrl,
45  std::shared_ptr<StorageSharedKeyCredential> credential,
46  const BlobClientOptions& options = BlobClientOptions());
47 
56  explicit BlobServiceClient(
57  const std::string& serviceUrl,
58  std::shared_ptr<Core::Credentials::TokenCredential> credential,
59  const BlobClientOptions& options = BlobClientOptions());
60 
69  explicit BlobServiceClient(
70  const std::string& serviceUrl,
71  const BlobClientOptions& options = BlobClientOptions());
72 
79  BlobContainerClient GetBlobContainerClient(const std::string& blobContainerName) const;
80 
86  std::string GetUrl() const { return m_serviceUrl.GetAbsoluteUrl(); }
87 
100  const Azure::Core::Context& context = Azure::Core::Context()) const;
101 
112  Azure::Response<Models::UserDelegationKey> GetUserDelegationKey(
113  const Azure::DateTime& expiresOn,
115  const Azure::Core::Context& context = Azure::Core::Context()) const;
116 
129  Azure::Response<Models::SetServicePropertiesResult> SetProperties(
132  const Azure::Core::Context& context = Azure::Core::Context()) const;
133 
142  Azure::Response<Models::BlobServiceProperties> GetProperties(
144  const Azure::Core::Context& context = Azure::Core::Context()) const;
145 
153  Azure::Response<Models::AccountInfo> GetAccountInfo(
154  const GetAccountInfoOptions& options = GetAccountInfoOptions(),
155  const Azure::Core::Context& context = Azure::Core::Context()) const;
156 
166  Azure::Response<Models::ServiceStatistics> GetStatistics(
168  const Azure::Core::Context& context = Azure::Core::Context()) const;
169 
185  const std::string& tagFilterSqlExpression,
187  const Azure::Core::Context& context = Azure::Core::Context()) const;
188 
198  Azure::Response<BlobContainerClient> CreateBlobContainer(
199  const std::string& blobContainerName,
201  const Azure::Core::Context& context = Azure::Core::Context()) const;
202 
212  Azure::Response<Models::DeleteBlobContainerResult> DeleteBlobContainer(
213  const std::string& blobContainerName,
215  const Azure::Core::Context& context = Azure::Core::Context()) const;
216 
226  Azure::Response<BlobContainerClient> UndeleteBlobContainer(
227  const std::string deletedBlobContainerName,
228  const std::string deletedBlobContainerVersion,
230  const Azure::Core::Context& context = Azure::Core::Context()) const;
231 
232  private:
233  Azure::Core::Url m_serviceUrl;
234  std::shared_ptr<Azure::Core::Http::_internal::HttpPipeline> m_pipeline;
235  Azure::Nullable<EncryptionKey> m_customerProvidedKey;
236  Azure::Nullable<std::string> m_encryptionScope;
237  };
238 }}} // namespace Azure::Storage::Blobs
Azure::Storage::Blobs::BlobServiceClient::GetProperties
Azure::Response< Models::BlobServiceProperties > GetProperties(const GetServicePropertiesOptions &options=GetServicePropertiesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Gets the properties of a storage account's blob service, including properties for Storage Analytics a...
Definition: blob_service_client.cpp:171
Azure::Storage::Blobs::BlobContainerClient
Definition: blob_container_client.hpp:20
Azure::Storage::Blobs::GetUserDelegationKeyOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::GetUserDelegationKey.
Definition: blob_options.hpp:197
Azure::Storage::Blobs::GetAccountInfoOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::GetAccountInfo.
Definition: blob_options.hpp:223
Azure::Storage::Blobs::BlobServiceClient::DeleteBlobContainer
Azure::Response< Models::DeleteBlobContainerResult > DeleteBlobContainer(const std::string &blobContainerName, const DeleteBlobContainerOptions &options=DeleteBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Marks the specified blob container for deletion. The container and any blobs contained within it are ...
Definition: blob_service_client.cpp:240
Azure::Storage::Blobs::ListBlobContainersOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::ListBlobContainers.
Definition: blob_options.hpp:165
Azure::Storage::Blobs::FindBlobsByTagsPagedResponse
Response type for Azure::Storage::Blobs::BlobServiceClient::FindBlobsByTags.
Definition: blob_responses.hpp:247
Azure::Storage::Blobs::SetServicePropertiesOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::SetProperties.
Definition: blob_options.hpp:209
Azure::Storage::Blobs::BlobServiceClient::FindBlobsByTags
FindBlobsByTagsPagedResponse FindBlobsByTags(const std::string &tagFilterSqlExpression, const FindBlobsByTagsOptions &options=FindBlobsByTagsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
The Filter Blobs operation enables callers to list blobs across all containers whose tags match a giv...
Definition: blob_service_client.cpp:201
Azure::Storage::Blobs::BlobServiceClient
Definition: blob_service_client.hpp:20
Azure::Storage::Blobs::BlobClientOptions
Client options used to initialize all kinds of blob clients.
Definition: blob_options.hpp:135
Azure::Storage::Blobs::BlobServiceClient::GetAccountInfo
Azure::Response< Models::AccountInfo > GetAccountInfo(const GetAccountInfoOptions &options=GetAccountInfoOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns the sku name and account kind for the specified account.
Definition: blob_service_client.cpp:181
Azure::Storage::Blobs::BlobServiceClient::GetUserDelegationKey
Azure::Response< Models::UserDelegationKey > GetUserDelegationKey(const Azure::DateTime &expiresOn, const GetUserDelegationKeyOptions &options=GetUserDelegationKeyOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Retrieves a key that can be used to delegate Active Directory authorization to shared access signatur...
Definition: blob_service_client.cpp:147
Azure::Storage::Blobs::DeleteBlobContainerOptions
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::Delete.
Definition: blob_options.hpp:284
Azure::Storage::Blobs::Models::BlobServiceProperties
Properties of blob service.
Definition: blob_rest_client.hpp:1428
Azure::Storage::Blobs::FindBlobsByTagsOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::FindBlobsByTags.
Definition: blob_options.hpp:237
Azure::Storage::Blobs::GetBlobServiceStatisticsOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::GetStatistics.
Definition: blob_options.hpp:230
Azure::Storage::Blobs::BlobServiceClient::CreateBlobContainer
Azure::Response< BlobContainerClient > CreateBlobContainer(const std::string &blobContainerName, const CreateBlobContainerOptions &options=CreateBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Creates a new blob container under the specified account. If the container with the same name already...
Definition: blob_service_client.cpp:229
Azure::Storage::Blobs::UndeleteBlobContainerOptions
Optional parameters for #Azure::Storage::Blobs::BlobContainerClient::Undelete.
Definition: blob_options.hpp:295
Azure::Storage::Blobs::ListBlobContainersPagedResponse
Response type for Azure::Storage::Blobs::BlobServiceClient::ListBlobContainers.
Definition: blob_responses.hpp:215
Azure::Storage::Blobs::BlobServiceClient::UndeleteBlobContainer
Azure::Response< BlobContainerClient > UndeleteBlobContainer(const std::string deletedBlobContainerName, const std::string deletedBlobContainerVersion, const UndeleteBlobContainerOptions &options=UndeleteBlobContainerOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Restores a previously deleted container.
Definition: blob_service_client.cpp:249
Azure::Storage::Blobs::BlobServiceClient::CreateFromConnectionString
static BlobServiceClient CreateFromConnectionString(const std::string &connectionString, const BlobClientOptions &options=BlobClientOptions())
Initialize a new instance of BlobServiceClient.
Definition: blob_service_client.cpp:18
Azure::Storage::Blobs::BlobServiceClient::GetBlobContainerClient
BlobContainerClient GetBlobContainerClient(const std::string &blobContainerName) const
Creates a new BlobContainerClient object with the same URL as this BlobServiceClient....
Definition: blob_service_client.cpp:110
Azure::Storage::Blobs::GetServicePropertiesOptions
Optional parameters for Azure::Storage::Blobs::BlobServiceClient::GetProperties.
Definition: blob_options.hpp:216
Azure::Storage::Blobs::BlobServiceClient::BlobServiceClient
BlobServiceClient(const std::string &serviceUrl, std::shared_ptr< StorageSharedKeyCredential > credential, const BlobClientOptions &options=BlobClientOptions())
Initialize a new instance of BlobServiceClient.
Definition: blob_service_client.cpp:36
Azure::Storage::Blobs::BlobServiceClient::GetUrl
std::string GetUrl() const
Gets the blob service's primary URL endpoint.
Definition: blob_service_client.hpp:86
Azure::Storage::Blobs::BlobServiceClient::GetStatistics
Azure::Response< Models::ServiceStatistics > GetStatistics(const GetBlobServiceStatisticsOptions &options=GetBlobServiceStatisticsOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Retrieves statistics related to replication for the Blob service. It is only available on the seconda...
Definition: blob_service_client.cpp:191
Azure::Storage::Blobs::CreateBlobContainerOptions
Optional parameters for Azure::Storage::Blobs::BlobContainerClient::Create.
Definition: blob_options.hpp:256
Azure::Storage::Blobs::BlobServiceClient::SetProperties
Azure::Response< Models::SetServicePropertiesResult > SetProperties(Models::BlobServiceProperties properties, const SetServicePropertiesOptions &options=SetServicePropertiesOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Sets properties for a storage account's Blob service endpoint, including properties for Storage Analy...
Definition: blob_service_client.cpp:159
Azure::Storage::Blobs::BlobServiceClient::ListBlobContainers
ListBlobContainersPagedResponse ListBlobContainers(const ListBlobContainersOptions &options=ListBlobContainersOptions(), const Azure::Core::Context &context=Azure::Core::Context()) const
Returns a collection of blob containers in the storage account. Enumerating the blob containers may m...
Definition: blob_service_client.cpp:119