Add project skeleton and check-in snapshot of generated SDK for Azure App Configuration. (#6176)

* Add project skeleton and check-in snapshot of generated SDK for Azure App Configuration.

* Add new line at eof

* Add exclusion to the cspell issue.

* Explicitly use size_t instead of auto for iterating through a vector

* Add another cspell exclusion, since it is case-sensitive

* Address PR feedback, update CL, package version.

* Update readme to remove template project content.

* Exclude appconfig from recordings, since none exist atm.

* Temporarily exclude appconfiguration from docs generation.

* Add line/branch coverage thresholds and skip publishing docs if they don't exist.
This commit is contained in:
Ahson Khan 2024-11-08 12:28:18 -08:00 committed by GitHub
parent 3ca9fe5540
commit d46cdad67f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
28 changed files with 3983 additions and 1 deletions

5
.github/CODEOWNERS vendored
View File

@ -32,6 +32,11 @@
# Client SDKs
###########
# AzureSdkOwners: @ahsonkhan
# ServiceLabel: %App Configuration
# PRLabel: %App Configuration
/sdk/appconfiguration/ @ahsonkhan @LarryOsterman @antkmsft @gearama @RickWinter
# ServiceOwners: @gkostal @anilba06 @ahmadmsft
# ServiceLabel: %Attestation

2
.vscode/cspell.json vendored
View File

@ -153,6 +153,8 @@
"Kirilov",
"koreacentral",
"Kouhei",
"kvset",
"Kvset",
"lcov",
"LIBCMTD",
"LINUXNEXTVMIMAGE",

View File

@ -158,6 +158,7 @@ endif()
# sub-projects
add_subdirectory(sdk/core)
add_subdirectory(sdk/appconfiguration)
add_subdirectory(sdk/attestation)
# AMQP doesn't work for UWP yet, and eventhubs depends on AMQP, so we cannot include eventhubs on UWP.
if (NOT BUILD_WINDOWS_UWP)

View File

@ -244,6 +244,12 @@ jobs:
- script: cmake --build . --target ${{ artifact.Path }}-docs
workingDirectory: build
displayName: Generate docs (${{ artifact.Name }}-docs)
condition: and(succeeded(), ne('${{parameters.ServiceDirectory}}', 'appconfiguration'))
- pwsh: |
$docsfileExists = Test-Path -Path "build/sdk/${{ parameters.ServiceDirectory }}/${{ artifact.Path }}/docs/html"
Write-Output "##vso[task.setvariable variable=DocsFileExists]$docsfileExists"
displayName: Check if docs exist for ${{ artifact.Name }}
- template: /eng/common/pipelines/templates/steps/verify-links.yml
parameters:
@ -252,6 +258,7 @@ jobs:
CheckLinkGuidance: $false
Recursive: $true
WorkingDirectory: build/sdk/${{ parameters.ServiceDirectory }}/${{ artifact.Path }}/docs/html
condition: and(succeeded(), eq(variables['DocsFileExists'], True))
- task: PowerShell@2
inputs:
@ -350,5 +357,6 @@ jobs:
parameters:
ArtifactPath: $(Build.ArtifactStagingDirectory)/docs
ArtifactName: docs
CustomCondition: eq(variables['DocsFileExists'], True)
- template: /eng/common/pipelines/templates/steps/eng-common-workflow-enforcer.yml

View File

@ -216,7 +216,7 @@ jobs:
test-proxy restore -a $(Build.SourcesDirectory)/sdk/${{parameters.ServiceDirectory}}
workingDirectory: '$(Build.SourcesDirectory)/sdk/${{parameters.ServiceDirectory}}'
displayName: Restore Recordings
condition: and(succeeded(), contains(variables.CmakeArgs, 'BUILD_TESTING=ON'), ne('${{parameters.ServiceDirectory}}', 'core'),ne('${{parameters.ServiceDirectory}}', 'template'))
condition: and(succeeded(), contains(variables.CmakeArgs, 'BUILD_TESTING=ON'), ne('${{parameters.ServiceDirectory}}', 'core'), ne('${{parameters.ServiceDirectory}}', 'template'), ne('${{parameters.ServiceDirectory}}', 'appconfiguration'))
name: RestoreRecordings
- pwsh: |

View File

@ -0,0 +1,11 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cmake_minimum_required (VERSION 3.13)
project (azure-data-appconfiguration LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
add_subdirectory(azure-data-appconfiguration)

View File

@ -0,0 +1,13 @@
# Release History
## 1.0.0-beta.1 (Unreleased)
### Features Added
- Initial release.
### Breaking Changes
### Bugs Fixed
### Other Changes

View File

@ -0,0 +1,101 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# setting CMAKE_TOOLCHAIN_FILE must happen before creating the project
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake-modules")
include(AzureVcpkg)
az_vcpkg_integrate()
cmake_minimum_required (VERSION 3.13)
project(azure-data-appconfiguration LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
if(NOT AZ_ALL_LIBRARIES)
find_package(azure-core-cpp CONFIG QUIET)
if(NOT azure-core-cpp_FOUND)
find_package(azure-core-cpp REQUIRED)
endif()
endif()
include(AzureVersion)
include(AzureCodeCoverage)
include(AzureTransportAdapters)
include(AzureDoxygen)
include(AzureGlobalCompileOptions)
include(AzureConfigRTTI)
include(AzureBuildTargetForCI)
# Add create_map_file function
include(CreateMapFile)
if(NOT AZ_ALL_LIBRARIES)
find_package(azure-core-cpp CONFIG QUIET)
if(NOT azure-core-cpp_FOUND)
find_package(azure-core-cpp REQUIRED)
endif()
endif()
set(
AZURE_DATA_APPCONFIGURATION_HEADER
inc/azure/data/appconfiguration.hpp
inc/azure/data/appconfiguration/configuration_client.hpp
inc/azure/data/appconfiguration/configuration_client_models.hpp
inc/azure/data/appconfiguration/configuration_client_options.hpp
inc/azure/data/appconfiguration/dll_import_export.hpp
inc/azure/data/appconfiguration/rtti.hpp
)
set(
AZURE_DATA_APPCONFIGURATION_SOURCE
src/private/package_version.hpp
src/configuration_client.cpp
)
add_library(azure-data-appconfiguration ${AZURE_DATA_APPCONFIGURATION_HEADER} ${AZURE_DATA_APPCONFIGURATION_SOURCE})
target_compile_definitions(azure-data-appconfiguration PRIVATE _azure_BUILDING_SDK)
create_per_service_target_build(appconfiguration azure-data-appconfiguration)
target_include_directories(
azure-data-appconfiguration
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
$<INSTALL_INTERFACE:include>
)
target_link_libraries(azure-data-appconfiguration PUBLIC Azure::azure-core)
# make sure that users can consume the project as a library.
add_library(Azure::azure-data-appconfiguration ALIAS azure-data-appconfiguration)
# coverage. Has no effect if BUILD_CODE_COVERAGE is OFF
create_code_coverage(appconfiguration azure-data-appconfiguration azure-data-appconfiguration-test "tests?/*;samples?/*")
get_az_version("${CMAKE_CURRENT_SOURCE_DIR}/src/private/package_version.hpp")
set_target_properties(azure-data-appconfiguration PROPERTIES VERSION ${AZ_LIBRARY_VERSION})
generate_documentation(azure-data-appconfiguration ${AZ_LIBRARY_VERSION})
az_vcpkg_export(
azure-data-appconfiguration
DATA_APPCONFIGURATION
"azure/data/appconfiguration/dll_import_export.hpp"
)
az_rtti_setup(
azure-data-appconfiguration
DATA_APPCONFIGURATION
"azure/data/appconfiguration/rtti.hpp"
)
if(BUILD_TESTING)
if (NOT AZ_ALL_LIBRARIES OR FETCH_SOURCE_DEPS)
include(AddGoogleTest)
enable_testing ()
endif()
# tests
add_subdirectory(test/ut)
endif()

View File

@ -0,0 +1,32 @@
azure-data-appconfiguration
NOTICES AND INFORMATION
Do Not Translate or Localize
This software incorporates material from third parties. Microsoft makes certain
open source code available at https://3rdpartysource.microsoft.com, or you may
send a check or money order for US $5.00, including the product name, the open
source component name, and version number, to:
Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA
Notwithstanding any other terms, you may reverse engineer this software to the
extent required to debug changes to any libraries licensed under the GNU Lesser
General Public License.
------------------------------------------------------------------------------
Azure SDK for C++ uses third-party libraries or other resources that may be
distributed under licenses different than the Azure SDK for C++ software.
In the event that we accidentally failed to list a required notice, please
bring it to our attention. Post an issue or email us:
azcppsdkhelp@microsoft.com
The attached notices are provided for information only.

View File

@ -0,0 +1,66 @@
# Azure App Configuration Package client library for C++
## Getting started
### Prerequisites
- [vcpkg](https://learn.microsoft.com/vcpkg/get_started/overview) for package acquisition and dependency management.
- [CMake](https://cmake.org/download/) for project build.
- An [Azure subscription][azure_sub].
- An existing Azure App Configuration store. If you need to create an Azure App Configuration store, you can use the Azure Portal or [Azure CLI][azure_cli].
### Install the package
## Key concepts
Bullet point list of your library's main concepts.
# Examples
Examples of some of the key concepts for your library.
## Troubleshooting
Running into issues? This section should contain details as to what to do there.
## Next steps
More sample code should go here, along with links out to the appropriate example tests.
## Contributing
For details on contributing to this repository, see the [contributing guide][azure_sdk_for_cpp_contributing].
This project welcomes contributions and suggestions. Most contributions require you to agree to a
Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
### Additional Helpful Links for Contributors
Many people all over the world have helped make this project better. You'll want to check out:
* [What are some good first issues for new contributors to the repo?](https://github.com/azure/azure-sdk-for-cpp/issues?q=is%3Aopen+is%3Aissue+label%3A%22up+for+grabs%22)
* [How to build and test your change][azure_sdk_for_cpp_contributing_developer_guide]
* [How you can make a change happen!][azure_sdk_for_cpp_contributing_pull_requests]
* Frequently Asked Questions (FAQ) and Conceptual Topics in the detailed [Azure SDK for C++ wiki](https://github.com/azure/azure-sdk-for-cpp/wiki).
<!-- ### Community-->
### Reporting security issues and security bugs
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) <secure@microsoft.com>. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the [Security TechCenter](https://www.microsoft.com/msrc/faqs-report-an-issue).
### License
Azure SDK for C++ is licensed under the [MIT](https://github.com/Azure/azure-sdk-for-cpp/blob/main/LICENSE.txt) license.
<!-- LINKS -->
[azure_sdk_for_cpp_contributing]: https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md
[azure_sdk_for_cpp_contributing_developer_guide]: https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#developer-guide
[azure_sdk_for_cpp_contributing_pull_requests]: https://github.com/Azure/azure-sdk-for-cpp/blob/main/CONTRIBUTING.md#pull-requests
[azure_cli]: https://docs.microsoft.com/cli/azure
[azure_sub]: https://azure.microsoft.com/free/

View File

@ -0,0 +1,37 @@
{
"$schema": "https://json.schemastore.org/component-detection-manifest.json",
"Registrations": [
{
"Component": {
"Type": "git",
"git": {
"RepositoryUrl": "https://github.com/google/googletest",
"CommitHash": "703bd9caab50b139428cea1aaff9974ebee5742e"
}
},
"DevelopmentDependency": true
},
{
"Component": {
"Type": "other",
"Other": {
"Name": "clang-format",
"Version": "9.0.0-2",
"DownloadUrl": "https://ubuntu.pkgs.org/18.04/ubuntu-updates-universe-amd64/clang-format-9_9-2~ubuntu18.04.2_amd64.deb.html"
}
},
"DevelopmentDependency": true
},
{
"Component": {
"Type": "other",
"Other": {
"Name": "doxygen",
"Version": "1.8.20",
"DownloadUrl": "http://doxygen.nl/files/doxygen-1.8.20-setup.exe"
}
},
"DevelopmentDependency": true
}
]
}

View File

@ -0,0 +1,18 @@
{
"sourceFilesToProcess": null,
"sourceFilesToSkip": [
],
"additionalIncludeDirectories": [
"../../../core/azure-core/inc"
],
"additionalCompilerSwitches": [
"-D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH"
],
"allowInternal": false,
"includeDetail": false,
"includePrivate": false,
"filterNamespace": "Azure::Data::AppConfiguration",
"reviewName": "Azure Data AppConfiguration Review",
"serviceName": "Azure App Configuration",
"packageName": "azure-data-appconfiguration-cpp"
}

View File

@ -0,0 +1,15 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* @brief Includes all public headers from Azure App Configuration SDK library.
*
*/
#pragma once
#include "azure/data/appconfiguration/configuration_client.hpp"
#include "azure/data/appconfiguration/configuration_client_models.hpp"
#include "azure/data/appconfiguration/configuration_client_options.hpp"
#include "azure/data/appconfiguration/dll_import_export.hpp"
#include "azure/data/appconfiguration/rtti.hpp"

View File

@ -0,0 +1,156 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) TypeSpec Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
#pragma once
#include "configuration_client_models.hpp"
#include "configuration_client_options.hpp"
#include <azure/core/context.hpp>
#include <azure/core/credentials/credentials.hpp>
#include <azure/core/internal/extendable_enumeration.hpp>
#include <azure/core/internal/http/pipeline.hpp>
#include <azure/core/nullable.hpp>
#include <azure/core/paged_response.hpp>
#include <azure/core/response.hpp>
#include <azure/core/url.hpp>
#include <azure/core/uuid.hpp>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
namespace Azure { namespace Data { namespace AppConfiguration {
class ConfigurationClient final {
public:
explicit ConfigurationClient(
std::string const& url,
std::shared_ptr<Core::Credentials::TokenCredential> const& credential,
ConfigurationClientOptions options = {});
std::string GetUrl() const;
GetKeysPagedResponse GetKeys(
std::string const& accept,
GetKeysOptions const& options = {},
Core::Context const& context = {});
Response<CheckKeysResult> CheckKeys(
CheckKeysOptions const& options = {},
Core::Context const& context = {});
GetKeyValuesPagedResponse GetKeyValues(
std::string const& accept,
GetKeyValuesOptions const& options = {},
Core::Context const& context = {});
Response<CheckKeyValuesResult> CheckKeyValues(
CheckKeyValuesOptions const& options = {},
Core::Context const& context = {});
Response<GetKeyValueResult> GetKeyValue(
std::string const& key,
std::string const& accept,
GetKeyValueOptions const& options = {},
Core::Context const& context = {});
Response<PutKeyValueResult> PutKeyValue(
PutKeyValueRequestContentType const& contentType,
std::string const& key,
std::string const& accept,
PutKeyValueOptions const& options = {},
Core::Context const& context = {});
Response<DeleteKeyValueResult> DeleteKeyValue(
std::string const& key,
std::string const& accept,
DeleteKeyValueOptions const& options = {},
Core::Context const& context = {});
Response<CheckKeyValueResult> CheckKeyValue(
std::string const& key,
CheckKeyValueOptions const& options = {},
Core::Context const& context = {});
GetSnapshotsPagedResponse GetSnapshots(
std::string const& accept,
GetSnapshotsOptions const& options = {},
Core::Context const& context = {});
Response<CheckSnapshotsResult> CheckSnapshots(
CheckSnapshotsOptions const& options = {},
Core::Context const& context = {});
Response<GetSnapshotResult> GetSnapshot(
std::string const& name,
std::string const& accept,
GetSnapshotOptions const& options = {},
Core::Context const& context = {});
Response<OperationDetails> GetOperationDetails(
std::string const& snapshot,
GetOperationDetailsOptions const& options = {},
Core::Context const& context = {});
Response<CreateSnapshotResult> CreateSnapshot(
CreateSnapshotRequestContentType const& contentType,
std::string const& name,
std::string const& accept,
Snapshot const& entity,
CreateSnapshotOptions const& options = {},
Core::Context const& context = {});
Response<UpdateSnapshotResult> UpdateSnapshot(
UpdateSnapshotRequestContentType const& contentType,
std::string const& name,
std::string const& accept,
SnapshotUpdateParameters const& entity,
UpdateSnapshotOptions const& options = {},
Core::Context const& context = {});
Response<CheckSnapshotResult> CheckSnapshot(
std::string const& name,
CheckSnapshotOptions const& options = {},
Core::Context const& context = {});
GetLabelsPagedResponse GetLabels(
std::string const& accept,
GetLabelsOptions const& options = {},
Core::Context const& context = {});
Response<CheckLabelsResult> CheckLabels(
CheckLabelsOptions const& options = {},
Core::Context const& context = {});
Response<PutLockResult> PutLock(
std::string const& key,
std::string const& accept,
PutLockOptions const& options = {},
Core::Context const& context = {});
Response<DeleteLockResult> DeleteLock(
std::string const& key,
std::string const& accept,
DeleteLockOptions const& options = {},
Core::Context const& context = {});
GetRevisionsPagedResponse GetRevisions(
std::string const& accept,
GetRevisionsOptions const& options = {},
Core::Context const& context = {});
Response<CheckRevisionsResult> CheckRevisions(
CheckRevisionsOptions const& options = {},
Core::Context const& context = {});
private:
std::shared_ptr<Core::Http::_internal::HttpPipeline> m_pipeline;
Core::Url m_url;
std::string m_apiVersion;
};
}}} // namespace Azure::Data::AppConfiguration

View File

@ -0,0 +1,614 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) TypeSpec Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
#pragma once
#include "configuration_client_options.hpp"
#include "dll_import_export.hpp"
#include <azure/core/context.hpp>
#include <azure/core/internal/extendable_enumeration.hpp>
#include <azure/core/nullable.hpp>
#include <azure/core/paged_response.hpp>
#include <azure/core/url.hpp>
#include <azure/core/uuid.hpp>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
namespace Azure { namespace Data { namespace AppConfiguration {
class ConfigurationClient;
struct GetKeysOptions;
struct GetKeyValuesOptions;
struct GetSnapshotsOptions;
struct GetLabelsOptions;
struct GetRevisionsOptions;
class GetKeysResponseContentType final
: public Core::_internal::ExtendableEnumeration<GetKeysResponseContentType> {
public:
GetKeysResponseContentType() = default;
explicit GetKeysResponseContentType(std::string getKeysResponseContentType)
: ExtendableEnumeration(std::move(getKeysResponseContentType))
{
}
static GetKeysResponseContentType const ApplicationVndMicrosoftAppconfigKeysetJson;
static GetKeysResponseContentType const ApplicationProblemJson;
};
class GetKeyValuesResponseContentType final
: public Core::_internal::ExtendableEnumeration<GetKeyValuesResponseContentType> {
public:
GetKeyValuesResponseContentType() = default;
explicit GetKeyValuesResponseContentType(std::string getKeyValuesResponseContentType)
: ExtendableEnumeration(std::move(getKeyValuesResponseContentType))
{
}
static GetKeyValuesResponseContentType const ApplicationVndMicrosoftAppconfigKvsetJson;
static GetKeyValuesResponseContentType const ApplicationProblemJson;
};
class KeyValueFields final : public Core::_internal::ExtendableEnumeration<KeyValueFields> {
public:
KeyValueFields() = default;
explicit KeyValueFields(std::string keyValueFields)
: ExtendableEnumeration(std::move(keyValueFields))
{
}
static KeyValueFields const Key;
static KeyValueFields const Label;
static KeyValueFields const ContentType;
static KeyValueFields const Value;
static KeyValueFields const LastModified;
static KeyValueFields const Tags;
static KeyValueFields const Locked;
static KeyValueFields const Etag;
};
class PutKeyValueRequestContentType final
: public Core::_internal::ExtendableEnumeration<PutKeyValueRequestContentType> {
public:
PutKeyValueRequestContentType() = default;
explicit PutKeyValueRequestContentType(std::string putKeyValueRequestContentType)
: ExtendableEnumeration(std::move(putKeyValueRequestContentType))
{
}
static PutKeyValueRequestContentType const ApplicationVndMicrosoftAppconfigKvJson;
static PutKeyValueRequestContentType const ApplicationVndMicrosoftAppconfigKvsetJson;
static PutKeyValueRequestContentType const ApplicationJson;
static PutKeyValueRequestContentType const TextJson;
static PutKeyValueRequestContentType const ApplicationZeroZeroJson;
static PutKeyValueRequestContentType const ApplicationJsonPatchJson;
};
class SnapshotStatus final : public Core::_internal::ExtendableEnumeration<SnapshotStatus> {
public:
SnapshotStatus() = default;
explicit SnapshotStatus(std::string snapshotStatus)
: ExtendableEnumeration(std::move(snapshotStatus))
{
}
static SnapshotStatus const Provisioning;
static SnapshotStatus const Ready;
static SnapshotStatus const Archived;
static SnapshotStatus const Failed;
};
class CompositionType final : public Core::_internal::ExtendableEnumeration<CompositionType> {
public:
CompositionType() = default;
explicit CompositionType(std::string compositionType)
: ExtendableEnumeration(std::move(compositionType))
{
}
static CompositionType const Key;
static CompositionType const KeyLabel;
};
class GetSnapshotsResponseContentType final
: public Core::_internal::ExtendableEnumeration<GetSnapshotsResponseContentType> {
public:
GetSnapshotsResponseContentType() = default;
explicit GetSnapshotsResponseContentType(std::string getSnapshotsResponseContentType)
: ExtendableEnumeration(std::move(getSnapshotsResponseContentType))
{
}
static GetSnapshotsResponseContentType const ApplicationVndMicrosoftAppconfigSnapshotsetJson;
static GetSnapshotsResponseContentType const ApplicationProblemJson;
};
class SnapshotFields final : public Core::_internal::ExtendableEnumeration<SnapshotFields> {
public:
SnapshotFields() = default;
explicit SnapshotFields(std::string snapshotFields)
: ExtendableEnumeration(std::move(snapshotFields))
{
}
static SnapshotFields const Name;
static SnapshotFields const Status;
static SnapshotFields const Filters;
static SnapshotFields const CompositionType;
static SnapshotFields const Created;
static SnapshotFields const Expires;
static SnapshotFields const RetentionPeriod;
static SnapshotFields const Size;
static SnapshotFields const ItemsCount;
static SnapshotFields const Tags;
static SnapshotFields const Etag;
};
class GetSnapshotResponseContentType final
: public Core::_internal::ExtendableEnumeration<GetSnapshotResponseContentType> {
public:
GetSnapshotResponseContentType() = default;
explicit GetSnapshotResponseContentType(std::string getSnapshotResponseContentType)
: ExtendableEnumeration(std::move(getSnapshotResponseContentType))
{
}
static GetSnapshotResponseContentType const ApplicationVndMicrosoftAppconfigSnapshotJson;
static GetSnapshotResponseContentType const ApplicationProblemJson;
};
class OperationState final : public Core::_internal::ExtendableEnumeration<OperationState> {
public:
OperationState() = default;
explicit OperationState(std::string operationState)
: ExtendableEnumeration(std::move(operationState))
{
}
static OperationState const NotStarted;
static OperationState const Running;
static OperationState const Succeeded;
static OperationState const Failed;
static OperationState const Canceled;
};
class CreateSnapshotResponseContentType final
: public Core::_internal::ExtendableEnumeration<CreateSnapshotResponseContentType> {
public:
CreateSnapshotResponseContentType() = default;
explicit CreateSnapshotResponseContentType(std::string createSnapshotResponseContentType)
: ExtendableEnumeration(std::move(createSnapshotResponseContentType))
{
}
static CreateSnapshotResponseContentType const ApplicationVndMicrosoftAppconfigSnapshotJson;
static CreateSnapshotResponseContentType const ApplicationProblemJson;
};
class CreateSnapshotRequestContentType final
: public Core::_internal::ExtendableEnumeration<CreateSnapshotRequestContentType> {
public:
CreateSnapshotRequestContentType() = default;
explicit CreateSnapshotRequestContentType(std::string createSnapshotRequestContentType)
: ExtendableEnumeration(std::move(createSnapshotRequestContentType))
{
}
static CreateSnapshotRequestContentType const ApplicationVndMicrosoftAppconfigSnapshotJson;
static CreateSnapshotRequestContentType const ApplicationJson;
};
class UpdateSnapshotResponseContentType final
: public Core::_internal::ExtendableEnumeration<UpdateSnapshotResponseContentType> {
public:
UpdateSnapshotResponseContentType() = default;
explicit UpdateSnapshotResponseContentType(std::string updateSnapshotResponseContentType)
: ExtendableEnumeration(std::move(updateSnapshotResponseContentType))
{
}
static UpdateSnapshotResponseContentType const ApplicationVndMicrosoftAppconfigSnapshotJson;
static UpdateSnapshotResponseContentType const ApplicationProblemJson;
};
class UpdateSnapshotRequestContentType final
: public Core::_internal::ExtendableEnumeration<UpdateSnapshotRequestContentType> {
public:
UpdateSnapshotRequestContentType() = default;
explicit UpdateSnapshotRequestContentType(std::string updateSnapshotRequestContentType)
: ExtendableEnumeration(std::move(updateSnapshotRequestContentType))
{
}
static UpdateSnapshotRequestContentType const ApplicationMergePatchJson;
static UpdateSnapshotRequestContentType const ApplicationJson;
};
class GetLabelsResponseContentType final
: public Core::_internal::ExtendableEnumeration<GetLabelsResponseContentType> {
public:
GetLabelsResponseContentType() = default;
explicit GetLabelsResponseContentType(std::string getLabelsResponseContentType)
: ExtendableEnumeration(std::move(getLabelsResponseContentType))
{
}
static GetLabelsResponseContentType const ApplicationVndMicrosoftAppconfigLabelsetJson;
static GetLabelsResponseContentType const ApplicationProblemJson;
};
class LabelFields final : public Core::_internal::ExtendableEnumeration<LabelFields> {
public:
LabelFields() = default;
explicit LabelFields(std::string labelFields) : ExtendableEnumeration(std::move(labelFields)) {}
static LabelFields const Name;
};
class GetRevisionsResponseContentType final
: public Core::_internal::ExtendableEnumeration<GetRevisionsResponseContentType> {
public:
GetRevisionsResponseContentType() = default;
explicit GetRevisionsResponseContentType(std::string getRevisionsResponseContentType)
: ExtendableEnumeration(std::move(getRevisionsResponseContentType))
{
}
static GetRevisionsResponseContentType const ApplicationVndMicrosoftAppconfigKvsetJson;
static GetRevisionsResponseContentType const ApplicationProblemJson;
};
struct Key final
{
std::string Name;
};
struct CheckKeysResult final
{
std::string SyncToken;
};
struct KeyValue final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::string> ContentType;
Nullable<std::string> Value;
Nullable<std::string> LastModified;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<bool> Locked;
Nullable<std::string> Etag;
};
struct CheckKeyValuesResult final
{
std::string SyncToken;
std::string ETag;
};
struct GetKeyValueResult final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::string> ContentType;
Nullable<std::string> Value;
Nullable<std::string> LastModified;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<bool> Locked;
Nullable<std::string> Etag;
Core::Uuid XMsClientRequestId{};
std::string SyncToken;
std::string ETag;
};
struct PutKeyValueResult final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::string> ContentType;
Nullable<std::string> Value;
Nullable<std::string> LastModified;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<bool> Locked;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
};
struct DeleteKeyValueResult final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::string> ContentType;
Nullable<std::string> Value;
Nullable<std::string> LastModified;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<bool> Locked;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
};
struct CheckKeyValueResult final
{
std::string SyncToken;
std::string ETag;
};
struct KeyValueFilter final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::vector<std::string>> Tags;
};
struct Snapshot final
{
std::string Name;
Nullable<SnapshotStatus> Status;
std::vector<KeyValueFilter> Filters;
Nullable<AppConfiguration::CompositionType> CompositionType;
Nullable<std::string> Created;
Nullable<std::string> Expires;
Nullable<std::int64_t> RetentionPeriod;
Nullable<std::int64_t> Size;
Nullable<std::int64_t> ItemsCount;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<std::string> Etag;
};
struct CheckSnapshotsResult final
{
std::string SyncToken;
};
struct GetSnapshotResult final
{
std::string Name;
Nullable<SnapshotStatus> Status;
std::vector<KeyValueFilter> Filters;
Nullable<AppConfiguration::CompositionType> CompositionType;
Nullable<std::string> Created;
Nullable<std::string> Expires;
Nullable<std::int64_t> RetentionPeriod;
Nullable<std::int64_t> Size;
Nullable<std::int64_t> ItemsCount;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
std::string Link;
Core::Uuid XMsClientRequestId{};
GetSnapshotResponseContentType ContentType;
};
struct InnerError final
{
Nullable<std::string> Code;
std::unique_ptr<InnerError> Innererror;
};
struct Error final
{
std::string Code;
std::string Message;
Nullable<std::string> Target;
Nullable<std::vector<Error>> Details;
InnerError Innererror;
};
struct OperationDetails final
{
std::string Id;
OperationState Status;
AppConfiguration::Error Error;
};
struct CreateSnapshotResult final
{
std::string Name;
Nullable<SnapshotStatus> Status;
std::vector<KeyValueFilter> Filters;
Nullable<AppConfiguration::CompositionType> CompositionType;
Nullable<std::string> Created;
Nullable<std::string> Expires;
Nullable<std::int64_t> RetentionPeriod;
Nullable<std::int64_t> Size;
Nullable<std::int64_t> ItemsCount;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
std::string Link;
Core::Url OperationLocation;
CreateSnapshotResponseContentType ContentType;
};
struct UpdateSnapshotResult final
{
std::string Name;
Nullable<SnapshotStatus> Status;
std::vector<KeyValueFilter> Filters;
Nullable<AppConfiguration::CompositionType> CompositionType;
Nullable<std::string> Created;
Nullable<std::string> Expires;
Nullable<std::int64_t> RetentionPeriod;
Nullable<std::int64_t> Size;
Nullable<std::int64_t> ItemsCount;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
std::string Link;
UpdateSnapshotResponseContentType ContentType;
};
struct SnapshotUpdateParameters final
{
Nullable<SnapshotStatus> Status;
};
struct CheckSnapshotResult final
{
std::string SyncToken;
std::string ETag;
std::string Link;
};
struct Label final
{
Nullable<std::string> Name;
};
struct CheckLabelsResult final
{
std::string SyncToken;
};
struct PutLockResult final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::string> ContentType;
Nullable<std::string> Value;
Nullable<std::string> LastModified;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<bool> Locked;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
};
struct DeleteLockResult final
{
std::string Key;
Nullable<std::string> Label;
Nullable<std::string> ContentType;
Nullable<std::string> Value;
Nullable<std::string> LastModified;
Nullable<std::map<std::string, std::string>> Tags;
Nullable<bool> Locked;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
};
struct CheckRevisionsResult final
{
std::string SyncToken;
std::string ETag;
};
class GetKeysPagedResponse final : public Core::PagedResponse<GetKeysPagedResponse> {
friend class ConfigurationClient;
friend class Core::PagedResponse<GetKeysPagedResponse>;
private:
std::shared_ptr<ConfigurationClient> m_client;
std::string m_accept;
GetKeysOptions m_options;
void OnNextPage(Core::Context const& context);
public:
Nullable<std::vector<Key>> Items;
std::string SyncToken;
GetKeysResponseContentType ContentType;
};
class GetKeyValuesPagedResponse final : public Core::PagedResponse<GetKeyValuesPagedResponse> {
friend class ConfigurationClient;
friend class Core::PagedResponse<GetKeyValuesPagedResponse>;
private:
std::shared_ptr<ConfigurationClient> m_client;
std::string m_accept;
GetKeyValuesOptions m_options;
void OnNextPage(Core::Context const& context);
public:
Nullable<std::vector<KeyValue>> Items;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
GetKeyValuesResponseContentType ContentType;
};
class GetSnapshotsPagedResponse final : public Core::PagedResponse<GetSnapshotsPagedResponse> {
friend class ConfigurationClient;
friend class Core::PagedResponse<GetSnapshotsPagedResponse>;
private:
std::shared_ptr<ConfigurationClient> m_client;
std::string m_accept;
GetSnapshotsOptions m_options;
void OnNextPage(Core::Context const& context);
public:
Nullable<std::vector<Snapshot>> Items;
std::string SyncToken;
GetSnapshotsResponseContentType ContentType;
};
class GetLabelsPagedResponse final : public Core::PagedResponse<GetLabelsPagedResponse> {
friend class ConfigurationClient;
friend class Core::PagedResponse<GetLabelsPagedResponse>;
private:
std::shared_ptr<ConfigurationClient> m_client;
std::string m_accept;
GetLabelsOptions m_options;
void OnNextPage(Core::Context const& context);
public:
Nullable<std::vector<Label>> Items;
std::string SyncToken;
GetLabelsResponseContentType ContentType;
};
class GetRevisionsPagedResponse final : public Core::PagedResponse<GetRevisionsPagedResponse> {
friend class ConfigurationClient;
friend class Core::PagedResponse<GetRevisionsPagedResponse>;
private:
std::shared_ptr<ConfigurationClient> m_client;
std::string m_accept;
GetRevisionsOptions m_options;
void OnNextPage(Core::Context const& context);
public:
Nullable<std::vector<KeyValue>> Items;
Nullable<std::string> Etag;
std::string SyncToken;
std::string ETag;
GetRevisionsResponseContentType ContentType;
};
}}} // namespace Azure::Data::AppConfiguration

