Public/New-DuneResourceProvider.ps1
|
function New-DuneResourceProvider { [CmdletBinding( SupportsShouldProcess, ConfirmImpact = 'None' )] param ( [Parameter(Mandatory)] [string]$Name, [Parameter(Mandatory)] [string]$Type, [Parameter(Mandatory)] [Environments]$DefaultEnvironment, [Parameter(Mandatory)] [Environments[]]$AllowedEnvironments, [Parameter()] [string]$DisplayName, [Parameter()] [string]$Description, [Parameter()] [PSCustomObject[]]$Config, [Parameter()] [bool]$InitializeForDeployments = $true ) begin {} process { Write-Debug "$($MyInvocation.MyCommand)|process" $Body = @{ Name = $Name DisplayName = $DisplayName Description = $Description AllowedEnvironments = $AllowedEnvironments | ConvertTo-EnumString Type = $Type Config = $Config InitializeForDeployments = $InitializeForDeployments } if ($PSBoundParameters.ContainsKey('DefaultEnvironment')) { $Body.DefaultEnvironment = $DefaultEnvironment.ToString() } if ($PSBoundParameters.ContainsKey('AllowedEnvironments')) { $Body.AllowedEnvironments = $AllowedEnvironments | ConvertTo-EnumString } if ($PSCmdlet.ShouldProcess($($Body | ConvertTo-Json -Depth 16 -Compress))) { $Return = Invoke-DuneApiRequest -Uri "resourceproviders" -Method POST -Body $Body $ReturnObject = if ($Return.Content) { $Return.Content | ConvertFrom-Json | ConvertTo-DuneClassObject -Class DuneResourceProvider } return $ReturnObject } } end {} } |