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
RELATED LINKS
Last updated
Was this helpful?