View File

@ -0,0 +1,239 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// Code generated by Microsoft (R) TypeSpec Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.
#pragma once
#include "configuration_client_models.hpp"
#include "dll_import_export.hpp"
#include <azure/core/internal/client_options.hpp>
#include <azure/core/internal/extendable_enumeration.hpp>
#include <azure/core/nullable.hpp>
#include <azure/core/url.hpp>
#include <azure/core/uuid.hpp>
#include <cstdint>
#include <map>
#include <memory>
#include <string>
#include <utility>
#include <vector>
namespace Azure { namespace Data { namespace AppConfiguration {
class KeyValueFields;
struct KeyValue;
class SnapshotFields;
class SnapshotStatus;
class LabelFields;
struct ConfigurationClientOptions final : public Azure::Core::_internal::ClientOptions
{
std::string ApiVersion = "2023-11-01";
};
struct GetKeysOptions final
{
std::string NextPageToken;
std::string Name;
std::string After;
std::string SyncToken;
std::string AcceptDatetime;
};
struct CheckKeysOptions final
{
std::string Name;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
Core::Uuid XMsClientRequestId{};
};
struct GetKeyValuesOptions final
{
std::string NextPageToken;
std::string Key;
std::string Label;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
std::vector<KeyValueFields> Select;
std::string Snapshot;
std::string IfMatch;
std::string IfNoneMatch;
std::vector<std::string> Tags;
};
struct CheckKeyValuesOptions final
{
std::string Key;
std::string Label;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
std::vector<KeyValueFields> Select;
std::string Snapshot;
std::string IfMatch;
std::string IfNoneMatch;
std::vector<std::string> Tags;
Core::Uuid XMsClientRequestId{};
};
struct GetKeyValueOptions final
{
std::string Label;
std::vector<KeyValueFields> Select;
std::string SyncToken;
std::string AcceptDatetime;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
};
struct PutKeyValueOptions final
{
std::string Label;
std::string SyncToken;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
// KeyValue Entity; TODO: Implement KeyValue entity
};
struct DeleteKeyValueOptions final
{
std::string Label;
std::string SyncToken;
std::string IfMatch;
Core::Uuid XMsClientRequestId{};
};
struct CheckKeyValueOptions final
{
std::string Label;
std::string SyncToken;
std::string AcceptDatetime;
std::string IfMatch;
std::string IfNoneMatch;
std::vector<KeyValueFields> Select;
Core::Uuid XMsClientRequestId{};
};
struct GetSnapshotsOptions final
{
std::string NextPageToken;
std::string Name;
std::string After;
std::vector<SnapshotFields> Select;
std::vector<SnapshotStatus> Status;
std::string SyncToken;
};
struct CheckSnapshotsOptions final
{
std::string SyncToken;
std::string After;
Core::Uuid XMsClientRequestId{};
};
struct GetSnapshotOptions final
{
std::vector<SnapshotFields> Select;
std::string SyncToken;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
};
struct GetOperationDetailsOptions final
{
Core::Uuid XMsClientRequestId{};
};
struct CreateSnapshotOptions final
{
std::string SyncToken;
};
struct UpdateSnapshotOptions final
{
std::string SyncToken;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
};
struct CheckSnapshotOptions final
{
std::string SyncToken;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
};
struct GetLabelsOptions final
{
std::string NextPageToken;
std::string Name;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
std::vector<LabelFields> Select;
Core::Uuid XMsClientRequestId{};
};
struct CheckLabelsOptions final
{
std::string Name;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
std::vector<LabelFields> Select;
Core::Uuid XMsClientRequestId{};
};
struct PutLockOptions final
{
std::string Label;
std::string SyncToken;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
};
struct DeleteLockOptions final
{
std::string Label;
std::string SyncToken;
std::string IfMatch;
std::string IfNoneMatch;
Core::Uuid XMsClientRequestId{};
};
struct GetRevisionsOptions final
{
std::string NextPageToken;
std::string Key;
std::string Label;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
std::vector<KeyValueFields> Select;
std::vector<std::string> Tags;
Core::Uuid XMsClientRequestId{};
};
struct CheckRevisionsOptions final
{
std::string Key;
std::string Label;
std::string SyncToken;
std::string After;
std::string AcceptDatetime;
std::vector<KeyValueFields> Select;
std::vector<std::string> Tags;
Core::Uuid XMsClientRequestId{};
};
}}} // namespace Azure::Data::AppConfiguration

