Toolkit/Public/Get-RscMssqlLiveMount.ps1
|
#Requires -Version 3 function Get-RscMssqlLiveMount { <# .SYNOPSIS Retrieves SQL Server Live Mount information from Rubrik Security Cloud. .DESCRIPTION Returns details about SQL Server databases that have been Live Mounted through Rubrik. A Live Mount is a writable copy of a database mounted from a Rubrik snapshot. You can filter by the mounted database name or the source database object. .LINK Schema reference: https://rubrikinc.github.io/rubrik-api-documentation/schema/reference .PARAMETER MountedDatabaseName The name of the Live Mounted database on the target SQL Server. .PARAMETER RscMssqlDatabase A SQL Server database object, typically obtained from Get-RscMssqlDatabase. .PARAMETER AsQuery Return the query object instead of running the query. Preliminary read-only queries may still run to gather IDs or other data needed to build the main query. .EXAMPLE # Get Live Mount info for a specific mounted database $db = Get-RscMssqlDatabase -Name AdventureWorks2019 Get-RscMssqlLiveMount -RscMssqlDatabase $db -MountedDatabaseName AdventureWorks2019_LiveMount .EXAMPLE # Get all Live Mounts for a source database Get-RscMssqlDatabase -Name AdventureWorks2019 | Get-RscMssqlLiveMount #> [CmdletBinding()] Param( [Parameter( Mandatory = $false, ValueFromPipeline = $false )] [String]$MountedDatabaseName, [Parameter( Mandatory = $false, ValueFromPipeline = $true )] [RubrikSecurityCloud.Types.MssqlDatabase]$RscMssqlDatabase, [Parameter( Mandatory = $false, ValueFromPipeline = $false, HelpMessage = "Return the query object instead of running the query" )][Switch]$AsQuery ) Process { Write-Debug "-Running Get-RscMssqlLiveMount" # Determine field profile: $fieldProfile = "DEFAULT" if ( $Detail -eq $true ) { $fieldProfile = "DETAIL" } Write-Host "Get-RscMssqlLiveMount field profile: $fieldProfile" #region Create Query $query = New-RscQuery -Gql mssqlDatabaseLiveMounts ` -AddField Nodes.MountedDatabaseName, ` Nodes.CreationDate, ` Nodes.RecoveryPoint #, ` # Nodes.TargetInstance # Nodes.SourceDatabase # Nodes.Cluster #, ` # Nodes.SourceDatabase #, ` #endregion #region Filters $query.Var.filters = @() $nameFilter = New-Object -TypeName RubrikSecurityCloud.Types.MssqlDatabaseLiveMountFilterInput $nameFilter.Field = "MOUNTED_DATABASE_NAME" $nameFilter.texts = $MountedDatabaseName $query.Var.filters += $nameFilter If ( $PSBoundParameters.ContainsKey('RscMssqlDatabase') ) { $sourceDatabaseFilter = New-Object -TypeName RubrikSecurityCloud.Types.MssqlDatabaseLiveMountFilterInput $sourceDatabaseFilter.Field = "SOURCE_DATABASE_ID" $sourceDatabaseFilter.Texts = $RscMssqlDatabase.Id $query.Var.filters += $sourceDatabaseFilter } #endregion if ( $AsQuery ) { return $query } $result = $query.Invoke() $result.Nodes } } |