/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the secretsmanager-2017-10-17.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SecretsManager.Model
{
///
/// Container for the parameters to the RotateSecret operation.
/// Configures and starts the asynchronous process of rotating the secret. For information
/// about rotation, see Rotate
/// secrets in the Secrets Manager User Guide. If you include the configuration
/// parameters, the operation sets the values for the secret and then immediately starts
/// a rotation. If you don't include the configuration parameters, the operation starts
/// a rotation with the values already stored in the secret.
///
///
///
/// When rotation is successful, the AWSPENDING
staging label might be attached
/// to the same version as the AWSCURRENT
version, or it might not be attached
/// to any version. If the AWSPENDING
staging label is present but not attached
/// to the same version as AWSCURRENT
, then any later invocation of RotateSecret
/// assumes that a previous rotation request is still in progress and returns an error.
/// When rotation is unsuccessful, the AWSPENDING
staging label might be
/// attached to an empty secret version. For more information, see Troubleshoot
/// rotation in the Secrets Manager User Guide.
///
///
///
/// Secrets Manager generates a CloudTrail log entry when you call this action. Do not
/// include sensitive information in request parameters because it might be logged. For
/// more information, see Logging
/// Secrets Manager events with CloudTrail.
///
///
///
/// Required permissions: secretsmanager:RotateSecret
. For more
/// information, see
/// IAM policy actions for Secrets Manager and Authentication
/// and access control in Secrets Manager. You also need lambda:InvokeFunction
/// permissions on the rotation function. For more information, see
/// Permissions for rotation.
///
///
public partial class RotateSecretRequest : AmazonSecretsManagerRequest
{
private string _clientRequestToken;
private bool? _rotateImmediately;
private string _rotationLambdaARN;
private RotationRulesType _rotationRules;
private string _secretId;
///
/// Gets and sets the property ClientRequestToken.
///
/// A unique identifier for the new version of the secret that helps ensure idempotency.
/// Secrets Manager uses this value to prevent the accidental creation of duplicate versions
/// if there are failures and retries during rotation. This value becomes the VersionId
/// of the new version.
///
///
///
/// If you use the Amazon Web Services CLI or one of the Amazon Web Services SDK to call
/// this operation, then you can leave this parameter empty. The CLI or SDK generates
/// a random UUID for you and includes that in the request for this parameter. 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 new
/// versions and include that value in the request.
///
///
///
/// You only need to specify this value if you implement your own retry logic and you
/// want to ensure that Secrets Manager doesn't attempt to create a secret version twice.
/// We recommend that you generate a UUID-type
/// value to ensure uniqueness within the specified secret.
///
///
[AWSProperty(Min=32, Max=64)]
public string ClientRequestToken
{
get { return this._clientRequestToken; }
set { this._clientRequestToken = value; }
}
// Check to see if ClientRequestToken property is set
internal bool IsSetClientRequestToken()
{
return this._clientRequestToken != null;
}
///
/// Gets and sets the property RotateImmediately.
///
/// Specifies whether to rotate the secret immediately or wait until the next scheduled
/// rotation window. The rotation schedule is defined in RotateSecretRequest$RotationRules.
///
///
///
/// For secrets that use a Lambda rotation function to rotate, if you don't immediately
/// rotate the secret, Secrets Manager tests the rotation configuration by running the
///
/// testSecret
step of the Lambda rotation function. The test creates
/// an AWSPENDING
version of the secret and then removes it.
///
///
///
/// By default, Secrets Manager rotates the secret immediately.
///
///
public bool RotateImmediately
{
get { return this._rotateImmediately.GetValueOrDefault(); }
set { this._rotateImmediately = value; }
}
// Check to see if RotateImmediately property is set
internal bool IsSetRotateImmediately()
{
return this._rotateImmediately.HasValue;
}
///
/// Gets and sets the property RotationLambdaARN.
///
/// For secrets that use a Lambda rotation function to rotate, the ARN of the Lambda rotation
/// function.
///
///
///
/// For secrets that use managed rotation, omit this field. For more information,
/// see Managed
/// rotation in the Secrets Manager User Guide.
///
///
[AWSProperty(Min=0, Max=2048)]
public string RotationLambdaARN
{
get { return this._rotationLambdaARN; }
set { this._rotationLambdaARN = value; }
}
// Check to see if RotationLambdaARN property is set
internal bool IsSetRotationLambdaARN()
{
return this._rotationLambdaARN != null;
}
///
/// Gets and sets the property RotationRules.
///
/// A structure that defines the rotation configuration for this secret.
///
///
public RotationRulesType RotationRules
{
get { return this._rotationRules; }
set { this._rotationRules = value; }
}
// Check to see if RotationRules property is set
internal bool IsSetRotationRules()
{
return this._rotationRules != null;
}
///
/// Gets and sets the property SecretId.
///
/// The ARN or name of the secret to rotate.
///
///
///
/// For an ARN, we recommend that you specify a complete ARN rather than a partial ARN.
/// See Finding
/// a secret from a partial ARN.
///
///
[AWSProperty(Required=true, Min=1, Max=2048)]
public string SecretId
{
get { return this._secretId; }
set { this._secretId = value; }
}
// Check to see if SecretId property is set
internal bool IsSetSecretId()
{
return this._secretId != null;
}
}
}