View File

@ -0,0 +1,40 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* @file
* @brief DLL export macro.
*/
// For explanation, see the comment in azure/core/dll_import_export.hpp
#pragma once
/**
* @def AZ_DATA_APPCONFIGURATION_DLLEXPORT
* @brief Applies DLL export attribute, when applicable.
* @note See https://docs.microsoft.com/cpp/cpp/dllexport-dllimport?view=msvc-160.
*/
#if defined(AZ_DATA_APPCONFIGURATION_DLL) \
|| (0 /*@AZ_DATA_APPCONFIGURATION_DLL_INSTALLED_AS_PACKAGE@*/)
#define AZ_DATA_APPCONFIGURATION_BUILT_AS_DLL 1
#else
#define AZ_DATA_APPCONFIGURATION_BUILT_AS_DLL 0
#endif
#if AZ_DATA_APPCONFIGURATION_BUILT_AS_DLL
#if defined(_MSC_VER)
#if defined(AZ_DATA_APPCONFIGURATION_BEING_BUILT)
#define AZ_DATA_APPCONFIGURATION_DLLEXPORT __declspec(dllexport)
#else // !defined(AZ_DATA_APPCONFIGURATION_BEING_BUILT)
#define AZ_DATA_APPCONFIGURATION_DLLEXPORT __declspec(dllimport)
#endif // AZ_DATA_APPCONFIGURATION_BEING_BUILT
#else // !defined(_MSC_VER)
#define AZ_DATA_APPCONFIGURATION_DLLEXPORT
#endif // _MSC_VER
#else // !AZ_DATA_APPCONFIGURATION_BUILT_AS_DLL
#define AZ_DATA_APPCONFIGURATION_DLLEXPORT
#endif // AZ_DATA_APPCONFIGURATION_BUILT_AS_DLL
#undef AZ_DATA_APPCONFIGURATION_BUILT_AS_DLL

