#region Copyright
/*
* Copyright © 2014-2016 NetApp, Inc. All Rights Reserved.
*
* CONFIDENTIALITY NOTICE: THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION OF
* NETAPP, INC. USE, DISCLOSURE OR REPRODUCTION IS PROHIBITED WITHOUT THE PRIOR
* EXPRESS WRITTEN PERMISSION OF NETAPP, INC.
*/
#endregion
#region Using Directives
using System.ComponentModel;
using System.Management.Automation;
using SolidFire.Core;
using SolidFire.Element.Api;
#endregion
namespace SolidFire.Cluster.Enable
{
///
/// The Enable-SFEncryptionAtRest CmdLet is used to enable the Advanced Encryption Standard (AES) 256-bit encryption at rest on
/// the cluster so that the cluster can manage the encryption key used for the drives on each node. This feature is not enabled by default.
/// Enabling this operation allows the cluster to automatically manage encryption keys internally for the drives on each node in the cluster.
/// Nodes do not store the keys to unlock drives and the keys are never passed over the network. Two nodes participating in a cluster are
/// required to access the key to disable encryption on a drive. The encryption management does not affect performance or efficiency on the cluster.
/// If an encryption-enabled drive or node is removed from the cluster with the API, all data is secure erased and any data left on the drive cannot be read or accessed.
///
/// Enabling or disabling encryption should be performed when the cluster is running and in a healthy state.
/// Encryption can be enabled or disabled at your discretion and can be performed as often as you need.
///
/// Note: This process is asynchronous and returns a response before encryption is enabled.
/// The Get-SFClusterInfo CmdLet can be used to poll the system to see when the process has completed.
///
[Cmdlet(VerbsLifecycle.Enable, "SFEncryptionAtRest", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.High)]
public class EnableSFEncryptionAtRest : SFCmdlet
{
#region Private Data
#endregion
#region Parameters
#endregion
#region Cmdlet Overrides
protected override void BeginProcessing()
{
base.BeginProcessing();
CheckConnection();
}
protected override void ProcessRecord()
{
base.ProcessRecord();
SendRequest("EnableEncryptionAtRest");
}
#endregion
}
}