#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.Management.Automation;
#endregion
namespace SolidFire.Volume
{
///
/// These parameters become available to New-SFSchedule and Set-SFSchedule when the Frequency parameter is TimeInterval
///
public class TimeIntervalDynamicParameters
{
[Parameter(Position = 1, Mandatory = false, HelpMessage = "Number of days between creating a new snapshot.")]
public ulong TimeIntervalDays { get; set; }
[Parameter(Position = 2, Mandatory = false, HelpMessage = "Number of hours between creating a new snapshot.")]
public ulong TimeIntervalHours { get; set; }
[Parameter(Position = 3, Mandatory = false, HelpMessage = "Number of minutes between creating a new snapshot.")]
public ulong TimeIntervalMinutes { get; set; }
}
///
/// These parameters become available to New-SFSchedule and Set-SFSchedule when the Frequency parameter is DaysOfMonth
///
public class DaysOfMonthDynamicParameters
{
[Parameter(Position = 1, Mandatory = true, HelpMessage = "Days of month to create a new snapshot. Valid values are 1 - 31.")]
[ValidateRange(1, 31)]
public uint[] DaysOfMonthDays { get; set; }
[Parameter(Position = 2, Mandatory = false, HelpMessage = "Hour of day to create a new snapshot.")]
[ValidateRange(0, 23)]
public ulong TimeOfDayHour { get; set; }
[Parameter(Position = 3, Mandatory = false, HelpMessage = "Minute of day to create a new snapshot.")]
[ValidateRange(0, 59)]
public ulong TimeOfDayMinute { get; set; }
}
///
/// These parameters become available to New-SFSchedule and Set-SFSchedule when the Frequency parameter is DaysOfWeek
///
public class DaysOfWeekDynamicParameters
{
[Parameter(Position = 1, Mandatory = true, HelpMessage = "Days of week to create a new snapshot.")]
[ValidateSet("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday")]
public string[] DaysOfWeekDays { get; set; }
[Parameter(Position = 2, Mandatory = false, HelpMessage = "Hour of day to create a new snapshot.")]
[ValidateRange(0, 23)]
public ulong TimeOfDayHour { get; set; }
[Parameter(Position = 3, Mandatory = false, HelpMessage = "Minute of day to create a new snapshot.")]
[ValidateRange(0, 59)]
public ulong TimeOfDayMinute { get; set; }
}
///
/// These parameters become available to Start-SFVolumeBackup cmdlet when the BackupTo parameter is SolidFire
///
public class BackupToSolidFireDynamicParameters
{
[Parameter(Position = 1, Mandatory = true, HelpMessage = "The MVIP of the remote SolidFire cluster.")]
public string Mvip { get; set; }
[Parameter(Position = 2, Mandatory = true, HelpMessage = "The Username of a cluster administrator on the remote SolidFire cluster.")]
public string Username { get; set; }
[Parameter(Position = 3, Mandatory = true, HelpMessage = "The Password of a cluster administrator on the remote SolidFire cluster.")]
public string Password { get; set; }
[Parameter(Position = 4, Mandatory = true, HelpMessage = "BulkVolumeWriteKey is obtained by initiating a Restore using the Start-SFVolumeRestore CmdLet.")]
public string BulkVolumeWriteKey { get; set; }
}
///
/// These parameters become available to Start-SFVolumeBackup cmdlet when the BackupTo parameter is S3
///
public class BackupToS3DynamicParameters
{
[Parameter(Position = 1, Mandatory = true, HelpMessage = "Hostname of the S3 bucket location.")]
public string Hostname { get; set; }
[Parameter(Position = 2, Mandatory = true, HelpMessage = "AccessKeyID from Amazon Web Services.")]
public string AccessKeyID { get; set; }
[Parameter(Position = 3, Mandatory = true, HelpMessage = "SecretAccessKey from Amazon Web Services.")]
public string SecretAccessKey { get; set; }
[Parameter(Position = 4, Mandatory = true, HelpMessage = "S3 Bucket name.")]
public string Bucket { get; set; }
[Parameter(Position = 5, Mandatory = false, HelpMessage = "Optional, appended to prefix.")]
public string Nametag { get; set; }
}
///
/// These parameters become available to Start-SFVolumeBackup cmdlet when the BackupTo parameter is Swift
///
public class BackupToSwiftDynamicParameters
{
[Parameter(Position = 1, Mandatory = true, HelpMessage = "Url of the Swift container location.")]
public string Url { get; set; }
[Parameter(Position = 2, Mandatory = true, HelpMessage = "Swift Username.")]
public string Username { get; set; }
[Parameter(Position = 3, Mandatory = true, HelpMessage = "Authentication Key from Swift.")]
public string AuthenticationKey { get; set; }
[Parameter(Position = 4, Mandatory = true, HelpMessage = "Swift container name.")]
public string Container { get; set; }
[Parameter(Position = 5, Mandatory = false, HelpMessage = "Optional, appended to prefix.")]
public string Nametag { get; set; }
}
///
/// These parameters become available to Start-SFVolumeRestore cmdlet when the RestoreFrom parameter is S3
///
public class RestoreFromS3DynamicParameters
{
[Parameter(Position = 1, Mandatory = true, HelpMessage = "Hostname of the S3 bucket location.")]
public string Hostname { get; set; }
[Parameter(Position = 2, Mandatory = true, HelpMessage = "AccessKeyID from Amazon Web Services.")]
public string AccessKeyID { get; set; }
[Parameter(Position = 3, Mandatory = true, HelpMessage = "SecretAccessKey from Amazon Web Services.")]
public string SecretAccessKey { get; set; }
[Parameter(Position = 4, Mandatory = true, HelpMessage = "S3 Bucket name.")]
public string Bucket { get; set; }
}
}