View File

@ -0,0 +1,36 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* @file
* @brief Run-time type info enable or disable.
*
* @details When RTTI is enabled, defines a macro `AZ_DATA_APPCONFIGURATION_RTTI`. When
* the macro is not defined, RTTI is disabled.
*
* @details Each library has this header file. These headers are being configured by
* `az_rtti_setup()` CMake macro. CMake install will patch this file during installation, depending
* on the build flags.
*/
#pragma once
/**
* @def AZ_DATA_APPCONFIGURATION_RTTI
* @brief A macro indicating whether the code is built with RTTI or not.
*
* @details `AZ_RTTI` could be defined while building the Azure SDK with CMake, however, after
* the build is completed, that information is not preserved for the code that consumes Azure SDK
* headers, unless the code that consumes the SDK is the part of the same build process. To address
* this issue, CMake install would patch the header it places in the installation directory, so that
* condition:
* `#if defined(AZ_RTTI) || (0)`
* becomes, effectively,
* `#if defined(AZ_RTTI) || (0 + 1)`
* when the library was built with RTTI support, and will make no changes to the
* condition when it was not.
*/
#if defined(AZ_RTTI) || (0 /*@AZ_DATA_APPCONFIGURATION_RTTI@*/)
#define AZ_DATA_APPCONFIGURATION_RTTI
#endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,68 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
/**
* @file
* @brief Provides version information.
*/
#pragma once
#define AZURE_DATA_APPCONFIGURATION_VERSION_MAJOR 1
#define AZURE_DATA_APPCONFIGURATION_VERSION_MINOR 0
#define AZURE_DATA_APPCONFIGURATION_VERSION_PATCH 0
#define AZURE_DATA_APPCONFIGURATION_VERSION_PRERELEASE "beta.1"
#define AZURE_DATA_APPCONFIGURATION_VERSION_ITOA_HELPER(i) #i
#define AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(i) \
AZURE_DATA_APPCONFIGURATION_VERSION_ITOA_HELPER(i)
namespace Azure { namespace Data { namespace AppConfiguration { namespace _detail {
/**
* @brief Provides version information.
*/
class PackageVersion final {
public:
/**
* @brief Major numeric identifier.
*/
static constexpr int Major = AZURE_DATA_APPCONFIGURATION_VERSION_MAJOR;
/**
* @brief Minor numeric identifier.
*/
static constexpr int Minor = AZURE_DATA_APPCONFIGURATION_VERSION_MINOR;
/**
* @brief Patch numeric identifier.
*/
static constexpr int Patch = AZURE_DATA_APPCONFIGURATION_VERSION_PATCH;
/**
* @brief Indicates whether the SDK is in a pre-release state.
*/
static constexpr bool IsPreRelease
= sizeof(AZURE_DATA_APPCONFIGURATION_VERSION_PRERELEASE) != sizeof("");
/**
* @brief The version in string format used for telemetry following the `semver.org` standard
* (https://semver.org).
*/
static constexpr const char* ToString()
{
return IsPreRelease
? AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(AZURE_DATA_APPCONFIGURATION_VERSION_MAJOR) "." AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(
AZURE_DATA_APPCONFIGURATION_VERSION_MINOR) "." AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(AZURE_DATA_APPCONFIGURATION_VERSION_PATCH) "-" AZURE_DATA_APPCONFIGURATION_VERSION_PRERELEASE
: AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(AZURE_DATA_APPCONFIGURATION_VERSION_MAJOR) "." AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(
AZURE_DATA_APPCONFIGURATION_VERSION_MINOR) "." AZURE_DATA_APPCONFIGURATION_VERSION_ITOA(AZURE_DATA_APPCONFIGURATION_VERSION_PATCH);
}
};
}}}} // namespace Azure::Data::AppConfiguration::_detail
#undef AZURE_DATA_APPCONFIGURATION_VERSION_ITOA_HELPER
#undef AZURE_DATA_APPCONFIGURATION_VERSION_ITOA
#undef AZURE_DATA_APPCONFIGURATION_VERSION_MAJOR
#undef AZURE_DATA_APPCONFIGURATION_VERSION_MINOR
#undef AZURE_DATA_APPCONFIGURATION_VERSION_PATCH
#undef AZURE_DATA_APPCONFIGURATION_VERSION_PRERELEASE

