## 1.10.0 (2023-06-01)
### Features Added
- Added `Azure::Core::Uuid::AsArray()` and `Azure::Core::Uuid::CreateFromArray()` to enable reading or writing from an existing UUID. This is useful when the UUID was generated outside the Azure SDK, or needs to be used from a component outside the Azure SDK.
### Other Changes
- [[#3964]](https://github.com/Azure/azure-sdk-for-cpp/issues/3964) Ensuring some Azure SDK types have the expected default operations. (A community contribution, courtesy of _[jnyfah](https://github.com/jnyfah)_)
### Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jennifer Chukwu _([GitHub](https://github.com/jnyfah))_
* [azure-security-keyvault-administration-cpp] Update to 4.0.0-beta.3
* [azure-identity-cpp] Update to 1.5.0
## 1.5.0 (2023-05-04)
### Features Added
- Added support for challenge-based and multi-tenant authentication.
- Added `DefaultAzureCredential`.
### Bugs Fixed
- [[#4443]](https://github.com/Azure/azure-sdk-for-cpp/issues/4443) Fixed potentially high CPU usage on Windows.
### Other Changes
- Improved diagnostics to utilize `Azure::Core::Credentials::TokenCredential::GetCredentialName()`.
- Improved log messages.
* [azure-core-cpp] Update to 1.9.0
## 1.9.0 (2023-05-04)
### Features Added
- Added the ability to ignore invalid certificate common name for TLS connections in WinHTTP transport.
- Added `DisableTlsCertificateValidation` in `TransportOptions`.
- Added `TokenCredential::GetCredentialName()` to be utilized in diagnostic messages. If you have any custom implementations of `TokenCredential`, it is recommended to pass the name of your credential to `TokenCredential` constructor. The old parameterless constructor is deprecated.
- Added support for challenge-based and multi-tenant authentication.
### Bugs Fixed
- Fixed the UUID generation so the variant is RFC 4122 conforming.
### Other Changes
- [[#4352]](https://github.com/Azure/azure-sdk-for-cpp/pull/4352) Fixed compilation error on Visual Studio 2017. (A community contribution, courtesy of _[jorgen](https://github.com/jorgen)_)
### Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jorgen Lind _([GitHub](https://github.com/jorgen))_
---------
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
* [azure-core-cpp] Update to 1.8.0
## 1.8.0 (2023-02-02)
### Features Added
- Added support for parsing space character in place of 'T' in RFC3339 DateTimes.
- Added support for HTTP proxy servers, both unauthenticated and with basic authentication.
- Added universal support for several TLS options:
- Added the ability to set the expected TLS root certificate for TLS connection (useful if a proxy server uses a TLS certificate that is not chained to a known root).
- Added the ability to enable TLS certificate revocation list checks (off by default).
- For libcurl only: Allow TLS connection to succeed if CRL retrieval fails.
- *NOTE*: This change only applies if libcurl is built using the OpenSSL crypto backend. It does NOT apply if libcurl uses the schannel (Windows default) or SecureTransport (macOS/iOS default).
### Breaking Changes
- Changed the name of several distributed tracing HTTP span attributes:
- `requestId` is renamed to `az.client_request_id`
- `serviceRequestId` is renamed to `az.service_request_id`
- Bearer token authentication will not work for endpoint URL protocol schemes other than `"https"`. This ensures token security and is consistent with the Azure SDKs for other languages.
- Removed `noexcept` specification from `Azure::DateTime::clock::now()`.
- Updated retry policy timeouts to conform to Azure guidelines.
- The default delay between retries is changed from 4 seconds to 800ms.
- The maximum retry delay is changed from 2 minutes to 60 seconds (one minute).
If the original behavior is desired, customers can adjust these timeouts by changing the `RetryDelay` and `MaxRetryDelay` fields in the `RetryOptions` structure.
### Bugs Fixed
- Fixed bug in WinHTTP client which caused the `IgnoreUnknownCertificateAuthority` and `EnableCertificateRevocationListCheck` fields to be ignored if they were passed in from `TransportOptions`.
- [[#4206]](https://github.com/Azure/azure-sdk-for-cpp/issues/4206) Fixed connectivity issues in libcurl HTTP transport which can occur if a TCP connection is dropped prematurely. (A community contribution, courtesy of _[ahojnnes](https://github.com/ahojnnes)_)
### Other Changes
- Update distributed tracing attributes to align with current Azure Distributed Tracing Conventions attributes and names.
- Added the ability to consume version 1.1.1n of OpenSSL.
- Added support for Identity token caching, and for configuring token refresh offset in `BearerTokenAuthenticationPolicy`.
- Improved cancellation support for WinHTTP transport.
### Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Johannes Schonberger _([GitHub](https://github.com/ahojnnes))_
* [azure-core-tracing-opentelemetry-cpp] Update to 1.0.0-beta.4
## 1.0.0-beta.4 (2023-02-02)
### Features Added
- Aligned OpenTelemetry tracing infrastructure with OpenTelemetry 1.17.0 conventions for use with Azure Monitor.
### Other Changes
- Suppress several warnings from opentelemetry-cpp package.
* [curl] Update to 7.86.0
* [azure-core-cpp] Add missing Ws2_32.lib.
Filed upstream as https://github.com/Azure/azure-sdk-for-cpp/pull/4127
* [aws-sdk-cpp] Lock the selected curl features.
Co-authored-by: FrankXie <v-frankxie@microsoft.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* [azure-core-tracing-opentelemetry-cpp] Update to 1.0.0-beta.2
## 1.0.0-beta.2 (2022-06-30)
### Breaking Changes
- The `Azure::Core::Tracing::OpenTelemetry::OpenTelemetryProvider` type can only be instantiated via a factory method: `OpenTelemetryProvider::Create()`.
### Other Changes
- Removed `_internal` APIs from the public API surface. Also removed most of the `_internal` APIs from the public `opentelemetry.hpp` headers.
* [azure-core-cpp] Update to 1.7.0
## 1.7.0 (2022-06-30)
### Features Added
- Added prototypes and initial service support for Distributed Tracing.
## 1.5.0 (2022-03-31)
### Features Added
- When a `RequestFailedException` exception is thrown, the `what()` method now includes information about the HTTP request which failed.
- Adding option `WinHttpTransportOptions.IgnoreUnknownCertificateAuthority`. It can be used to disable verifying server certificate for the `WinHttpTransport`.
### Breaking Changes
- Enforce TLS 1.2 or greater for `CurlTransport` and `WinHttpTransport`.
### Other Changes
- Improve output message for `Azure::Core::Http::TransportException`.
## 1.2.1 (2021-09-02)
### Bugs Fixed
- [2785](https://github.com/Azure/azure-sdk-for-cpp/issues/2785) Fix to build on g++ 5.5.
### Other Changes
- Fixed compilation error on POSIX platforms where OpenSSL was not available.
- Support CMake version 3.12
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
## 1.2.0 (2021-08-05)
### Features Added
- Added `Azure::Core::IO::ProgressBodyStream` type that wraps an existing BodyStream based type stream and reports progress via callback when the stream position is updated.
### Bugs Fixed
- [2647](https://github.com/Azure/azure-sdk-for-cpp/issues/2647) Make the curl transport adapter to check the connection close header.
- [2474](https://github.com/Azure/azure-sdk-for-cpp/issues/2474) Fix compiling with MSVC and `/analyze`.
- Make WinHTTP transport adapter to NOT use SSL/TLS for unsecured HTTP connections.
### Other Changes
- Updated source code to build with Clang 11. (A community contribution, courtesy of _[davidchisnall](https://github.com/davidchisnall)_)
### Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- David Chisnall _([GitHub](https://github.com/davidchisnall))_
* [azure-core-cpp] Update to 1.1.0
## 1.1.0 (2021-07-02)
### Bugs Fixed
- Fixed a memory leak issue in `Base64Encode()`. (A community contribution, courtesy of _[jorgen](https://github.com/jorgen)_)
### Other Changes
- Made internal-only changes to support the Azure Key Vault client library.
### Acknowledgments
Thank you to our developer community members who helped to make Azure Core better with their contributions to this release:
- Jorgen Lind _([GitHub](https://github.com/jorgen))_
* [azure-storage-common-cpp] Update to 12.0.1
## 12.0.1 (2021-07-07)
### Bug Fixes
- Fixed a memory leak issue while parsing XML.
* [azure-storage-blobs-cpp] Update to 12.0.1
## 12.0.1 (2021-07-07)
### Bug Fixes
- Fixed a bug where transactional MD5 hash was treated as blob MD5 hash when downloading partial blob.
* [azure-storage-files-datalake-cpp] Update to 12.0.1
## 12.0.1 (2021-07-07)
### Bug Fixes
- Fixed a bug where transactional MD5 hash was treated as blob MD5 hash when downloading partial blob.
* [azure-storage-files-shares-cpp] Update to 12.0.1
## 12.0.1 (2021-07-07)
No API changes since `12.0.0`.
* Remove curl version from vcpkg manifest
* Update version files
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* [azure-core-cpp] Update to 1.0.0
## 1.0.0 (2021-06-04)
### Bug Fixes
- Make `RequestFailedException` copiable so it can be propagated across thread.
- By default, add `x-ms-request-id` header to the allow list of headers to log.
* [azure-identity-cpp] Update to 1.0.0
## 1.0.0 (2021-06-04)
No API changes since `1.0.0-beta.6`.
* [azure-core-cpp] Update to 1.0.0-beta.9
## 1.0.0-beta.9 (2021-05-18)
### New Features
- Added `Azure::PagedResponse<T>`.
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Removed `Context::GetApplicationContext()` in favor of a new static data member `Context::ApplicationContext`.
- Renamed `Request::IsDownloadViaStream()` to `ShouldBufferResponse()`.
- Removed the `Azure::Core::Http::Request` ctor overload that takes both a `bodyStream` and a `bufferedDownload` boolean since it is not useful.
- Changed integer size parameters for buffers from `int64_t` to `size_t` in various places such as `Azure::Core::IO::BodyStream::Read()` APIs.
- Removed the `Azure::Core::Diagnostics::Logger::Listener` typedef.
### Bug Fixes
- Do not re-use a libcurl connection to same host but different port.
- Fixed curl transport issue to avoid crash at exit when curl connection pool cleanup thread is running.
- Ensure uniqueness of `Azure::Core::Uuid` on POSIX platforms.
### Other Changes and Improvements
- Modified precondition validation of function arguments to now result in assert failures rather than throwing an exception.
- Remove exposing windows.h header from our public headers.
- Improved performance of the WinHTTP transport layer on Windows for uploading large payloads.
* [azure-identity-cpp] Update to 1.0.0-beta.6
## 1.0.0-beta.6 (2021-05-18)
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
* [azure-security-keyvault-common-cpp] Update to 4.0.0-beta.2
## 4.0.0-beta.2 (2021-05-18)
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Removed `KeyVaultException`.
- Removed `ClientOptions`.
* [azure-security-keyvault-keys-cpp] Update to 4.0.0-beta.2
## 4.0.0-beta.2 (2021-05-18)
### New Features
- Added support for importing and deserializing EC and OCT keys.
- Added cryptography client.
- Added `CreateFromResumeToken()` to `DeletedKeyOperation` and `RecoverKeyOperation`.
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Renamed `GetPropertiesOfKeysSinglePage()` to `GetPropertiesOfKeys()`.
- Renamed `GetPropertiesOfKeyVersionsSinglePage()` to `GetPropertiesOfKeyVersions()`.
- Renamed `GetDeletedKeysSinglePage()` to `GetDeletedKeys()`.
- Renamed `KeyPropertiesSinglePage` to `KeyPropertiesPageResult`.
- Renamed `DeletedKeySinglePage` to `DeletedKeyPageResult`.
- Renamed `GetPropertiesOfKeysSinglePageOptions` to `GetPropertiesOfKeysOptions`.
- Renamed `GetPropertiesOfKeyVersionsSinglePageOptions` to `GetPropertiesOfKeyVersionsOptions`.
- Renamed `GetDeletedKeysSinglePageOptions` to `GetDeletedKeysOptions`.
- Removed `Azure::Security::KeyVault::Keys::JsonWebKey::to_json`.
- Replaced static functions from `KeyOperation` and `KeyCurveName` with static const members.
- Replaced the enum `JsonWebKeyType` for a class with static const members as an extensible enum called `KeyVaultKeyType`.
- Renamed `MaxResults` to `MaxPageResults` for `GetSinglePageOptions`.
- Changed the returned type for list keys, key versions, and deleted keys from `Response<T>` to `PagedResponse<T>` affecting:
- `GetPropertiesOfKeysSinglePage()` and `GetPropertiesOfKeyVersionsSinglePage()` now returns `KeyProperties`.
- `GetDeletedKeysSinglePage()` now returns `DeletedKey`.
- Removed `ResumeDeleteKeyOperation()` and `ResumeRecoverKeyOperation()`.
### Bug Fixes
- Fix getting a resume token from delete and recover key operations.
* [azure-storage-common-cpp] Update to 12.0.0-beta.11
## 12.0.0-beta.11 (2021-05-19)
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Removed `Azure::PagedResponse<T>`.
### Bug Fixes
- Fixed a stream leak issue in `ReliableStream`.
* [azure-storage-blobs-cpp] Update to 12.0.0-beta.11
## 12.0.0-beta.11 (2021-05-19)
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Renamed `HasMorePages()` in paged response to `HasPage()`.
- Default chunk size for concurrent upload was changed to nullable.
- `BlobLeaseClient::Change()` updates internal lease id.
- Removed `ContentType` from `GetBlockListResult`.
- Moved `GetPageRangesResult` to detail namespace.
- `BlobServiceClient::UndeleteBlobContainer` doesn't support restoring a deleted container under a different name anymore.
- Changed the type of block count to `int32_t`.
* [azure-storage-files-datalake-cpp] Update to 12.0.0-beta.11
## 12.0.0-beta.11 (2021-05-19)
### New Features
- Added `DataLakePathClient::SetAccessControlListRecursive()`, `UpdateAccessControlListRecursive()` and `RemoveAccessControlListRecursive()`.
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Renamed `HasMorePages()` in paged response to `HasPage()`.
- Default chunk size for concurrent upload was changed to nullable.
- `DataLakeLeaseClient::Change()` updates internal lease id.
* [azure-storage-files-shares-cpp] Update to 12.0.0-beta.11
## 12.0.0-beta.11 (2021-05-19)
### New Features
- Added `ShareDirectoryClient::ForceCloseAllHandles()` and `ShareFileClient::ForceCloseAllHandles()`.
### Breaking Changes
- Added `final` specifier to classes and structures that are are not expected to be inheritable at the moment.
- Renamed `HasMorePages()` in paged response to `HasPage()`.
- `ShareLeaseClient::Change()` updates internal lease id.
- `ShareItem::ShareMetadata` was renamed to `ShareItem::Metadata`.
* [azure-sdk-for-cpp] Upgrade vcpkg manifest files
* Update version files
* vcpkg format-manifest
* Update version files
* Minor change to re-trigger CI
* Undo that minor change
* Bump up port-version
* Update x-add-version
* redo x-add-version without overwrite
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* [azure-core-cpp] Update to 1.0.0-beta.8
## 1.0.0-beta.8 (2021-04-07)
### New Features
- Added `Azure::Core::Url::GetScheme()`.
- Added `Azure::Core::Context::TryGetValue()`.
- Added `Azure::Core::Context::GetDeadline()`.
- Added `Azure::Core::Credentials::TokenCredentialOptions`.
- Added useful fields to the `Azure::Core::RequestFailedException` class such as `StatusCode`, `ReasonPhrase`, and the `RawResponse`, for better diagnosis of errors.
### Breaking Changes
- Simplified the `Response<T>` API surface to expose two public fields with direct access: `T Value` and a `unique_ptr` to an `Azure::Core::Http::RawResponse`.
- Renamed `Azure::Nullable<T>::GetValue()` to `Value()`.
- Removed from `Azure::Core::Http::Request`:
- `SetUploadChunkSize()`.
- `GetHTTPMessagePreBody()`.
- `GetUploadChunkSize()`.
- `GetHeadersAsString()`.
- Changes to `Azure::Core::Http::RawResponse`:
- Removed `SetHeader(std::string const& header)`
- Removed `SetHeader(uint8_t const* const first, uint8_t const* const last)`.
- Removed `GetMajorVersion()`.
- Removed `GetMinorVersion()`.
- Renamed `GetBodyStream()` to `ExtractBodyStream()`.
- Changes to `Azure::Core::Context`:
- Removed `Get()` and `HasKey()` in favor of a new method `TryGetValue()`.
- Changed input parameter type of `WithDeadline()` to `Azure::DateTime`.
- Removed `Azure::Core::PackageVersion`.
- Removed from `Azure::Core::Http::Policies` namespace: `HttpPolicyOrder`, `TransportPolicy`, `RetryPolicy`, `RequestIdPolicy`, `TelemetryPolicy`, `BearerTokenAuthenticationPolicy`, `LogPolicy`.
- Removed `AppendQueryParameters()`, `GetUrlWithoutQuery()` and `GetUrlAuthorityWithScheme()` from `Azure::Core::Url`.
- Changed the `Azure::Core::Http::HttpMethod` regular enum into an extensible enum class and removed the `HttpMethodToString()` helper method.
- Introduced `Azure::Core::Context::Key` class which takes place of `std::string` used for `Azure::Core::Context` keys previously.
- Changed the casing of `SSL` in API names to `Ssl`:
- Renamed type `Azure::Core::Http::CurlTransportSSLOptions` to `CurlTransportSslOptions`.
- Renamed member `Azure::Core::Http::CurlTransportOptions::SSLOptions` to `SslOptions`.
- Renamed member `Azure::Core::Http::CurlTransportOptions::SSLVerifyPeer` to `SslVerifyPeer`.
### Other changes and Improvements
- Moved `Azure::Core::Http::Request` to its own header file from `http.hpp` to `inc/azure/core/http/raw_response.hpp`.
- Moved `Azure::Core::Http::HttpStatusCode` to its own header file from `http.hpp` to `inc/azure/core/http/http_status_code.hpp`.
* [azure-identity-cpp] Update to 1.0.0-beta.5
## 1.0.0-beta.5 (2021-04-07)
### New Features
- Add Active Directory Federation Service (ADFS) support to `ClientSecretCredential`.
### Breaking Changes
- Removed `Azure::Identity::PackageVersion`.
* [azure-storage-common-cpp] Update to 12.0.0-beta.10
## 12.0.0-beta.10 (2021-04-16)
### New Features
- Added server timeout support.
- Added `PagedResponse<T>` for returning paginated collections.
### Breaking Changes
- Removed `Azure::Storage::Common::PackageVersion`.
- Moved `ReliableStream` to internal namespace.
- Removed `HttpGetterInfo` and `HTTPGetter` from the `Azure::Storage` namespace.
* [azure-storage-blobs-cpp] Update to 12.0.0-beta.10
## 12.0.0-beta.10 (2021-04-16)
### Breaking Changes
- Removed `Azure::Storage::Blobs::PackageVersion`.
- Renamed `GetUserDelegationKeyOptions::startsOn` to `StartsOn`.
- Replaced all paginated collection functions that have the SinglePage suffix with pageable functions returning a `PagedResponse<T>`-derived type. The options are also renamed accordingly.
- `BlobServiceClient::ListBlobContainers()`.
- `BlobServiceClient::FindBlobsByTags()`.
- `BlobContainerClinet::ListBlobs()`.
- `BlobContainerClient::ListBlobsByHierarchy()`.
- `PageBlobClient::GetPageRanges()`.
- `PageBlobClient::GetPageRangesDiff()`.
- `PageBlobClient::GetManagedDiskPageRangesDiff()`.
- Renamed `FilterBlobItem` to `TaggedBlobItem`.
- `FindBlobsByTags()` now returns `FindBlobsByTagsPagedResponse` and the field `FindBlobsByTagsSinglePageResult::Items` was renamed to `FindBlobsByTagsPagedResponse::TaggedBlobs`.
* [azure-storage-files-datalake-cpp] Update to 12.0.0-beta.10
## 12.0.0-beta.10 (2021-04-16)
### Breaking Changes
- Removed `Azure::Storage::Files::DataLake::PackageVersion`.
- Renamed `GetUserDelegationKeyOptions::startsOn` to `StartsOn`.
- Replaced all paginated collection functions that have the SinglePage suffix with pageable functions returning a `PagedResponse<T>`-derived type. The options are also renamed accordingly.
- `DataLakeServiceClient::ListFileSystems()`.
- `DataLakeFileSystemClient::ListPaths()`.
- `DataLakeDirectoryClient::ListPaths()`.
- Removed `DataLakePathClient::SetAccessControlListRecursiveSinglePage()`, `UpdateAccessControlListRecursiveSinglePage()` and `RemoveAccessControlListRecursiveSinglePage()`.
### Bug Fixes
- Rename functions always fail because `/` was left out in the renamed source path.
* [azure-storage-files-shares-cpp] Update to 12.0.0-beta.10
## 12.0.0-beta.10 (2021-04-16)
### Breaking Changes
- Removed `Azure::Storage::Files::Shares::PackageVersion`.
- Renamed `GetUserDelegationKeyOptions::startsOn` to `StartsOn`.
- Removed `ShareClient::ListFilesAndDirectories()`.
- Replaced all paginated collection functions that have the SinglePage suffix with pageable functions returning a `PagedResponse<T>`-derived type. The options are also renamed accordingly.
- `ShareServiceClient::ListShares()`.
- `ShareDirectoryClient::ListFilesAndDirectories()`.
- `ShareDirectoryClient::ListHandles()`.
- `ShareFileClient::ListHandles()`.
- Removed `ShareDirectoryClient::ForceCloseAllHandlesSinglePage()` and `ShareFileClient::ForceCloseAllHandlesSinglePage()`.
* Update vcpkg ports to use a manifest json file instead of a CONTROL file.
* Update git tree sha versions using the command 'x-add-version --all --overwrite-version'
Co-authored-by: Ahson Khan <ahkha@microsoft.com>
* Update port for azure-core-cpp
* Update port version SHA
* Apply suggestions from code review
Remove comment headers from port files
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
* Update port version SHA once again
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
Co-authored-by: Anton Kolesnyk <41349689+antkmsft@users.noreply.github.com>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>