Toolkit/Public/New-RscSlaBackupWindow.ps1
|
#Requires -Version 3 function New-RscSlaBackupWindow { <# .SYNOPSIS Creates a backup window input object for use with New-RscSla or Set-RscSla. .DESCRIPTION Defines a time window during which backups are allowed to run. Use this to restrict snapshot activity to off-peak hours. The output is passed to New-RscSla or Set-RscSla via the -BackupWindow or -FirstFullBackupWindow parameters. .LINK Schema reference: https://rubrikinc.github.io/rubrik-api-documentation/schema/reference .PARAMETER Duration Length of the backup window in hours. .PARAMETER DayOfWeek Day of the week when the backup window applies. Defaults to Monday. .PARAMETER Hour Hour of the day (0-23) when the backup window starts. Defaults to 0. .PARAMETER Minute Minute of the hour (0-59) when the backup window starts. Defaults to 0. .EXAMPLE Create a 2-hour backup window starting at midnight on Monday and assign it to an SLA. $window = New-RscSlaBackupWindow -Duration 2 New-RscSla -Name "NightOnly" -BackupWindow $window -ObjectType VSPHERE_OBJECT_TYPE .EXAMPLE Create a backup window starting Sunday at 1:30 AM for 2 hours. New-RscSlaBackupWindow -Duration 2 -DayOfWeek SUNDAY -Hour 1 -Minute 30 #> [CmdletBinding()] Param( # Duration of the Backup Window [Parameter(Mandatory)] [Int]$Duration, # Day of the week in which back up window is applicable [Parameter()] [ValidateSet("SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY")] [RubrikSecurityCloud.Types.DayOfWeek] $DayOfWeek = [RubrikSecurityCloud.Types.DayOfWeek]::MONDAY, # Hour of the day in which back up window is applicable [Parameter()] [Int]$Hour = 0, # Minute of the hour in which back up window is applicable [Parameter()] [Int]$Minute = 0 ) Process { $slaBackupWindow = New-Object -TypeName RubrikSecurityCloud.Types.BackupWindowInput $slaBackupWindow.DurationInHours = $Duration $slaBackupWindow.StartTimeAttributes = New-Object -TypeName RubrikSecurityCloud.Types.StartTimeAttributesInput $slaBackupWindow.StartTimeAttributes.Hour = $Hour $slaBackupWindow.StartTimeAttributes.Minute = $Minute $slaBackupWindow.StartTimeAttributes.DayOfWeek = New-Object -TypeName RubrikSecurityCloud.Types.DayOfWeekOptInput $slaBackupWindow.StartTimeAttributes.DayOfWeek.Day = $DayOfWeek $slaBackupWindow } } |