#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; } } }