View File

@ -0,0 +1,35 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cmake_minimum_required (VERSION 3.13)
project (azure-data-appconfiguration-test LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED True)
include(CreateMapFile)
add_compile_definitions(AZURE_TEST_DATA_PATH="${CMAKE_BINARY_DIR}")
include(GoogleTest)
add_executable (
azure-data-appconfiguration-test
configuration_test.cpp
macro_guard.cpp
)
target_compile_definitions(azure-data-appconfiguration-test PRIVATE _azure_BUILDING_TESTS)
create_per_service_target_build(appconfiguration azure-data-appconfiguration-test)
create_map_file(azure-data-appconfiguration-test azure-data-appconfiguration-test.map)
target_link_libraries(azure-data-appconfiguration-test PRIVATE Azure::azure-data-appconfiguration azure-identity azure-core-test-fw gtest gtest_main gmock)
if (MSVC)
target_compile_options(azure-data-appconfiguration-test PUBLIC /wd6326 /wd26495 /wd26812)
endif()
gtest_discover_tests(azure-data-appconfiguration-test
TEST_PREFIX azure-data-appconfiguration.
DISCOVERY_TIMEOUT 600)

View File

@ -0,0 +1,16 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
#include <azure/data/appconfiguration.hpp>
#include <azure/identity.hpp>
#include <gtest/gtest.h>
using namespace Azure::Data::AppConfiguration;
TEST(ConfigurationClient, Basic)
{
auto credential = std::make_shared<Azure::Identity::DefaultAzureCredential>();
ConfigurationClient configurationClient("serviceUrl", credential);
EXPECT_EQ(configurationClient.GetUrl(), "serviceUrl");
}

