sdk/keyvault/azure-security-keyvault-secrets/src/keyvault_secret.cpp (141 lines of code) (raw):
// 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.
#include "azure/keyvault/secrets/keyvault_secret.hpp"
#include "./generated/secrets_models.hpp"
namespace Azure { namespace Security { namespace KeyVault { namespace Secrets {
KeyVaultSecret::KeyVaultSecret(std::string const& name, std::string const& value)
: Name(name), Value(value), Properties(name)
{
if (Name.empty())
{
throw std::invalid_argument("Name cannot be empty");
}
if (Value.HasValue() == false || Value.Value().empty())
{
throw std::invalid_argument("Value cannot be empty");
}
}
KeyVaultSecret::KeyVaultSecret(std::string name) : Name(std::move(name))
{
if (Name.empty())
{
throw std::invalid_argument("Name cannot be empty");
}
}
KeyVaultSecret::KeyVaultSecret(_detail::Models::SecretBundle const& secret)
{
Value = secret.Value;
if (secret.Id.HasValue())
{
Id = secret.Id.Value();
Properties = SecretProperties::CreateFromURL(secret.Id.Value());
Name = Properties.Name;
}
Properties.ContentType = secret.ContentType;
Properties.KeyId = secret.Kid;
if (secret.Attributes.HasValue())
{
Properties.ExpiresOn = secret.Attributes.Value().Expires;
Properties.NotBefore = secret.Attributes.Value().NotBefore;
Properties.Enabled = secret.Attributes.Value().Enabled;
Properties.CreatedOn = secret.Attributes.Value().Created;
Properties.UpdatedOn = secret.Attributes.Value().Updated;
if (secret.Attributes.Value().RecoverableDays.HasValue())
{
Properties.RecoverableDays = secret.Attributes.Value().RecoverableDays.Value();
}
if (secret.Attributes.Value().RecoveryLevel.HasValue())
{
Properties.RecoveryLevel = secret.Attributes.Value().RecoveryLevel.Value().ToString();
}
}
if (secret.Managed.HasValue())
{
Properties.Managed = secret.Managed.Value();
}
if (secret.Tags.HasValue())
{
Properties.Tags = std::unordered_map<std::string, std::string>(
secret.Tags.Value().begin(), secret.Tags.Value().end());
}
}
KeyVaultSecret::KeyVaultSecret(_detail::Models::SecretItem const& secret)
{
if (secret.Id.HasValue())
{
Id = secret.Id.Value();
Properties = SecretProperties::CreateFromURL(secret.Id.Value());
Name = Properties.Name;
}
if (secret.Tags.HasValue())
{
Properties.Tags = std::unordered_map<std::string, std::string>(
secret.Tags.Value().begin(), secret.Tags.Value().end());
}
Properties.ContentType = secret.ContentType;
if (secret.Managed.HasValue())
{
Properties.Managed = secret.Managed.Value();
}
if (secret.Attributes.HasValue())
{
Properties.ExpiresOn = secret.Attributes.Value().Expires;
Properties.NotBefore = secret.Attributes.Value().NotBefore;
Properties.Enabled = secret.Attributes.Value().Enabled;
Properties.CreatedOn = secret.Attributes.Value().Created;
Properties.UpdatedOn = secret.Attributes.Value().Updated;
if (secret.Attributes.Value().RecoverableDays.HasValue())
{
Properties.RecoverableDays = secret.Attributes.Value().RecoverableDays.Value();
}
if (secret.Attributes.Value().RecoveryLevel.HasValue())
{
Properties.RecoveryLevel = secret.Attributes.Value().RecoveryLevel.Value().ToString();
}
}
}
_detail::Models::SecretSetParameters KeyVaultSecret::ToSetSecretParameters() const
{
_detail::Models::SecretSetParameters secretParameters;
if (Properties.ContentType.HasValue())
{
secretParameters.ContentType = Properties.ContentType;
}
if (Value.HasValue())
{
secretParameters.Value = Value.Value();
}
secretParameters.Tags
= std::map<std::string, std::string>(Properties.Tags.begin(), Properties.Tags.end());
secretParameters.SecretAttributes = _detail::Models::SecretAttributes();
if (Properties.Enabled.HasValue())
{
secretParameters.SecretAttributes.Value().Enabled = Properties.Enabled;
}
if (Properties.NotBefore.HasValue())
{
secretParameters.SecretAttributes.Value().NotBefore = Properties.NotBefore;
}
if (Properties.ExpiresOn.HasValue())
{
secretParameters.SecretAttributes.Value().Expires = Properties.ExpiresOn;
}
if (Properties.CreatedOn.HasValue())
{
secretParameters.SecretAttributes.Value().Created = Properties.CreatedOn;
}
if (Properties.UpdatedOn.HasValue())
{
secretParameters.SecretAttributes.Value().Updated = Properties.UpdatedOn;
}
if (Properties.RecoverableDays.HasValue())
{
secretParameters.SecretAttributes.Value().RecoverableDays
= static_cast<int32_t>(Properties.RecoverableDays.Value());
}
if (Properties.RecoveryLevel.HasValue())
{
secretParameters.SecretAttributes.Value().RecoveryLevel
= _detail::Models::DeletionRecoveryLevel(Properties.RecoveryLevel.Value());
}
return secretParameters;
}
}}}} // namespace Azure::Security::KeyVault::Secrets