/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include namespace Aws { namespace SecretsManager { namespace Model { /** */ class CreateSecretRequest : public SecretsManagerRequest { public: AWS_SECRETSMANAGER_API CreateSecretRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateSecret"; } AWS_SECRETSMANAGER_API Aws::String SerializePayload() const override; AWS_SECRETSMANAGER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline CreateSecretRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline CreateSecretRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the new secret.

The secret name can contain ASCII letters, * numbers, and the following characters: /_+=.@-

Do not end your secret * name with a hyphen followed by six characters. If you do so, you risk confusion * and unexpected results when searching for a secret by partial ARN. Secrets * Manager automatically adds a hyphen and six random characters after the secret * name at the end of the ARN.

*/ inline CreateSecretRequest& WithName(const char* value) { SetName(value); return *this;} /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline CreateSecretRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline CreateSecretRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

If you include SecretString or SecretBinary, then * Secrets Manager creates an initial version for the secret, and this parameter * specifies the unique identifier for the new version.

If you use * the Amazon Web Services CLI or one of the Amazon Web Services SDKs to call this * operation, then you can leave this parameter empty. The CLI or SDK generates a * random UUID for you and includes it as the value for this parameter in the * request. If you don't use the SDK and instead generate a raw HTTP request to the * Secrets Manager service endpoint, then you must generate a * ClientRequestToken yourself for the new version and include the * value in the request.

This value helps ensure idempotency. * Secrets Manager uses this value to prevent the accidental creation of duplicate * versions if there are failures and retries during a rotation. We recommend that * you generate a UUID-type * value to ensure uniqueness of your versions within the specified secret.

*
  • If the ClientRequestToken value isn't already * associated with a version of the secret then a new version of the secret is * created.

  • If a version with this value already exists and the * version SecretString and SecretBinary values are the * same as those in the request, then the request is ignored.

  • If * a version with this value already exists and that version's * SecretString and SecretBinary values are different * from those in the request, then the request fails because you cannot modify an * existing version. Instead, use PutSecretValue to create a new * version.

This value becomes the VersionId of the * new version.

*/ inline CreateSecretRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} /** *

The description of the secret.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description of the secret.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description of the secret.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description of the secret.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description of the secret.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description of the secret.

*/ inline CreateSecretRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description of the secret.

*/ inline CreateSecretRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description of the secret.

*/ inline CreateSecretRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline CreateSecretRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline CreateSecretRequest& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt * the secret value in the secret. An alias is always prefixed by * alias/, for example alias/aws/secretsmanager. For more * information, see About * aliases.

To use a KMS key in a different account, use the key ARN or * the alias ARN.

If you don't specify this value, then Secrets Manager uses * the key aws/secretsmanager. If that key doesn't yet exist, then * Secrets Manager creates it for you automatically the first time it encrypts the * secret value.

If the secret is in a different Amazon Web Services account * from the credentials calling the API, then you can't use * aws/secretsmanager to encrypt the secret, and you must create and * use a customer managed KMS key.

*/ inline CreateSecretRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The binary data to encrypt and store in the new version of the secret. We * recommend that you store your binary data in a file and then pass the contents * of the file as a parameter.

Either SecretString or * SecretBinary must have a value, but not both.

This parameter * is not available in the Secrets Manager console.

*/ inline const Aws::Utils::CryptoBuffer& GetSecretBinary() const{ return m_secretBinary; } /** *

The binary data to encrypt and store in the new version of the secret. We * recommend that you store your binary data in a file and then pass the contents * of the file as a parameter.

Either SecretString or * SecretBinary must have a value, but not both.

This parameter * is not available in the Secrets Manager console.

*/ inline bool SecretBinaryHasBeenSet() const { return m_secretBinaryHasBeenSet; } /** *

The binary data to encrypt and store in the new version of the secret. We * recommend that you store your binary data in a file and then pass the contents * of the file as a parameter.

Either SecretString or * SecretBinary must have a value, but not both.

This parameter * is not available in the Secrets Manager console.

*/ inline void SetSecretBinary(const Aws::Utils::CryptoBuffer& value) { m_secretBinaryHasBeenSet = true; m_secretBinary = value; } /** *

The binary data to encrypt and store in the new version of the secret. We * recommend that you store your binary data in a file and then pass the contents * of the file as a parameter.

Either SecretString or * SecretBinary must have a value, but not both.

This parameter * is not available in the Secrets Manager console.

*/ inline void SetSecretBinary(Aws::Utils::CryptoBuffer&& value) { m_secretBinaryHasBeenSet = true; m_secretBinary = std::move(value); } /** *

The binary data to encrypt and store in the new version of the secret. We * recommend that you store your binary data in a file and then pass the contents * of the file as a parameter.

Either SecretString or * SecretBinary must have a value, but not both.

This parameter * is not available in the Secrets Manager console.

*/ inline CreateSecretRequest& WithSecretBinary(const Aws::Utils::CryptoBuffer& value) { SetSecretBinary(value); return *this;} /** *

The binary data to encrypt and store in the new version of the secret. We * recommend that you store your binary data in a file and then pass the contents * of the file as a parameter.

Either SecretString or * SecretBinary must have a value, but not both.

This parameter * is not available in the Secrets Manager console.

*/ inline CreateSecretRequest& WithSecretBinary(Aws::Utils::CryptoBuffer&& value) { SetSecretBinary(std::move(value)); return *this;} /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline const Aws::String& GetSecretString() const{ return m_secretString; } /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline bool SecretStringHasBeenSet() const { return m_secretStringHasBeenSet; } /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline void SetSecretString(const Aws::String& value) { m_secretStringHasBeenSet = true; m_secretString = value; } /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline void SetSecretString(Aws::String&& value) { m_secretStringHasBeenSet = true; m_secretString = std::move(value); } /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline void SetSecretString(const char* value) { m_secretStringHasBeenSet = true; m_secretString.assign(value); } /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline CreateSecretRequest& WithSecretString(const Aws::String& value) { SetSecretString(value); return *this;} /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline CreateSecretRequest& WithSecretString(Aws::String&& value) { SetSecretString(std::move(value)); return *this;} /** *

The text data to encrypt and store in this new version of the secret. We * recommend you use a JSON structure of key/value pairs for your secret value.

*

Either SecretString or SecretBinary must have a * value, but not both.

If you create a secret by using the Secrets Manager * console then Secrets Manager puts the protected secret text in only the * SecretString parameter. The Secrets Manager console stores the * information as a JSON structure of key/value pairs that a Lambda rotation * function can parse.

*/ inline CreateSecretRequest& WithSecretString(const char* value) { SetSecretString(value); return *this;} /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline CreateSecretRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline CreateSecretRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline CreateSecretRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of tags to attach to the secret. Each tag is a key and value pair of * strings in a JSON text string, for example:

* [{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}] *

Secrets Manager tag key names are case sensitive. A tag with the key * "ABC" is a different tag from one with key "abc".

If you check tags in * permissions policies as part of your security strategy, then adding or removing * a tag can change permissions. If the completion of this operation would result * in you losing your permissions for this secret, then Secrets Manager blocks the * operation and returns an Access Denied error. For more information, * see Control * access to secrets using tags and Limit * access to identities with tags that match secrets' tags.

For * information about how to format a JSON parameter for the various command line * tool environments, see Using * JSON for Parameters. If your command-line tool or SDK requires quotation * marks around the parameter, you should use single quotes to avoid confusion with * the double quotes required in the JSON text.

The following restrictions * apply to tags:

  • Maximum number of tags per secret: 50

  • *
  • Maximum key length: 127 Unicode characters in UTF-8

  • *

    Maximum value length: 255 Unicode characters in UTF-8

  • Tag * keys and values are case sensitive.

  • Do not use the * aws: prefix in your tag names or values because Amazon Web Services * reserves it for Amazon Web Services use. You can't edit or delete tag names or * values with this prefix. Tags with this prefix do not count against your tags * per secret limit.

  • If you use your tagging schema across * multiple services and resources, other services might have restrictions on * allowed characters. Generally allowed characters: letters, spaces, and numbers * representable in UTF-8, plus the following special characters: + - = . _ : / * @.

*/ inline CreateSecretRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline const Aws::Vector& GetAddReplicaRegions() const{ return m_addReplicaRegions; } /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline bool AddReplicaRegionsHasBeenSet() const { return m_addReplicaRegionsHasBeenSet; } /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline void SetAddReplicaRegions(const Aws::Vector& value) { m_addReplicaRegionsHasBeenSet = true; m_addReplicaRegions = value; } /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline void SetAddReplicaRegions(Aws::Vector&& value) { m_addReplicaRegionsHasBeenSet = true; m_addReplicaRegions = std::move(value); } /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline CreateSecretRequest& WithAddReplicaRegions(const Aws::Vector& value) { SetAddReplicaRegions(value); return *this;} /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline CreateSecretRequest& WithAddReplicaRegions(Aws::Vector&& value) { SetAddReplicaRegions(std::move(value)); return *this;} /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline CreateSecretRequest& AddAddReplicaRegions(const ReplicaRegionType& value) { m_addReplicaRegionsHasBeenSet = true; m_addReplicaRegions.push_back(value); return *this; } /** *

A list of Regions and KMS keys to replicate secrets.

*/ inline CreateSecretRequest& AddAddReplicaRegions(ReplicaRegionType&& value) { m_addReplicaRegionsHasBeenSet = true; m_addReplicaRegions.push_back(std::move(value)); return *this; } /** *

Specifies whether to overwrite a secret with the same name in the destination * Region. By default, secrets aren't overwritten.

*/ inline bool GetForceOverwriteReplicaSecret() const{ return m_forceOverwriteReplicaSecret; } /** *

Specifies whether to overwrite a secret with the same name in the destination * Region. By default, secrets aren't overwritten.

*/ inline bool ForceOverwriteReplicaSecretHasBeenSet() const { return m_forceOverwriteReplicaSecretHasBeenSet; } /** *

Specifies whether to overwrite a secret with the same name in the destination * Region. By default, secrets aren't overwritten.

*/ inline void SetForceOverwriteReplicaSecret(bool value) { m_forceOverwriteReplicaSecretHasBeenSet = true; m_forceOverwriteReplicaSecret = value; } /** *

Specifies whether to overwrite a secret with the same name in the destination * Region. By default, secrets aren't overwritten.

*/ inline CreateSecretRequest& WithForceOverwriteReplicaSecret(bool value) { SetForceOverwriteReplicaSecret(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::Utils::CryptoBuffer m_secretBinary; bool m_secretBinaryHasBeenSet = false; Aws::String m_secretString; bool m_secretStringHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_addReplicaRegions; bool m_addReplicaRegionsHasBeenSet = false; bool m_forceOverwriteReplicaSecret; bool m_forceOverwriteReplicaSecretHasBeenSet = false; }; } // namespace Model } // namespace SecretsManager } // namespace Aws