Functions/Mutations/Resume-RSCCluster.ps1
################################################ # Function - Resume-RSCCluster - Resumes all new jobs from starting on the Rubrik cluster ID specified via RSC ################################################ Function Resume-RSCCluster { <# .SYNOPSIS Resumes all new jobs from starting on the specified Rubrik cluster ID. .DESCRIPTION Resumes all jobs on the cluster including backup, replication and archiving jobs. .LINK GraphQL schema reference: https://rubrikinc.github.io/rubrik-api-documentation/schema/reference .PARAMETER ClusterID The cluster ID which you want to perform the mutation on. .EXAMPLE Resume-RSCCluster -ClusterID "dcb308e8-819e-4782-9952-b978b9441f7e" .NOTES Author: Joshua Stenhouse Date: 11/14/2024 #> ################################################ # Paramater Config ################################################ [CmdletBinding()] Param ( [Parameter(Mandatory=$true)] [string]$ClusterID ) ################################################ # Importing Module & Running Required Functions ################################################ # Importing Import-Module RSCReporting # Checking connectivity, exiting function with error if not Test-RSCConnection ################################################ # API Call To RSC GraphQL URI ################################################ # Building GraphQL query $RSCGraphQL = @{"operationName" = "PauseResumeClusterProtectionMutation"; "variables" = @{ "input" = @{ "clusterUuids" = $ClusterID "togglePauseStatus" = $False } }; "query" = "mutation PauseResumeClusterProtectionMutation(`$input: UpdateClusterPauseStatusInput!) { updateClusterPauseStatus(input: `$input) { pauseStatuses { clusterUuid success __typename } __typename } }" } # Querying API Try { $RSCResponse = Invoke-RestMethod -Method POST -Uri $RSCGraphqlURL -Body $($RSCGraphQL | ConvertTo-JSON -Depth 20) -Headers $RSCSessionHeader $RSCRequest = "SUCCESS" } Catch { $RSCRequest = "FAILED" } # Checking for permission errors IF($RSCResponse.errors.message){$RSCResponse.errors.message} # Setting timestamp $UTCDateTime = [System.DateTime]::UtcNow ################################################ # Returing Job Info ################################################ # Adding To Array $Object = New-Object PSObject $Object | Add-Member -MemberType NoteProperty -Name "RSCInstance" -Value $RSCInstance $Object | Add-Member -MemberType NoteProperty -Name "Mutation" -Value "PauseResumeClusterProtectionMutation" $Object | Add-Member -MemberType NoteProperty -Name "RequestStatus" -Value $RSCRequest $Object | Add-Member -MemberType NoteProperty -Name "ClusterID" -Value $ClusterID $Object | Add-Member -MemberType NoteProperty -Name "RequestDateUTC" -Value $UTCDateTime $Object | Add-Member -MemberType NoteProperty -Name "ErrorMessage" -Value $RSCResponse.errors.message # Returning array Return $Object # End of function } |