Public/ScriptedActions.ps1
Function Remove-NmeScriptedAction { <# .SYNOPSIS Delete scripted action. .DESCRIPTION Delete scripted action. This function calls the /api/v1/scripted-actions/{id} endpoint of the NME REST API, using the delete method. .PARAMETER Id ID of scripted Action .PARAMETER NmeDeleteScriptedActionRequest Requires an NmeDeleteScriptedActionRequest object, as generated by the New-NmeDeleteScriptedActionRequest command. #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Id, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeDeleteScriptedActionRequest"){$true} else{throw " is not a NmeDeleteScriptedActionRequest object."}})]$NmeDeleteScriptedActionRequest ) Set-NmeAuthHeaders Try { $json = $NmeDeleteScriptedActionRequest | ConvertTo-Json -Depth 20 Write-Debug 'json:' Write-Debug $json $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions/$Id$QueryString" -Method delete -Headers $script:AuthHeaders -ContentType 'application/json' -body $json Write-Verbose ($result | out-string) $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJob') $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue' $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function Set-NmeScriptedAction { <# .SYNOPSIS Partially update scripted action. .DESCRIPTION Partially update scripted action. This function calls the /api/v1/scripted-actions/{id} endpoint of the NME REST API, using the patch method. .PARAMETER Id ID of scripted Action .PARAMETER NmeCreateScriptedActionRequest Requires an NmeCreateScriptedActionRequest object, as generated by the New-NmeCreateScriptedActionRequest command. #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Id, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeCreateScriptedActionRequest"){$true} else{throw " is not a NmeCreateScriptedActionRequest object."}})]$NmeCreateScriptedActionRequest ) Set-NmeAuthHeaders Try { $json = $NmeCreateScriptedActionRequest | ConvertTo-Json -Depth 20 Write-Debug 'json:' Write-Debug $json $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions/$Id$QueryString" -Method patch -Headers $script:AuthHeaders -ContentType 'application/json' -body $json Write-Verbose ($result | out-string) $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJobAndScriptedAction') $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue' $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function Remove-NmeScriptedActionSchedule { <# .SYNOPSIS Delete Azure runbook scripted action schedule configuration. .DESCRIPTION Delete Azure runbook scripted action schedule configuration. This function calls the /api/v1/scripted-actions/{id}/schedule endpoint of the NME REST API, using the delete method. .PARAMETER Id ID of scripted Action #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Id ) Set-NmeAuthHeaders Try { $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions/$Id/schedule$Querystring" -Method delete -Headers $script:AuthHeaders -ContentType 'application/json' $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function Get-NmeScriptedActionSchedule { <# .SYNOPSIS Get Azure runbook scripted action schedule configuration. .DESCRIPTION Get Azure runbook scripted action schedule configuration. This function calls the /api/v1/scripted-actions/{id}/schedule endpoint of the NME REST API, using the get method. .PARAMETER Id ID of scripted Action #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Id ) Set-NmeAuthHeaders Try { $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions/$Id/schedule$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json' $Result.PSObject.TypeNames.Insert(0, 'NmeScriptedActionScheduleRestModel') $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue' $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function New-NmeScriptedActionSchedule { <# .SYNOPSIS Schedule Azure runbook scripted action execution in Automation account. .DESCRIPTION Schedule Azure runbook scripted action execution in Automation account. This function calls the /api/v1/scripted-actions/{id}/schedule endpoint of the NME REST API, using the post method. .PARAMETER Id ID of scripted Action .PARAMETER NmeScheduleAzureScripedActionPayload Requires an NmeScheduleAzureScripedActionPayload object, as generated by the New-NmeScheduleAzureScripedActionPayload command. #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Id, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeScheduleAzureScripedActionPayload"){$true} else{throw " is not a NmeScheduleAzureScripedActionPayload object."}})]$NmeScheduleAzureScripedActionPayload ) Set-NmeAuthHeaders Try { $json = $NmeScheduleAzureScripedActionPayload | ConvertTo-Json -Depth 20 Write-Debug 'json:' Write-Debug $json $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions/$Id/schedule$QueryString" -Method post -Headers $script:AuthHeaders -ContentType 'application/json' -body $json Write-Verbose ($result | out-string) $Result.PSObject.TypeNames.Insert(0, 'NmeScriptedActionScheduleRestModel') $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue' $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function Get-NmeScriptedActions { <# .SYNOPSIS Get scripted actions. .DESCRIPTION Get scripted actions. This function calls the /api/v1/scripted-actions endpoint of the NME REST API, using the get method. #> [CmdletBinding()] Param( ) Set-NmeAuthHeaders Try { $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions$Querystring" -Method get -Headers $script:AuthHeaders -ContentType 'application/json' $Result.PSObject.TypeNames.Insert(0, 'NmeScriptedAction') $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function New-NmeScriptedActions { <# .SYNOPSIS Create scripted action. .DESCRIPTION Create scripted action. This function calls the /api/v1/scripted-actions endpoint of the NME REST API, using the post method. .PARAMETER NmeCreateScriptedActionRequest Requires an NmeCreateScriptedActionRequest object, as generated by the New-NmeCreateScriptedActionRequest command. #> [CmdletBinding()] Param( [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeCreateScriptedActionRequest"){$true} else{throw " is not a NmeCreateScriptedActionRequest object."}})]$NmeCreateScriptedActionRequest ) Set-NmeAuthHeaders Try { $json = $NmeCreateScriptedActionRequest | ConvertTo-Json -Depth 20 Write-Debug 'json:' Write-Debug $json $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions$QueryString" -Method post -Headers $script:AuthHeaders -ContentType 'application/json' -body $json Write-Verbose ($result | out-string) $Result.PSObject.TypeNames.Insert(0, 'NmeResponseWithJobAndScriptedAction') $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } Function New-NmeRunbookScriptedAction { <# .SYNOPSIS Run Azure runbook scripted action in Automation account. .DESCRIPTION Run Azure runbook scripted action in Automation account. This function calls the /api/v1/scripted-actions/{id}/execution endpoint of the NME REST API, using the post method. .PARAMETER Id ID of scripted Action .PARAMETER NmeRunAzureScripedActionPayload Requires an NmeRunAzureScripedActionPayload object, as generated by the New-NmeRunAzureScripedActionPayload command. #> [CmdletBinding()] Param( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true)][int]$Id, [Parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$True)][ValidateScript({if ($_.PSObject.TypeNames -contains "NmeRunAzureScripedActionPayload"){$true} else{throw " is not a NmeRunAzureScripedActionPayload object."}})]$NmeRunAzureScripedActionPayload ) Set-NmeAuthHeaders Try { $json = $NmeRunAzureScripedActionPayload | ConvertTo-Json -Depth 20 Write-Debug 'json:' Write-Debug $json $Result = Invoke-RestMethod "$script:NmeUri/api/v1/scripted-actions/$Id/execution$QueryString" -Method post -Headers $script:AuthHeaders -ContentType 'application/json' -body $json Write-Verbose ($result | out-string) $Result.PSObject.TypeNames.Insert(0, 'NmeJob') $Result | Add-Member -NotePropertyName 'id' -NotePropertyValue $id -erroraction 'SilentlyContinue' $Result | CapProps } Catch { $message = ParseErrorForResponseBody($_) write-error ($message | out-string) } } |