.history/custom/oldsdk/GetAPIDetail_20241204120913.ps1
$REST_HTTP_STATUS_CODES = @(200, 201, 202, 203, 204, 205, 206, 206, 207, 208); $CVPS_ERROR_ID = @{ 202 = 'REST API response [Accepted] error: The request has been received but not yet acted upon' 1000 = 'Empty or null user name: Please provide a user name for web service login' 1001 = 'Empty or null secure password: Please provide secure password for web service login' 1002 = 'Invalid CommServe session token: Please login to CommServe with Invoke-SetupLogin' } function GetAPIDetail ([String] $Request) { try { $restapi = @{ #--------------- Commvault.CommCell --------------- 'Get-CVVersionInfo' = @{ Description = 'Gets CommServe version' Endpoint = 'CommServ' Method = 'Get' Body = '' } 'Get-CVAlert' = @{ Description = 'Gets alert list' Endpoint = 'AlertRule' Method = 'Get' Body = '' } 'Add-CVClient' = @{ Description = 'Add new client' Endpoint = 'CreateTask' Method = 'Post' Body = '' } 'Get-CVClient' = @{ Description = 'Get client list from CommServe' Endpoint = 'Client?hiddenClients=true' Method = 'Get' Body = '' } 'GetClientProperties' = @{ Description = 'Get client properties for given client from CommServe' Endpoint = 'Client/{clientId}' Method = 'Get' Body = '' } 'GetClientAdditionalSettings' = @{ Description = 'Get additional settings for given client from CommServe' Endpoint = 'Client/{clientId}/AdditionalSettings' Method = 'Get' Body = '' } 'Set-CVClient' = @{ Description = 'Set client properties on CommServe' Endpoint = 'Client/{clientId}' Method = 'Post' Body = '' } 'Add-CVClientGroup' = @{ Description = 'Add new client group on CommServe' Endpoint = 'ClientGroup' Method = 'Post' Body = '' } 'Get-CVClientGroup' = @{ Description = 'Get client group list from CommServe' Endpoint = 'ClientGroup' Method = 'Get' Body = '' } 'GetClientGroupProperties' = @{ Description = 'Get Client group detail properties from CommServe' Endpoint = 'ClientGroup/{clientGroupId}' Method = 'Get' Body = '' } 'Set-CVClientGroup' = @{ Description = 'Set client group properties on CommServe' Endpoint = 'ClientGroup/{clientGroupId}' Method = 'Post' Body = '' } 'Get-CVSubclient' = @{ Description = 'Get subclient list for given clientId from CommServe' Endpoint = 'Subclient?clientId={clientId}&propertyLevel=AllProperties' Method = 'Get' Body = '' } 'Set-CVSubclient' = @{ Description = 'Add new subclient' Endpoint = 'Subclient' Method = 'Post' Body = '' } 'Add-EntitytoSchedulePolicy' = @{ Description = 'Add entity to schedule policy' Endpoint = 'Task/{taskId}/Entity/Add' Method = 'Post' Body = '' } 'GetSubclientProperties' = @{ Description = 'Get subclient props for given subclient from CommServe' Endpoint = 'Subclient/{subclientId}' Method = 'Get' Body = '' } 'Get-CVId' = @{ Description = 'Gets Id of a given entity' Endpoint = 'GetId?clientName={clientName}' Method = 'Get' Body = '' } #--------------- Commvault.FileSystem --------------- 'Search-CVClientFileSystem' = @{ Description = 'Search for protected data at the backup set or subclient level' Endpoint = 'v2/filesystem/{clientId}/browse' #Endpoint = '' Method = 'Get' Body = '' } 'Select-CVClientFileSystem' = @{ Description = 'Select the file(s) matching a particular pattern from specified client file system' Endpoint = 'v2/filesystem/client/{clientId}/find?filepattern={filePattern}' Method = 'Get' Body = '' } 'Backup-CVClientFileSystem' = @{ Description = 'Submit backup request for specified client file system content' Endpoint = 'v2/filesystem/{clientId}/backup' Method = 'Post' Body = '' } 'Restore-CVClientFileSystem' = @{ Description = 'Submit restore/recover request for specified client file system content' Endpoint = 'v2/filesystem/{clientId}/recover' Method = 'Post' Body = '' } 'Set-CVSubclientFileSystemContent' = @{ Description = 'Sets the provided content for specified file system subclient' Endpoint = 'v2/filesystem/client/{clientId}/content' Method = 'Post' Body = '' } #--------------- Commvault.JobManager --------------- 'Get-CVJob' = @{ Description = 'Get the list of all jobs in CommServe' Endpoint = 'Job?completedJobLookupTime={completedJobLookupTime}&limit={limit}' Method = 'Get' Body = '' } 'GetJobById' = @{ Description = 'Get summary for specific job' Endpoint = 'Job/{jobId}' Method = 'Get' Body = '' } 'Get-CVJobDetail' = @{ Description = 'Get job details for JobId' Endpoint = 'JobDetails' Method = 'Post' Body = '' } 'Stop-CVJob' = @{ Description = 'Kill the specified job' Endpoint = 'Job/{jobId}/action/kill' Method = 'Post' Body = '' } 'Suspend-CVJob' = @{ Description = 'Suspend the specified job' Endpoint = 'Job/{jobId}/action/pause' Method = 'Post' Body = '' } 'Restart-CVJob' = @{ Description = 'Resubmit the specified job' Endpoint = 'Job/{jobId}/action/resubmit' Method = 'Post' Body = '' } 'Resume-CVJob' = @{ Description = 'Resume the specified job' Endpoint = 'Job/{jobId}/action/resume' Method = 'Post' Body = '' } 'Backup-CVDisasterRecovery' = @{ Description = 'Initiates a CommServe DR backup job' Endpoint = 'CommServ/DRBackup' Method = 'Post' Body = '' } 'Send-CVLogFile' = @{ Description = 'Creates a task to email job log files' Endpoint = 'CreateTask' Method = 'Post' Body = '' } 'Get-CVSLAReport' = @{ Description = 'Gets SLA report for specific client or entire CommCell' Endpoint = 'SLAReport?clientId={clientId}' Method = 'Post' Body = '' } 'Update-CVMissedSLA' = @{ Description = 'Initiates backup job for subclients with missed SLA' Endpoint = 'SLAReport?clientId={clientId}' Method = 'Post' Body = '' } 'Backup-CVSubclient' = @{ Description = 'Submit subclient backup job' Endpoint = 'Subclient/{subclientId}/action/backup?backupLevel={backupType}' Method = 'Post' Body = '' } #--------------- Commvault.Policies --------------- 'Get-CVSchedulePolicy' = @{ Description = 'Get schedule policies' Endpoint = 'SchedulePolicy?subclientId={subclientId}&scheduleType={scheduleType}' Method = 'Get' Body = '' } 'GetSchedulePolicyDetails' = @{ Description = 'Get schedule policy details' Endpoint = 'SchedulePolicy/{schedulePolicyId}' Method = 'Get' Body = '' } 'Enable-CVSchedulePolicy' = @{ Description = 'Enable schedule policy' Endpoint = 'Schedules/task/Action/Enable' Method = 'Post' Body = '' ContentType = 'text/plain' } 'Disable-CVSchedulePolicy' = @{ Description = 'Disable schedule policy' Endpoint = 'Schedules/task/Action/Disable' Method = 'Post' Body = '' ContentType = 'text/plain' } 'Get-CVStoragePolicy' = @{ Description = 'Get storage policies' Endpoint = 'StoragePolicy' Method = 'Get' Body = '' } 'GetStoragePolicyDetail' = @{ Description = 'Get storage policy detail' Endpoint = 'StoragePolicy/{storagePolicyId}' #Endpoint = 'StoragePolicy/{spId}?primaryCopyOnly={primaryCopyOnly}&userId={userId}' Method = 'Get' Body = '' } 'Get-CVBlackoutWindow' = @{ Description = 'Get blackout window list' Endpoint = 'OperationWindow/OpWindowList?commcellId={commcellId}&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}&clientgroupId={clientgroupId}&companyId={companyId}&schedulePolicyId={schedulePolicyId}' Method = 'Get' Body = '' } 'GetBlackoutWindowDetail' = @{ Description = 'Get blackout window detail' Endpoint = 'OperationWindow/{ruleId}' Method = 'Get' Body = '' } 'Set-CVBlackoutWindow' = @{ Description = 'Update an existing blackwout window rule' Endpoint = 'OperationWindow' Method = 'Put' Body = '' } 'Add-CVBlackoutWindow' = @{ Description = 'Create a new blackwout window rule' Endpoint = 'OperationWindow' Method = 'Post' Body = '' } 'Remove-CVBlackoutWindow' = @{ Description = 'Delete an existing blackwout window rule' Endpoint = 'OperationWindow/{ruleId}' Method = 'Delete' Body = '' } 'Enable-CVBlackoutWindowIgnoreHigherLevelRules' = @{ Description = 'Enable ignore higher-level blackout window rules feature' Endpoint = 'OperationWindow/IgnoreHigherLevelRules/Action/Enable?&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}' Method = 'Put' Body = '' } 'Disable-CVBlackoutWindowIgnoreHigherLevelRules' = @{ Description = 'Disable ignore higher-level blackout window rules feature' Endpoint = 'OperationWindow/IgnoreHigherLevelRules/Action/Disable?&clientId={clientId}&appTypeId={appTypeId}&instanceId={instanceId}&backupsetId={backupsetId}&subclientId={subclientId}' Method = 'Put' Body = '' } #--------------- Commvault.RESTSession --------------- 'Disconnect-CVServer' = @{ Description = 'Releases session authorization token' Endpoint = 'Logout' Method = 'Post' Body = '' } #--------------- Commvault.SQLServer --------------- 'Get-CVSQLClientDetail' = @{ Description = 'Get detail information about SQL clients' Endpoint = 'sql/properties?clientId={clientId}&instanceId={instanceId}' Method = 'Get' Body = '' } 'Get-CVSQLClone' = @{ Description = 'Get information about SQL clones' Endpoint = 'sql/clones?client={clientId}&instance={instanceId}' Method = 'Get' Body = '' } 'Get-CVSQLCloneDetail' = @{ Description = 'Get detail information about a specific SQL clone' Endpoint = 'sql/clone/{cloneId}?propertyLevel={propertyLevel}' Method = 'Get' Body = '' } 'Remove-CVSQLClone' = @{ Description = 'Restore SQL database' Endpoint = 'v2/sql/instances/{instanceId}/clone/{cloneId}' Method = 'Delete' Body = '' } 'Get-CVSQLDatabase' = @{ Description = 'Get information about protected SQL databases' Endpoint = 'sql/databases?instance={instanceId}&database={databaseId}&propertyLevel={propertyLevel}&paging={paging}&start={startPage}&max={pageSize}&sla={onlySLA}&sortBy={sortBy}&sortDir={sortDir}&toTime={toTime}&showSysDB={showSysDB}&search_term={searchTerm}&databaseName={databaseName}&instanceName={instanceName}&clientName={clientName}' Method = 'Get' Body = '' } 'Get-CVSQLDatabaseDetail' = @{ Description = 'Get detail information about a specific SQL database' Endpoint = 'sql/instance/{instanceId}/database/{databaseId}' Method = 'Get' Body = '' } 'Get-CVSQLDatabaseBackupHistory' = @{ Description = 'Get backup history for a specific SQL database' Endpoint = 'sql/instance/{instanceId}/database/{databaseId}/history/backup' Method = 'Get' Body = '' } 'GetSQLDatabaseJobDetail' = @{ Description = 'Get SQL database backup job details for a specific instance/database/job' Endpoint = 'v2/sql/instances/{instanceId}/databases/{databaseId}/jobs/{jobId}' Method = 'Get' Body = '' } 'Get-CVSQLInstance' = @{ Description = 'Get the list of all SQL instances' Endpoint = 'sql/instances?propertyLevel={propertyLevel}&paging={paging}&start={startPage}&max={pageSize}&sla={onlySLA}&sortBy={sortBy}&sortDir={sortDir}&search_term={searchTerm}&instanceName={instanceName}&clientName={clientName}' Method = 'Get' Body = '' } 'Get-CVSQLInstanceDetail' = @{ Description = 'Get information about a specific SQL instance' Endpoint = 'sql/instance/{instanceId}?propertyLevel={propertyLevel}' Method = 'Get' Body = '' } 'Get-CVSQLInstanceBackupHistory' = @{ Description = 'Get backup history for a specific SQL instance' EndPoint = 'sql/instance/{instanceId}/history/backup' Method = 'Get' Body = '' } 'GetSQLInstanceJobDetail' = @{ Description = 'Get SQL instance backup job details for a specific instance/job' Endpoint = 'v2/sql/instances/{instanceId}/jobs/{jobId}' Method = 'Get' Body = '' } 'Backup-CVSQLInstance' = @{ Description = 'Backup SQL instance subclients' Endpoint = 'v2/sql/instances/{instanceId}/backup' Method = 'Post' Body = '' } 'Backup-CVSQLSubclient' = @{ Description = 'Backup SQL instance subclients' Endpoint = 'v2/sql/instances/{instanceId}/backup?subclient={subclientId}' Method = 'Post' Body = '' } 'Backup-CVSQLDatabase' = @{ Description = 'Backup SQL database' Endpoint = 'v2/sql/instance/{instanceId}/databases/{databaseId}/backup' Method = 'Post' Body = '' } 'Backup-CVSQLDatabaseCopyOnly' = @{ Description = 'Backup SQL database' Endpoint = 'v2/sql/instance/{instanceId}/backup' Method = 'Post' Body = '' } 'Export-CVSQLDatabaseRTD' = @{ Description = 'Submit restore-to-disk job for SQL database' Endpoint = 'v2/sql/instances/{instanceId}/databases/{databaseId}/export' Method = 'Post' Body = '' } 'Export-CVSQLDatabaseRTDByJobId' = @{ Description = 'Submit restore-to-disk job for SQL database by jobId' Endpoint = 'v2/sql/instances/{instanceId}/databases/{databaseId}/jobs/{jobId}/export' Method = 'Post' Body = '' } 'Mount-CVSQLDatabase' = @{ Description = 'Mount a SQL database' Endpoint = 'v2/sql/instances/{instanceId}/databases/{databaseId}/mount' Method = 'Post' Body = '' } 'Restore-CVSQLDatabase' = @{ Description = 'Restore SQL database' Endpoint = 'v2/sql/instances/{instanceId}/databases/{databaseId}/restore' Method = 'Post' Body = '' } #--------------- Commvault.StorageResources --------------- 'Get-CVMediaAgent' = @{ Description = 'Get media agent list from CommServe' Endpoint = 'MediaAgent' Method = 'Get' Body = '' } 'Get-CVSubclientMediaAgent' = @{ Description = 'Get subclient media agent details' Endpoint = 'Subclient/{subclientId}/MediaAgent' #Endpoint = 'Subclient/{subclientId}/MediaAgent?fromTime={fromTime}&toTime={toTime}' Method = 'Get' Body = '' } 'GetMediaAgentStoragePolicies' = @{ Description = 'Get storage policy details for a specific media agent' Endpoint = 'StoragePolicyListAssociatedToMediaAgent?MediaAgent={mediaAgentId}' Method = 'Get' Body = '' } 'Get-CVLibrary' = @{ Description = 'Get storage resource libraries on the CommServe' Endpoint = 'Library' Method = 'Get' Body = '' } 'GetLibraryProperties' = @{ Description = 'Get detail properties for storage resource library' Endpoint = 'Library/{id}' Method = 'Get' Body = '' } 'New-CVLibrary' = @{ Description = 'Create magnetic library' Endpoint = 'Library' Method = 'Post' Body = '' } 'Get-CVDiskSpace' = @{ Description = 'Get the diskspace available in mountPath' Endpoint = 'Library/{id}' Method = 'Get' Body = '' } #--------------- Commvault.VirtualServer --------------- 'Add-CVVirtualMachineGroupContent' = @{ Description = 'Discover virtual server subclient content in CommCell' Endpoint = 'Subclient/Content/Preview' Method = 'Post' Body = @' <?xml version="1.0" encoding="UTF-8"?> <EVGui_PreviewInventoryReq createClientsForDiscoveredVms="{createClientsForDiscoveredVms}" previewInventoryRespType="2"> <appId clientId="{clientId}" apptypeId="106" instanceId="{instanceId}" backupsetId="{backupsetId}" subclientId="{subclientId}"/> <contentEntity> <children allOrAnyChildren="1" name="{name}" type="{type}" path="" displayName="{displayName}" equalsOrNotEquals="1"/> </contentEntity> <filterEntity/> </EVGui_PreviewInventoryReq> '@ ContentType = 'application/xml' } 'Add-CVVirtualMachine' = @{ Description = 'Add content to specified virtual server subclient in CommCell' Endpoint = 'Subclient/{subclientId}' Method = 'Post' Body = '' } 'Backup-CVVirtualMachine' = @{ Description = 'Starts backup job for specified virtual machine' Endpoint = '/v2/vsa/vm/{vmGUID}/backup?backupLevel={backupType}' Method = 'Post' Body = '' } 'Get-CVVirtualMachine' = @{ Description = 'Gets virtual machines filtered by: protected, unprotected, or all' Endpoint = 'VM?forUser=true&status={status}' Method = 'Get' Body = '' } 'Get-CVVirtualMachineByClient' = @{ Description = 'Gets virtual machines filtered by: client, protected, unprotected, or all' Endpoint = 'VM?propertyLevel=AllProperties&status={status}&PseudoClientId={id}' Method = 'Get' Body = '' } 'Restore-CVVirtualMachine' = @{ Description = 'Starts restore job for specified virtual machine' Endpoint = 'v2/vsa/vm/{vmGUID}/recover' Method = 'Post' Body = '' } 'Restore-CVVirtualMachineOutofPlace' = @{ Description = 'Out of place virtual machine restore' Endpoint = 'v2/vsa/vm/{vmGUID}/recover' Method = 'Post' Body = '' } 'Get-CVVirtualMachineLiveMount' = @{ Description = 'Starts virtual machine live unmount job' Endpoint = 'v2/vsa/vm/{vmGUID}/activemounts' Method = 'Get' Body = '' } 'Mount-CVVirtualMachine' = @{ Description = 'Starts virtual machine live mount job' Endpoint = 'v2/vsa/vm/{vmGUID}/livemount' Method = 'Post' Body = '' } 'Dismount-CVVirtualMachine' = @{ Description = 'Starts virtual machine live unmount job' Endpoint = 'v2/vsa/vm/{vmGUID}/liveunmount' Method = 'Post' Body = '' } 'InplaceRecover-VMDetails' = @{ Description = 'Returns the object for InplaceRestore' Endpoint = 'VM?guid={vmGUID}' Method = 'Get' Body = '' } #--------------- Commvault.Workflow --------------- 'Get-CVWorkflow' = @{ Description = 'Get workflow list' Endpoint = 'Workflow' Method = 'Get' Body = '' } 'GetWorkflowDetail' = @{ Description = 'Get workflow detail' Endpoint = 'Workflow/{workflowId}' Method = 'Get' Body = '' } 'Start-CVWorkflow' = @{ Description = 'This operation executes a workflow' Endpoint = 'Wapi/{workflowName}' Method = 'Get' Body = '' } 'Remove-CVWorkflow' = @{ Description = 'This operation deletes a workflow from the CommServe' Endpoint = 'Workflow/{workflowId}' Method = 'Delete' Body = '' } 'Get-CVCredentialDetail' = @{ Description = "This operation gets the details of a credential" Endpoint = "V4/Credential/{name}" Method = "Get" Body = '' } 'Set-CVCredential' = @{ Description = "This operation gets the details of a credential" Endpoint = "V4/Credential/{name}" Method = "Put" Body = '' } 'New-CVLdap' = @{ Description = "This operation create a new ldap entity in the commcell" Endpoint = "V4/Ldap" Method = "Post" Body = '' } 'New-CVCloudStorage' = @{ Description = "This operation creates a new cloud storage" EndPoint = "V4/Storage/Cloud" Method = "Post" Body = '' } 'New-CVReplicationGroup' = @{ Description = "This operation creates a new replication group" EndPoint = "V4/ReplicationGroup" Method = "Post" Body = '' } 'Get-CVReplicationGroupDetail' = @{ Description = "This operation gets the details of a replication group" EndPoint = "V4/ReplicationGroup/{ReplicationGroupId}" Method = "Get" Body = '' } 'Set-CVHypervisor' =@{ Description = "This operation updates the properties of the hypervisor" Endpoint = "V4/Hypervisor/{hypervisorId}" Method = "Put" Body = '' } 'New-CVHypervisor' =@{ Description = "This operation creates a new hypervisor" Endpoint = "V4/Hypervisor" Method = "Post" Body = '' } 'Update-CVHyperVisorCredentials' = @{ Description = "This operation updates the credential for the hypervisor" Endpoint = "V4/Hypervisor/{HypervisorId}/Credentials/" Method = "Post" Body = "" } 'New-CVBucketforCloudStorage' = @{ Description = "This operation creates a new bucket for the cloud storage" Endpoint = "V4/Storage/Cloud/{cloudStorageId}/Bucket" Method = "Post" Body = "" } 'Invoke-CVBrowseHypervisorInventory' = @{ Description = "This operation creates a new bucket for the cloud storage" Endpoint = "V4/Hypervisor/{hypervisorId}/{InventoryEntityName}/Browse" Method = "Get" Body = "" } 'New-CVCredentials' = @{ Description = "This operation creates a credential" Endpoint = "V4/credential" Method = "Post" Body = "" } 'Get-CVManagedAccounts' = @{ Description = "This operation gets the list of managed accounts" Endpoint = "api/v1/partner/accounts" Method = "Get" Body = "" } } } catch { throw $_ } finally { Write-Output $restapi.$Request } } |