Invoke-RubrikRESTCall

SYNOPSIS

Provides generic interface to make Rubrik REST API calls

SYNTAX

General (Default)

Invoke-RubrikRESTCall -Endpoint <String> -Method <String> [-Query <PSObject>] [-Body <PSObject>]
 [-Server <String>] [-api <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

QueryByUri

Invoke-RubrikRESTCall [-Endpoint <String>] [-Method <String>] -uri <String> [-Body <PSObject>]
 [-Server <String>] [-api <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

BodyAsJson

Invoke-RubrikRESTCall -Endpoint <String> -Method <String> [-Body <PSObject>] [-BodyAsJson] [-Server <String>]
 [-api <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

BodyAsArray

Invoke-RubrikRESTCall -Endpoint <String> -Method <String> [-Body <PSObject>] [-BodyAsArray] [-Server <String>]
 [-api <String>] [-WhatIf] [-Confirm] [<CommonParameters>]

DESCRIPTION

The Invoke-RubrikRESTCall allows users to make raw API endpoint calls to the Rubrik REST interface. The user will need to manage the format of both the endpoint call(including resource ids) and body, but provides the option to make cmdlet independent API calls for automating Rubrik actions through PowerShell. The Rubrik API reference is found on the Rubrik device at: \/docs/v1 \/docs/v1/playground

EXAMPLES

EXAMPLE 1

Invoke-RubrikRESTCall -Endpoint 'vmware/vm' -Method GET

Retrieve the raw output for all VMWare VMs being managed by the Rubrik device.

EXAMPLE 2

Invoke-RubrikRESTCall -Endpoint 'vmware/vm' -Method GET -Query @{'name'='msf-sql2016'}

Retrieve the raw output for the VMWare VM msf-sql2016 using a query parameter.

EXAMPLE 3

$body = New-Object -TypeName PSObject -Property @{'slaID'='INHERIT';'ForceFullSnapshot'='FALSE'}

Invoke-RubrikRESTCall -Endpoint 'vmware/vm/VirtualMachine:::fbcb1f51-9520-4227-a68c-6fe145982f48-vm-649/snapshot' -Method POST -Body $body

Execute an on-demand snapshot for the VMWare VM where the id is part of the endpoint.

EXAMPLE 4

$body = New-Object -TypeName PSObject -Property @{'isPassthrough'=$true;'shareId'='HostShare:::11111';'templateId'='FilesetTemplate:::22222'}

Invoke-RubrikRESTCall -Endpoint 'fileset_template/bulk' -Method POST -Body $body -BodyAsArray

Creates a new fileset from the given fileset template and the given host id supporting Direct Archive. Since fileset_template/bulk expects an array, we force the single item array with the BodyAsArray parameter.

EXAMPLE 5

Invoke-RubrikRESTCall -Endpoint 'fileset_template/bulk' -Method POST -Body '{"isPassthrough":true,"shareId":"HostShare:::11111","templateId":"FilesetTemplate:::22222"}' -BodyAsJson

Creates a new fileset from the given fileset template and the given host id supporting Direct Archive. Since fileset_template/bulk expects an array, we force the single item array with the BodyAsArray parameter.

EXAMPLE 6

Invoke-RubrikRESTCall -api internal -Endpoint nutanix/cluster/NutanixCluster:::d34d42c0-5468-4c37-a3cf-4376baf018e4/refresh -Method post

Refreshes the information of the Nutanix cluster

EXAMPLE 7

Invoke-RubrikRESTCall -api internal -Endpoint nutanix/cluster/NutanixCluster:::d34d42c0-5468-4c37-a3cf-4376baf018e4/refresh -Method post -Verbose -WhatIf

Displays Verbose information while not executing the query

EXAMPLE 8

$currentreport = Get-RubrikReport -name BoringReportName -DetailedObject

$currentreport.name = "Jaap's QuokkaReport" $updatedbody = $currentreport|select * -exclude id,updatestatus,reportTemplate,reportType Invoke-RubrikRESTCall -Endpoint "report/$($currentreport.id)" -api internal -Method PATCH -Body $updatedbody -Verbose

Using this example it is possible to rename an existing report to the report name listed in the second row of this example

EXAMPLE 9

Invoke-RubrikRESTCall -uri https://rubrikcluster/api/v1/vmware/vm/snapshot/efb7ab36-0c2e-49b5-973f-7920b179cd79

Gather all information directly from the endpoint without having to specify any header details or authentication. Get is implicitly assumed unless explicitly specified.

EXAMPLE 10

Invoke-RubrikRESTCall -uri https://cluster-c.rubrik.us/api/v1/vmware/vm/request/MOUNT_SNAPSHOT_38ced575-3114-433b-b22a-41bb0a9a98e4_4c89ab80-f74e-460e-b119-8eaef6b735b9:::0 -Verbose

Gather all information directly from the endpoint to gather request data without having to specify any header details or authentication. Get is implicitly assumed unless explicitly specified.

PARAMETERS

-Endpoint

Rubrik API endpoint, DO NOT USE LEADING '/'

Type: String
Parameter Sets: General, BodyAsJson, BodyAsArray
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Type: String
Parameter Sets: QueryByUri
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Method

REST API method Rubrik API endpoint, DO NOT USE LEADING '/'

Type: String
Parameter Sets: General, BodyAsJson, BodyAsArray
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
Type: String
Parameter Sets: QueryByUri
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-uri

uri to query with Get request

Type: String
Parameter Sets: QueryByUri
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Query

Hash table body to pass to API call

Type: PSObject
Parameter Sets: General
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Body

Hash table body to pass to API call

Type: PSObject
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-BodyAsArray

Force the body as an array (For endpoints requiring single item arrays)

Type: SwitchParameter
Parameter Sets: BodyAsArray
Aliases:

Required: True
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-BodyAsJson

Allows to input the body as a JSON instead of a hashtable

Type: SwitchParameter
Parameter Sets: BodyAsJson
Aliases:

Required: True
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False

-Server

Rubrik server IP or FQDN

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: $global:RubrikConnection.server
Accept pipeline input: False
Accept wildcard characters: False

-api

API version

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: $global:RubrikConnection.api
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

OUTPUTS

NOTES

Written by Matt Altimar & Mike Fal for community usage Twitter: @Mike_Fal GitHub: mikefal

https://rubrik.gitbook.io/rubrik-sdk-for-powershell/command-documentation/reference/invoke-rubrikrestcall

Last updated