View File

@ -0,0 +1,15 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
// Define `min` and `max` as function-like macros before including all public
// headers to ensure that uses of those identifiers are defended against
// expansion as function-like macros. Define `small` as an object-like macro to
// ensure that identifier isn't used at all. Windows.h is badly behaved and
// defines similar macros with these names and we want to ensure the SDK headers
// function even when a naive user includes Windows.h first.
//
#define small FAIL><TO][COMPILE)(VERY{{{LOUDLY!!!
#define max(x, y) small
#define min(x, y) small
#include <azure/data/appconfiguration.hpp>

View File

@ -0,0 +1,22 @@
{
"name": "azure-data-appconfiguration-cpp",
"version-string": "1.0.0-beta.1",
"description": [
"Microsoft Azure App Configuration SDK for C++",
"This library provides Azure App Configuration SDK."
],
"license": "MIT",
"dependencies": [
{
"name": "azure-core-cpp"
},
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@ -0,0 +1,11 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
@PACKAGE_INIT@
include(CMakeFindDependencyMacro)
find_dependency(azure-core-cpp)
include("${CMAKE_CURRENT_LIST_DIR}/azure-data-appconfiguration-cppTargets.cmake")
check_required_components("azure-data-appconfiguration-cpp")

View File

@ -0,0 +1,36 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# NOTE: All changes made to this file will get overwritten by the next port release.
# Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp.
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Azure/azure-sdk-for-cpp
REF "azure-data-appconfiguration_${VERSION}"
SHA512 0
HEAD_REF main
)
if(EXISTS "${SOURCE_PATH}/sdk/appconfiguration/azure-data-appconfiguration")
file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/appconfiguration/_")
file(REMOVE_RECURSE "${SOURCE_PATH}/sdk/_")
file(REMOVE_RECURSE "${SOURCE_PATH}/_")
file(RENAME "${SOURCE_PATH}/sdk/appconfiguration/azure-data-appconfiguration" "${SOURCE_PATH}/sdk/appconfiguration/_")
file(RENAME "${SOURCE_PATH}/sdk/appconfiguration" "${SOURCE_PATH}/sdk/_")
file(RENAME "${SOURCE_PATH}/sdk" "${SOURCE_PATH}/_")
endif()
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}/_/_/_"
OPTIONS
-DWARNINGS_AS_ERRORS=OFF
-DBUILD_TESTING=OFF
)
vcpkg_cmake_install()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
vcpkg_cmake_config_fixup()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
vcpkg_copy_pdbs()

