From 27dc6bba3243963337ef145abc0dbdeaf57d1b1b Mon Sep 17 00:00:00 2001 From: George Arama <50641385+gearama@users.noreply.github.com> Date: Fri, 20 Aug 2021 15:42:47 -0700 Subject: [PATCH] Api view feedback (#2773) * first set * some more * final set * formats * remove friend structs serializers --- .../secrets/keyvault_deleted_secret.hpp | 6 +- .../keyvault/secrets/keyvault_operations.hpp | 10 +-- .../keyvault/secrets/keyvault_options.hpp | 3 - .../keyvault/secrets/keyvault_secret.hpp | 24 +++++-- .../secrets/keyvault_secret_properties.hpp | 3 +- .../azure/keyvault/secrets/secret_client.hpp | 36 ++-------- .../src/keyvault_operations.cpp | 6 +- .../src/private/secret_serializers.hpp | 16 ++--- .../src/secret_client.cpp | 65 +++++-------------- .../src/secret_serializers.cpp | 20 +++--- .../sample1-basic-operations.cpp | 11 ++-- .../sample2-backup-restore.cpp | 10 +-- .../sample3-delete-recover.cpp | 12 ++-- .../sample4-get-secrets-deleted.cpp | 6 +- .../ut/secret_get_client_deserialize_test.cpp | 12 ++-- .../ut/secret_get_client_deserialize_test.hpp | 13 ++-- .../secret_set_parameters_serializer_test.cpp | 12 ++-- .../test/ut/secret_update_properties_test.cpp | 12 ---- 18 files changed, 105 insertions(+), 172 deletions(-) diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_deleted_secret.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_deleted_secret.hpp index a0ed0a852..171cb3ba2 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_deleted_secret.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_deleted_secret.hpp @@ -15,7 +15,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @brief A Deleted Secret consisting of its previous id, attributes and its tags, * as well as information on when it will be purged. */ - struct DeletedSecret : public Secret + struct DeletedSecret : public KeyVaultSecret { /** * @brief A Deleted Secret consisting of its previous id, attributes and its tags, @@ -31,7 +31,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { /** * @brief The time when the secret was deleted, in UTC. */ - Azure::DateTime DeletedDate; + Azure::DateTime DeletedOn; /** * @brief Default constructor. @@ -43,6 +43,6 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * * @param name Name of the deleted secret. */ - DeletedSecret(std::string name) : Secret(std::move(name)) {} + DeletedSecret(std::string name) : KeyVaultSecret(std::move(name)) {} }; }}}} // namespace Azure::Security::KeyVault::Secrets diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_operations.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_operations.hpp index 5d2da3508..da720b1b1 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_operations.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_operations.hpp @@ -20,15 +20,15 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { /** * @brief Represents a long running operation to restore a deleted secret. */ - class RecoverDeletedSecretOperation final : public Azure::Core::Operation { + class RecoverDeletedSecretOperation final : public Azure::Core::Operation { private: friend class SecretClient; std::shared_ptr m_secretClient; - Secret m_value; + KeyVaultSecret m_value; std::string m_continuationToken; - Azure::Response PollUntilDoneInternal( + Azure::Response PollUntilDoneInternal( std::chrono::milliseconds period, Azure::Core::Context& context) override; @@ -43,7 +43,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { */ RecoverDeletedSecretOperation( std::shared_ptr secretClient, - Azure::Response response); + Azure::Response response); RecoverDeletedSecretOperation( std::string resumeToken, @@ -65,7 +65,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * * @return A Secret object. */ - Secret Value() const override { return m_value; } + KeyVaultSecret Value() const override { return m_value; } /** * @brief Get an Url as string which can be used to get the status of the operation. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_options.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_options.hpp index 5055eaaf1..81c314a2c 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_options.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_options.hpp @@ -94,7 +94,6 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { */ struct GetPropertiesOfSecretsOptions final { - Azure::Nullable MaxResults; Azure::Nullable NextPageToken; }; @@ -104,7 +103,6 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { */ struct GetPropertiesOfSecretVersionsOptions final { - Azure::Nullable MaxResults; Azure::Nullable NextPageToken; }; @@ -114,7 +112,6 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { */ struct GetDeletedSecretsOptions final { - Azure::Nullable MaxResults; Azure::Nullable NextPageToken; }; }}}} // namespace Azure::Security::KeyVault::Secrets diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret.hpp index dbb1c2123..28f8026ad 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret.hpp @@ -10,7 +10,7 @@ #include "azure/keyvault/secrets/keyvault_secret_properties.hpp" namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { - struct Secret + struct KeyVaultSecret { /** * @brief The name of the secret. @@ -22,7 +22,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @brief The secret value. * */ - std::string Value; + Azure::Nullable Value; /** * @brief The secret id. @@ -40,7 +40,19 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @brief Construct a new Secret object. * */ - Secret() = default; + KeyVaultSecret() = default; + + /** + * @brief The vault url of the secret. + * + */ + std::string VaultUrl() { return Properties.VaultUrl; } + + /** + * @brief The version of the secret. + * + */ + std::string Version() { return Properties.Version; } /** * @brief Construct a new Secret object. @@ -48,7 +60,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @param name The name of the secret. * @param value The name of the secret. */ - Secret(std::string const& name, std::string const& value) + KeyVaultSecret(std::string const& name, std::string const& value) : Name(name), Value(value), Properties(name) { if (Name.empty()) @@ -56,14 +68,14 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { throw std::invalid_argument("Name cannot be empty"); } - if (Value.empty()) + if (Value.HasValue() == false || Value.Value().empty()) { throw std::invalid_argument("Value cannot be empty"); } }; private: - Secret(std::string name) : Name(std::move(name)) + KeyVaultSecret(std::string name) : Name(std::move(name)) { if (Name.empty()) { diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret_properties.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret_properties.hpp index 5b04bfd6c..64aaae68a 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret_properties.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/keyvault_secret_properties.hpp @@ -21,7 +21,6 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { */ struct SecretProperties final { - /** * @brief Indicate whether the secret is enabled and useable for cryptographic operations. * @@ -92,7 +91,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * backing a certificate, then managed will be true. * */ - bool Managed = false; + bool Managed; /** * @brief The secret id. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp index b0b4cefa4..aee85f0e9 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/inc/azure/keyvault/secrets/secret_client.hpp @@ -84,7 +84,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @param context The context for the operation can be used for request cancellation. * @return The Secret wrapped in the Response. */ - Azure::Response GetSecret( + Azure::Response GetSecret( std::string const& name, GetSecretOptions const& options = GetSecretOptions(), Azure::Core::Context const& context = Azure::Core::Context()) const; @@ -112,7 +112,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @param context The context for the operation can be used for request cancellation. * @return The Secret wrapped in the Response. */ - Azure::Response SetSecret( + Azure::Response SetSecret( std::string const& name, std::string const& value, Azure::Core::Context const& context = Azure::Core::Context()) const; @@ -126,29 +126,9 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * @param context The context for the operation can be used for request cancellation. * @return The Secret wrapped in the Response. */ - Azure::Response SetSecret( + Azure::Response SetSecret( std::string const& name, - Secret const& secret, - Azure::Core::Context const& context = Azure::Core::Context()) const; - - /** - * @brief Updates the attributes associated with a specified secret in a given key vault. - * The UPDATE operation changes specified attributes of an existing stored secret. - * Attributes that are not specified in the request are left unchanged. - * The value of a secret itself cannot be changed. - * This operation requires the secrets/set permission. - * - * @param name The name of the secret. - * @param options The optional parameters for this request. - * @param properties The properties to update - * @param context The context for the operation can be used for request cancellation. - * - * @return The Secret wrapped in the Response. - */ - Azure::Response UpdateSecretProperties( - std::string const& name, - UpdateSecretPropertiesOptions const& options, - SecretProperties const& properties, + KeyVaultSecret const& secret, Azure::Core::Context const& context = Azure::Core::Context()) const; /** @@ -158,16 +138,12 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * The value of a secret itself cannot be changed. * This operation requires the secrets/set permission. * - * @param name The name of the secret. - * @param version The version of the secret for this request. * @param properties The properties to update * @param context The context for the operation can be used for request cancellation. * * @return The Secret wrapped in the Response. */ - Azure::Response UpdateSecretProperties( - std::string const& name, - std::string const& version, + Azure::Response UpdateSecretProperties( SecretProperties const& properties, Azure::Core::Context const& context = Azure::Core::Context()) const; @@ -196,7 +172,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { * * @return The Secret wrapped in the Response. */ - Azure::Response RestoreSecretBackup( + Azure::Response RestoreSecretBackup( std::vector const& backup, Azure::Core::Context const& context = Azure::Core::Context()) const; diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/keyvault_operations.cpp b/sdk/keyvault/azure-security-keyvault-secrets/src/keyvault_operations.cpp index 47745b638..d931c064f 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/keyvault_operations.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/keyvault_operations.cpp @@ -10,7 +10,7 @@ #include "azure/keyvault/secrets/secret_client.hpp" #include "private/secret_serializers.hpp" -Azure::Response RecoverDeletedSecretOperation::PollUntilDoneInternal( +Azure::Response RecoverDeletedSecretOperation::PollUntilDoneInternal( std::chrono::milliseconds period, Azure::Core::Context& context) { @@ -25,7 +25,7 @@ Azure::Response RecoverDeletedSecretOperation::PollUntilDoneInternal( std::this_thread::sleep_for(period); } - return Azure::Response( + return Azure::Response( m_value, std::make_unique(*m_rawResponse)); } @@ -68,7 +68,7 @@ std::unique_ptr RecoverDeletedSecretOperation::P RecoverDeletedSecretOperation::RecoverDeletedSecretOperation( std::shared_ptr secretClient, - Azure::Response response) + Azure::Response response) : m_secretClient(secretClient) { m_value = response.Value; diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/private/secret_serializers.hpp b/sdk/keyvault/azure-security-keyvault-secrets/src/private/secret_serializers.hpp index 66d91bfc1..9b9424e50 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/private/secret_serializers.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/private/secret_serializers.hpp @@ -23,18 +23,18 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { struct SecretSerializer final { // Creates a new key based on a name and an HTTP raw response. - static Secret Deserialize( + static KeyVaultSecret Deserialize( std::string const& name, Azure::Core::Http::RawResponse const& rawResponse); // Create from HTTP raw response only. - static Secret Deserialize(Azure::Core::Http::RawResponse const& rawResponse); + static KeyVaultSecret Deserialize(Azure::Core::Http::RawResponse const& rawResponse); // Updates a Key based on an HTTP raw response. - static void Deserialize(Secret& key, Azure::Core::Http::RawResponse const& rawResponse); + static void Deserialize(KeyVaultSecret& key, Azure::Core::Http::RawResponse const& rawResponse); // Serializes a key vault secret for set action - static std::string Serialize(Secret const& parameters); + static std::string Serialize(KeyVaultSecret const& parameters); // Extract the host out of the URL (with port if available) static std::string GetUrlAuthorityWithScheme(Azure::Core::Url const& url) @@ -111,14 +111,14 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { static std::string Serialize(std::vector const& backup); }; - class SecretPropertiesPagedResultSerializer final { - public: + struct SecretPropertiesPagedResultSerializer final + { static SecretPropertiesPagedResponse Deserialize( Azure::Core::Http::RawResponse const& rawResponse); }; - class DeletedSecretPagedResultSerializer final { - public: + struct DeletedSecretPagedResultSerializer final + { static DeletedSecretPagedResponse Deserialize( Azure::Core::Http::RawResponse const& rawResponse); }; diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp index ef26af9a7..047e66db7 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_client.cpp @@ -77,12 +77,12 @@ SecretClient::SecretClient( options, TelemetryName, apiVersion, std::move(perRetrypolicies), {})); } -Azure::Response SecretClient::GetSecret( +Azure::Response SecretClient::GetSecret( std::string const& name, GetSecretOptions const& options, Azure::Core::Context const& context) const { - return m_protocolClient->SendRequest( + return m_protocolClient->SendRequest( context, Azure::Core::Http::HttpMethod::Get, [&name](Azure::Core::Http::RawResponse const& rawResponse) { @@ -104,21 +104,21 @@ Azure::Response SecretClient::GetDeletedSecret( {_detail::DeletedSecretPath, name}); } -Azure::Response SecretClient::SetSecret( +Azure::Response SecretClient::SetSecret( std::string const& name, std::string const& value, Azure::Core::Context const& context) const { - Secret setParameters(name, value); + KeyVaultSecret setParameters(name, value); return SetSecret(name, setParameters, context); } -Azure::Response SecretClient::SetSecret( +Azure::Response SecretClient::SetSecret( std::string const& name, - Secret const& secret, + KeyVaultSecret const& secret, Azure::Core::Context const& context) const { - return m_protocolClient->SendRequest( + return m_protocolClient->SendRequest( context, Azure::Core::Http::HttpMethod::Put, [&secret]() { return _detail::SecretSerializer::Serialize(secret); }, @@ -128,32 +128,18 @@ Azure::Response SecretClient::SetSecret( {_detail::SecretPath, name}); } -Azure::Response SecretClient::UpdateSecretProperties( - std::string const& name, - UpdateSecretPropertiesOptions const& options, +Azure::Response SecretClient::UpdateSecretProperties( SecretProperties const& properties, Azure::Core::Context const& context) const { - return m_protocolClient->SendRequest( + return m_protocolClient->SendRequest( context, Azure::Core::Http::HttpMethod::Patch, [&properties]() { return _detail::SecretPropertiesSerializer::Serialize(properties); }, - [&name](Azure::Core::Http::RawResponse const& rawResponse) { - return _detail::SecretSerializer::Deserialize(name, rawResponse); + [&properties](Azure::Core::Http::RawResponse const& rawResponse) { + return _detail::SecretSerializer::Deserialize(properties.Name, rawResponse); }, - {_detail::SecretPath, name, options.Version}); -} - -Azure::Response SecretClient::UpdateSecretProperties( - std::string const& name, - std::string const& version, - SecretProperties const& properties, - Azure::Core::Context const& context) const -{ - UpdateSecretPropertiesOptions options; - options.Version = version; - - return UpdateSecretProperties(name, options, properties, context); + {_detail::SecretPath, properties.Name, properties.Version}); } Azure::Response SecretClient::BackupSecret( @@ -169,11 +155,11 @@ Azure::Response SecretClient::BackupSecret( {_detail::SecretPath, name, _detail::BackupSecretPath}); } -Azure::Response SecretClient::RestoreSecretBackup( +Azure::Response SecretClient::RestoreSecretBackup( std::vector const& backup, Azure::Core::Context const& context) const { - return m_protocolClient->SendRequest( + return m_protocolClient->SendRequest( context, Azure::Core::Http::HttpMethod::Post, [&backup]() { return _detail::RestoreSecretSerializer::Serialize(backup); }, @@ -214,7 +200,7 @@ Azure::Security::KeyVault::Secrets::RecoverDeletedSecretOperation SecretClient:: { return Azure::Security::KeyVault::Secrets::RecoverDeletedSecretOperation( std::make_shared(*this), - m_protocolClient->SendRequest( + m_protocolClient->SendRequest( context, Azure::Core::Http::HttpMethod::Post, [&name](Azure::Core::Http::RawResponse const& rawResponse) { @@ -229,13 +215,6 @@ SecretPropertiesPagedResponse SecretClient::GetPropertiesOfSecrets( { auto const request = BuildRequestFromContinuationToken(options.NextPageToken, {_detail::SecretPath}); - size_t maxResults = _detail::PagedMaxResults; - if (options.MaxResults.HasValue() && (options.MaxResults.Value() <= _detail::PagedMaxResults)) - { - maxResults = options.MaxResults.Value(); - } - - request.Query->emplace(_detail::PagedMaxResultsName, std::to_string(maxResults)); auto response = m_protocolClient->SendRequest( context, @@ -259,13 +238,6 @@ SecretPropertiesPagedResponse SecretClient::GetPropertiesOfSecretsVersions( { auto const request = BuildRequestFromContinuationToken( options.NextPageToken, {_detail::SecretPath, name, _detail::VersionsName}); - size_t maxResults = _detail::PagedMaxResults; - if (options.MaxResults.HasValue() && (options.MaxResults.Value() <= _detail::PagedMaxResults)) - { - maxResults = options.MaxResults.Value(); - } - - request.Query->emplace(_detail::PagedMaxResultsName, std::to_string(maxResults)); auto response = m_protocolClient->SendRequest( context, @@ -289,13 +261,6 @@ DeletedSecretPagedResponse SecretClient::GetDeletedSecrets( { auto const request = BuildRequestFromContinuationToken(options.NextPageToken, {_detail::DeletedSecretPath}); - size_t maxResults = _detail::PagedMaxResults; - if (options.MaxResults.HasValue() && (options.MaxResults.Value() <= _detail::PagedMaxResults)) - { - maxResults = options.MaxResults.Value(); - } - - request.Query->emplace(_detail::PagedMaxResultsName, std::to_string(maxResults)); auto response = m_protocolClient->SendRequest( context, diff --git a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_serializers.cpp b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_serializers.cpp index 45a912179..a3435af6d 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/src/secret_serializers.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/src/secret_serializers.cpp @@ -20,27 +20,27 @@ using namespace Azure::Security::KeyVault::Secrets; using namespace Azure::Security::KeyVault::Secrets::_detail; // Creates a new key based on a name and an HTTP raw response. -Secret SecretSerializer::Deserialize( +KeyVaultSecret SecretSerializer::Deserialize( std::string const& name, Azure::Core::Http::RawResponse const& rawResponse) { - Secret secret; + KeyVaultSecret secret; secret.Name = name; _detail::SecretSerializer::Deserialize(secret, rawResponse); return secret; } // Create from HTTP raw response only. -Secret SecretSerializer::Deserialize(Azure::Core::Http::RawResponse const& rawResponse) +KeyVaultSecret SecretSerializer::Deserialize(Azure::Core::Http::RawResponse const& rawResponse) { - Secret secret; + KeyVaultSecret secret; _detail::SecretSerializer::Deserialize(secret, rawResponse); return secret; } // Updates a Key based on an HTTP raw response. void SecretSerializer::Deserialize( - Secret& secret, + KeyVaultSecret& secret, Azure::Core::Http::RawResponse const& rawResponse) { auto const& body = rawResponse.GetBody(); @@ -149,19 +149,17 @@ void DeletedSecretSerializer::Deserialize( secret.RecoveryId = jsonParser[_detail::RecoveryIdPropertyName]; secret.ScheduledPurgeDate = PosixTimeConverter::PosixTimeToDateTime( jsonParser[_detail::ScheduledPurgeDatePropertyName]); - secret.DeletedDate + secret.DeletedOn = PosixTimeConverter::PosixTimeToDateTime(jsonParser[_detail::DeletedDatePropertyName]); } // serializes a set secret parameters object -std::string SecretSerializer::Serialize(Secret const& parameters) +std::string SecretSerializer::Serialize(KeyVaultSecret const& parameters) { json payload; - // value is required - payload[ValuePropertyName] = parameters.Value; + JsonOptional::SetFromNullable(parameters.Value, payload, _detail::ValuePropertyName); - // all else is optional JsonOptional::SetFromNullable( parameters.Properties.ContentType, payload, _detail::ContentTypePropertyName); @@ -409,7 +407,7 @@ DeletedSecretPagedResponse DeletedSecretPagedResultSerializer::Deserialize( item.RecoveryId = secretProperties[_detail::RecoveryIdPropertyName]; item.ScheduledPurgeDate = PosixTimeConverter::PosixTimeToDateTime( secretProperties[_detail::ScheduledPurgeDatePropertyName]); - item.DeletedDate = PosixTimeConverter::PosixTimeToDateTime( + item.DeletedOn = PosixTimeConverter::PosixTimeToDateTime( secretProperties[_detail::DeletedDatePropertyName]); result.Items.emplace_back(item); diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/sample1-basic-operations.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/sample1-basic-operations.cpp index 878ddfa81..d244b39d8 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/sample1-basic-operations.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample1-basic-operations/sample1-basic-operations.cpp @@ -46,18 +46,15 @@ int main() secretClient.SetSecret(secretName, secretValue); // get secret - Secret secret = secretClient.GetSecret(secretName).Value; + KeyVaultSecret secret = secretClient.GetSecret(secretName).Value; - std::cout << "Secret is returned with name " << secret.Name << " and value " << secret.Value - << std::endl; + std::cout << "Secret is returned with name " << secret.Name << " and value " + << secret.Value.Value() << std::endl; // change one of the properties secret.Properties.ContentType = "my content"; // update the secret - Secret updatedSecret - = secretClient - .UpdateSecretProperties(secret.Name, secret.Properties.Version, secret.Properties) - .Value; + KeyVaultSecret updatedSecret = secretClient.UpdateSecretProperties(secret.Properties).Value; std::cout << "Secret's content type is now " << updatedSecret.Properties.ContentType.Value() << std::endl; diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/sample2-backup-restore.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/sample2-backup-restore.cpp index 3e7338b2c..a4bb43ef5 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/sample2-backup-restore.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample2-backup-restore/sample2-backup-restore.cpp @@ -26,7 +26,7 @@ using namespace Azure::Security::KeyVault::Secrets; using namespace std::chrono_literals; -void AssertSecretsEqual(Secret const& expected, Secret const& actual); +void AssertSecretsEqual(KeyVaultSecret const& expected, KeyVaultSecret const& actual); int main() { @@ -48,10 +48,10 @@ int main() secretClient.SetSecret(secretName, secretValue); // get secret - Secret secret = secretClient.GetSecret(secretName).Value; + KeyVaultSecret secret = secretClient.GetSecret(secretName).Value; - std::cout << "Secret is returned with name " << secret.Name << " and value " << secret.Value - << std::endl; + std::cout << "Secret is returned with name " << secret.Name << " and value " + << secret.Value.Value() << std::endl; size_t backUpSize = 0; { @@ -114,7 +114,7 @@ int main() return 0; } -void AssertSecretsEqual(Secret const& expected, Secret const& actual) +void AssertSecretsEqual(KeyVaultSecret const& expected, KeyVaultSecret const& actual) { #if defined(NDEBUG) // Use (void) to silence unused warnings. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/sample3-delete-recover.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/sample3-delete-recover.cpp index 314f59e57..269fea851 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/sample3-delete-recover.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample3-delete-recover/sample3-delete-recover.cpp @@ -25,7 +25,7 @@ using namespace Azure::Security::KeyVault::Secrets; using namespace std::chrono_literals; -void AssertSecretsEqual(Secret const& expected, Secret const& actual); +void AssertSecretsEqual(KeyVaultSecret const& expected, KeyVaultSecret const& actual); int main() { @@ -48,10 +48,10 @@ int main() secretClient.SetSecret(secretName, secretValue); // get secret - Secret secret = secretClient.GetSecret(secretName).Value; + KeyVaultSecret secret = secretClient.GetSecret(secretName).Value; - std::cout << "Secret is returned with name " << secret.Name << " and value " << secret.Value - << std::endl; + std::cout << "Secret is returned with name " << secret.Name << " and value " + << secret.Value.Value() << std::endl; // start deleting the secret DeleteSecretOperation operation = secretClient.StartDeleteSecret(secret.Name); @@ -64,7 +64,7 @@ int main() = secretClient.StartRecoverDeletedSecret(secret.Name); // poll until done - Secret restoredSecret = recoverOperation.PollUntilDone(2s).Value; + KeyVaultSecret restoredSecret = recoverOperation.PollUntilDone(2s).Value; AssertSecretsEqual(secret, restoredSecret); @@ -89,7 +89,7 @@ int main() return 0; } -void AssertSecretsEqual(Secret const& expected, Secret const& actual) +void AssertSecretsEqual(KeyVaultSecret const& expected, KeyVaultSecret const& actual) { #if defined(NDEBUG) // Use (void) to silence unused warnings. diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/sample4-get-secrets-deleted.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/sample4-get-secrets-deleted.cpp index bf117001a..3ef95840b 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/sample4-get-secrets-deleted.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/samples/sample4-get-secrets-deleted/sample4-get-secrets-deleted.cpp @@ -44,10 +44,10 @@ int main() try { // create secret - Secret secret1 = secretClient.SetSecret(secretName, secretValue).Value; - Secret secret2 = secretClient.SetSecret(secretName2, secretValue).Value; + KeyVaultSecret secret1 = secretClient.SetSecret(secretName, secretValue).Value; + KeyVaultSecret secret2 = secretClient.SetSecret(secretName2, secretValue).Value; - std::cout << "Secret1 Version : " << secret1.Properties.Version << std::endl; + std::cout << "Secret1 Version : " << secret1.Version() << std::endl; // get properties of secrets for (auto secrets = secretClient.GetPropertiesOfSecrets(); secrets.HasPage(); diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.cpp index 1c24575b5..12c663ee0 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.cpp @@ -14,7 +14,7 @@ TEST(KeyVaultSecretSerializer, GetClientDeserializePartial1) { auto response = Helpers::GetPartialResponse(); - Secret secret = _detail::SecretSerializer::Deserialize(response); + KeyVaultSecret secret = _detail::SecretSerializer::Deserialize(response); Helpers::RunPartialExpect(secret); } @@ -22,7 +22,7 @@ TEST(KeyVaultSecretSerializer, GetClientDeserializePartial2) { auto response = Helpers::GetPartialResponse(); - Secret secret = _detail::SecretSerializer::Deserialize("name1", response); + KeyVaultSecret secret = _detail::SecretSerializer::Deserialize("name1", response); Helpers::RunPartialExpect(secret); } @@ -31,7 +31,7 @@ TEST(KeyVaultSecretSerializer, GetClientDeserializePartial3) { auto response = Helpers::GetPartialResponse(); - Secret secret = Secret("name2", "a"); + KeyVaultSecret secret = KeyVaultSecret("name2", "a"); _detail::SecretSerializer::Deserialize(secret, response); Helpers::RunPartialExpect(secret); @@ -41,7 +41,7 @@ TEST(KeyVaultSecretSerializer, GetClientdeserializeFull1) { auto response = Helpers::GetFullResponse(); - Secret secret = _detail::SecretSerializer::Deserialize(response); + KeyVaultSecret secret = _detail::SecretSerializer::Deserialize(response); Helpers::RunFullExpect(secret); } @@ -49,7 +49,7 @@ TEST(KeyVaultSecretSerializer, GetClientdeserializeFull2) { auto response = Helpers::GetFullResponse(); - Secret secret = _detail::SecretSerializer::Deserialize("name1", response); + KeyVaultSecret secret = _detail::SecretSerializer::Deserialize("name1", response); Helpers::RunFullExpect(secret); } @@ -58,7 +58,7 @@ TEST(KeyVaultSecretSerializer, GetClientdeserializeFull3) { auto response = Helpers::GetFullResponse(); - Secret secret = Secret("name2", "a"); + KeyVaultSecret secret = KeyVaultSecret("name2", "a"); _detail::SecretSerializer::Deserialize(secret, response); Helpers::RunFullExpect(secret); diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.hpp b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.hpp index 1978286b9..94e139081 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.hpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_get_client_deserialize_test.hpp @@ -23,6 +23,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { constexpr static const uint8_t responseBody[] = R"json({ "value": "mysecretvalue", "id": "https://myvault.vault.azure.net/secrets/mysecretname/4387e9f3d6e14c459867679a90fd0f79", + "managed":true, "attributes": { "enabled": true, "created": 1493938410, @@ -102,11 +103,11 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { return response; } - static void RunPartialExpect(Secret& secret, bool expectValue = true) + static void RunPartialExpect(KeyVaultSecret& secret, bool expectValue = true) { if (expectValue) { - EXPECT_EQ(secret.Value, "mysecretvalue"); + EXPECT_EQ(secret.Value.Value(), "mysecretvalue"); } EXPECT_EQ(secret.Name, "mysecretname"); @@ -117,17 +118,17 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { secret.Id, "https://myvault.vault.azure.net/secrets/mysecretname/" "4387e9f3d6e14c459867679a90fd0f79"); + EXPECT_EQ(secret.Properties.Managed, true); EXPECT_EQ(secret.Properties.KeyId.HasValue(), false); - EXPECT_EQ(secret.Properties.Managed, false); EXPECT_EQ(secret.Properties.UpdatedOn.HasValue(), true); EXPECT_EQ(secret.Properties.CreatedOn.HasValue(), true); } - static void RunFullExpect(Secret& secret, bool expectValue = true) + static void RunFullExpect(KeyVaultSecret& secret, bool expectValue = true) { if (expectValue) { - EXPECT_EQ(secret.Value, "mysecretvalue"); + EXPECT_EQ(secret.Value.Value(), "mysecretvalue"); EXPECT_EQ(secret.Properties.ContentType.Value(), "ct"); EXPECT_EQ(secret.Properties.KeyId.Value(), "kid"); } @@ -151,7 +152,7 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Secrets { EXPECT_EQ( secret.RecoveryId, "https://myvault.vault.azure.net/deletedsecrets/GetDeletedSecretTest"); EXPECT_EQ(secret.ScheduledPurgeDate.ToString(), "2017-08-02T22:53:53Z"); - EXPECT_EQ(secret.DeletedDate.ToString(), "2017-05-04T22:53:53Z"); + EXPECT_EQ(secret.DeletedOn.ToString(), "2017-05-04T22:53:53Z"); } }; }}}}} // namespace Azure::Security::KeyVault::Secrets::_test diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_set_parameters_serializer_test.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_set_parameters_serializer_test.cpp index 1469aa56f..8ee85f998 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_set_parameters_serializer_test.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_set_parameters_serializer_test.cpp @@ -17,20 +17,20 @@ using namespace Azure::Core::Json::_internal; TEST(KeyvaultSecretSetParametersSerializer, SetValue) { - Secret params("name", "value"); + KeyVaultSecret params("name", "value"); std::string result = SecretSerializer::Serialize(params); auto jsonParser = json::parse(result); - EXPECT_EQ(jsonParser[ValuePropertyName], params.Value); + EXPECT_EQ(jsonParser[ValuePropertyName], params.Value.Value()); EXPECT_EQ(jsonParser[IdPropertyName], nullptr); EXPECT_EQ(jsonParser[ContentTypePropertyName], nullptr); } TEST(KeyvaultSecretSetParametersSerializer, SetValueCT) { - Secret params("name", "value"); + KeyVaultSecret params("name", "value"); params.Properties.ContentType = "ct"; @@ -38,13 +38,13 @@ TEST(KeyvaultSecretSetParametersSerializer, SetValueCT) auto jsonParser = json::parse(result); - EXPECT_EQ(jsonParser[ValuePropertyName], params.Value); + EXPECT_EQ(jsonParser[ValuePropertyName], params.Value.Value()); EXPECT_EQ(jsonParser[ContentTypePropertyName], params.Properties.ContentType.Value()); } TEST(KeyvaultSecretSetParametersSerializer, SetValueCTAttrTag) { - Secret params("name", "value"); + KeyVaultSecret params("name", "value"); params.Properties.ContentType = "ct"; params.Properties.Enabled = true; @@ -54,7 +54,7 @@ TEST(KeyvaultSecretSetParametersSerializer, SetValueCTAttrTag) auto jsonParser = json::parse(result); - EXPECT_EQ(jsonParser[ValuePropertyName], params.Value); + EXPECT_EQ(jsonParser[ValuePropertyName], params.Value.Value()); EXPECT_EQ(jsonParser[AttributesPropertyName][TagsPropertyName]["a"], "b"); EXPECT_EQ(jsonParser[AttributesPropertyName][EnabledPropertyName], true); EXPECT_EQ(jsonParser[ContentTypePropertyName], params.Properties.ContentType.Value()); diff --git a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_update_properties_test.cpp b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_update_properties_test.cpp index 0bd83a172..61c1496ff 100644 --- a/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_update_properties_test.cpp +++ b/sdk/keyvault/azure-security-keyvault-secrets/test/ut/secret_update_properties_test.cpp @@ -16,7 +16,6 @@ TEST(SecretPropertiesSerializer, Serialize1) properties.ContentType = "contentType"; properties.Enabled = true; - properties.RecoverableDays = 5; auto serialized = _detail::SecretPropertiesSerializer::Serialize(properties); @@ -26,9 +25,6 @@ TEST(SecretPropertiesSerializer, Serialize1) EXPECT_EQ( properties.Enabled.Value(), jsonParser[_detail::AttributesPropertyName][_detail::EnabledPropertyName]); - EXPECT_EQ( - properties.RecoverableDays.Value(), - jsonParser[_detail::AttributesPropertyName][_detail::RecoverableDaysPropertyName]); } TEST(SecretPropertiesSerializer, Serialize2) @@ -37,7 +33,6 @@ TEST(SecretPropertiesSerializer, Serialize2) properties.ContentType = "contentType"; properties.Enabled = true; - properties.RecoverableDays = 5; properties.Tags.emplace("a", "b"); auto serialized = _detail::SecretPropertiesSerializer::Serialize(properties); @@ -48,9 +43,6 @@ TEST(SecretPropertiesSerializer, Serialize2) EXPECT_EQ( properties.Enabled.Value(), jsonParser[_detail::AttributesPropertyName][_detail::EnabledPropertyName]); - EXPECT_EQ( - properties.RecoverableDays.Value(), - jsonParser[_detail::AttributesPropertyName][_detail::RecoverableDaysPropertyName]); EXPECT_EQ(properties.Tags["a"], jsonParser[_detail::TagsPropertyName]["a"]); } @@ -60,7 +52,6 @@ TEST(SecretPropertiesSerializer, Serialize3) properties.ContentType = "contentType"; properties.Enabled = true; - properties.RecoverableDays = 5; properties.Tags.emplace("a", "b"); properties.Tags.emplace("c", "d"); @@ -72,9 +63,6 @@ TEST(SecretPropertiesSerializer, Serialize3) EXPECT_EQ( properties.Enabled.Value(), jsonParser[_detail::AttributesPropertyName][_detail::EnabledPropertyName]); - EXPECT_EQ( - properties.RecoverableDays.Value(), - jsonParser[_detail::AttributesPropertyName][_detail::RecoverableDaysPropertyName]); for (auto kvp : properties.Tags) { EXPECT_EQ(properties.Tags[kvp.first], jsonParser[_detail::TagsPropertyName][kvp.first]);