/*
* 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 DeleteSecret operation.
/// Deletes a secret and all of its versions. You can specify a recovery window during
/// which you can restore the secret. The minimum recovery window is 7 days. The default
/// recovery window is 30 days. Secrets Manager attaches a DeletionDate
stamp
/// to the secret that specifies the end of the recovery window. At the end of the recovery
/// window, Secrets Manager deletes the secret permanently.
///
///
///
/// You can't delete a primary secret that is replicated to other Regions. You must first
/// delete the replicas using RemoveRegionsFromReplication, and then delete the
/// primary secret. When you delete a replica, it is deleted immediately.
///
///
///
/// You can't directly delete a version of a secret. Instead, you remove all staging labels
/// from the version using UpdateSecretVersionStage. This marks the version as
/// deprecated, and then Secrets Manager can automatically delete the version in the background.
///
///
///
/// To determine whether an application still uses a secret, you can create an Amazon
/// CloudWatch alarm to alert you to any attempts to access a secret during the recovery
/// window. For more information, see
/// Monitor secrets scheduled for deletion.
///
///
///
/// Secrets Manager performs the permanent secret deletion at the end of the waiting period
/// as a background task with low priority. There is no guarantee of a specific time after
/// the recovery window for the permanent delete to occur.
///
///
///
/// At any time before recovery window ends, you can use RestoreSecret to remove
/// the DeletionDate
and cancel the deletion of the secret.
///
///
///
/// When a secret is scheduled for deletion, you cannot retrieve the secret value. You
/// must first cancel the deletion with RestoreSecret and then you can retrieve
/// the secret.
///
///
///
/// 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:DeleteSecret
. For more
/// information, see
/// IAM policy actions for Secrets Manager and Authentication
/// and access control in Secrets Manager.
///
///
public partial class DeleteSecretRequest : AmazonSecretsManagerRequest
{
private bool? _forceDeleteWithoutRecovery;
private long? _recoveryWindowInDays;
private string _secretId;
///
/// Gets and sets the property ForceDeleteWithoutRecovery.
///
/// Specifies whether to delete the secret without any recovery window. You can't use
/// both this parameter and RecoveryWindowInDays
in the same call. If you
/// don't use either, then by default Secrets Manager uses a 30 day recovery window.
///
///
///
/// Secrets Manager performs the actual deletion with an asynchronous background process,
/// so there might be a short delay before the secret is permanently deleted. If you delete
/// a secret and then immediately create a secret with the same name, use appropriate
/// back off and retry logic.
///
///
///
/// If you forcibly delete an already deleted or nonexistent secret, the operation does
/// not return ResourceNotFoundException
.
///
///
///
/// Use this parameter with caution. This parameter causes the operation to skip the normal
/// recovery window before the permanent deletion that Secrets Manager would normally
/// impose with the RecoveryWindowInDays
parameter. If you delete a secret
/// with the ForceDeleteWithoutRecovery
parameter, then you have no opportunity
/// to recover the secret. You lose the secret permanently.
///
///
///
public bool ForceDeleteWithoutRecovery
{
get { return this._forceDeleteWithoutRecovery.GetValueOrDefault(); }
set { this._forceDeleteWithoutRecovery = value; }
}
// Check to see if ForceDeleteWithoutRecovery property is set
internal bool IsSetForceDeleteWithoutRecovery()
{
return this._forceDeleteWithoutRecovery.HasValue;
}
///
/// Gets and sets the property RecoveryWindowInDays.
///
/// The number of days from 7 to 30 that Secrets Manager waits before permanently deleting
/// the secret. You can't use both this parameter and ForceDeleteWithoutRecovery
/// in the same call. If you don't use either, then by default Secrets Manager uses a
/// 30 day recovery window.
///
///
public long RecoveryWindowInDays
{
get { return this._recoveryWindowInDays.GetValueOrDefault(); }
set { this._recoveryWindowInDays = value; }
}
// Check to see if RecoveryWindowInDays property is set
internal bool IsSetRecoveryWindowInDays()
{
return this._recoveryWindowInDays.HasValue;
}
///
/// Gets and sets the property SecretId.
///
/// The ARN or name of the secret to delete.
///
///
///
/// 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;
}
}
}