View File

@ -0,0 +1,32 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
{
"$comment": [
"NOTE: All changes made to this file will get overwritten by the next port release.",
"Please contribute your changes to https://github.com/Azure/azure-sdk-for-cpp."
],
"name": "azure-data-appconfiguration-cpp",
"version-semver": "@AZ_LIBRARY_VERSION@",
"description": [
"Microsoft Azure App Configuration SDK for C++",
"This library provides API access to the Azure App Configuration service.",
],
"homepage": "https://github.com/Azure/azure-sdk-for-cpp/tree/main/sdk/appconfiguration/azure-data-appconfiguration",
"license": "MIT",
"dependencies": [
{
"name": "azure-core-cpp",
"default-features": false,
"version>=": "1.14.1"
},
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
]
}

View File

@ -0,0 +1,35 @@
# NOTE: Please refer to https://aka.ms/azsdk/engsys/ci-yaml before editing this file.
trigger:
batch: true
branches:
include:
- main
- feature/*
- release/*
- hotfix/*
paths:
include:
- sdk/appconfiguration
pr:
branches:
include:
- main
- feature/*
- release/*
- hotfix/*
paths:
include:
- sdk/appconfiguration
extends:
template: ../../eng/pipelines/templates/stages/archetype-sdk-client.yml
parameters:
ServiceDirectory: appconfiguration
CtestRegex: azure-data-appconfiguration.*
LineCoverageTarget: 0
BranchCoverageTarget: 0
Artifacts:
- Name: azure-data-appconfiguration
Path: azure-data-appconfiguration
VcpkgPortName: azure-data-appconfiguration-cpp