custom/generated/New-JcSdkCustomEmailConfiguration.ps1
<# .Synopsis Create the custom email configuration for the specified custom email type. This action is only available to paying customers. .Description Create the custom email configuration for the specified custom email type. This action is only available to paying customers. .Example PS C:\> New-JcSdkCustomEmailConfiguration -Subject:(<string>) -Type:(<string>) -Body:(<string>) -Button:(<string>) -Header:(<string>) -NextStepContactInfo:(<string>) -Title:(<string>) ---- ---------- Body String Button String Header String Id String NextStepContactInfo String Subject String Title String Type String .Example PS C:\> New-JcSdkCustomEmailConfiguration -CustomEmail:(<JumpCloud.SDK.V2.Models.CustomEmail>) ---- ---------- Body String Button String Header String Id String NextStepContactInfo String Subject String Title String Type String .Inputs JumpCloud.SDK.V2.Models.ICustomEmail .Outputs JumpCloud.SDK.V2.Models.ICustomEmail .Notes COMPLEX PARAMETER PROPERTIES To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables. CUSTOMEMAIL <ICustomEmail>: Subject <String>: Type <String>: [Body <String>]: [Button <String>]: [Header <String>]: [NextStepContactInfo <String>]: [Title <String>]: .Link https://github.com/TheJumpCloud/jcapi-powershell/tree/master/SDKs/PowerShell/JumpCloud.SDK.V2/docs/exports/New-JcSdkCustomEmailConfiguration.md #> Function New-JcSdkCustomEmailConfiguration { [OutputType([JumpCloud.SDK.V2.Models.ICustomEmail])] [CmdletBinding(DefaultParameterSetName='CreateExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')] Param( [Parameter(ParameterSetName='Create', Mandatory, ValueFromPipeline)] [JumpCloud.SDK.V2.Category('Body')] [JumpCloud.SDK.V2.Models.ICustomEmail] # Custom email content created by the admin user to personalize emails sent to their system users. # To construct, see NOTES section for CUSTOMEMAIL properties and create a hash table. ${CustomEmail}, [Parameter(ParameterSetName='CreateExpanded', Mandatory)] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${Subject}, [Parameter(ParameterSetName='CreateExpanded', Mandatory)] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${Type}, [Parameter(ParameterSetName='CreateExpanded')] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${Body}, [Parameter(ParameterSetName='CreateExpanded')] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${Button}, [Parameter(ParameterSetName='CreateExpanded')] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${Header}, [Parameter(ParameterSetName='CreateExpanded')] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${NextStepContactInfo}, [Parameter(ParameterSetName='CreateExpanded')] [JumpCloud.SDK.V2.Category('Body')] [System.String] # . ${Title}, [Parameter(DontShow)] [JumpCloud.SDK.V2.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Wait for .NET debugger to attach ${Break}, [Parameter(DontShow)] [ValidateNotNull()] [JumpCloud.SDK.V2.Category('Runtime')] [JumpCloud.SDK.V2.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be appended to the front of the pipeline ${HttpPipelineAppend}, [Parameter(DontShow)] [ValidateNotNull()] [JumpCloud.SDK.V2.Category('Runtime')] [JumpCloud.SDK.V2.Runtime.SendAsyncStep[]] # SendAsync Pipeline Steps to be prepended to the front of the pipeline ${HttpPipelinePrepend}, [Parameter(DontShow)] [JumpCloud.SDK.V2.Category('Runtime')] [System.Uri] # The URI for the proxy server to use ${Proxy}, [Parameter(DontShow)] [ValidateNotNull()] [JumpCloud.SDK.V2.Category('Runtime')] [System.Management.Automation.PSCredential] # Credentials for a proxy server to use for the remote call ${ProxyCredential}, [Parameter(DontShow)] [JumpCloud.SDK.V2.Category('Runtime')] [System.Management.Automation.SwitchParameter] # Use the default credentials for the proxy ${ProxyUseDefaultCredentials} ) Begin { $Results = @() $PSBoundParameters.Add('HttpPipelineAppend', { param($req, $callback, $next) # call the next step in the Pipeline $ResponseTask = $next.SendAsync($req, $callback) $global:JCHttpRequest = $req # $global:JCHttpRequestContent = If (-not [System.String]::IsNullOrEmpty($req.Content)) { $req.Content.ReadAsStringAsync() } $global:JCHttpResponse = $ResponseTask # $global:JCHttpResponseContent = If (-not [System.String]::IsNullOrEmpty($ResponseTask.Result.Content)) { $ResponseTask.Result.Content.ReadAsStringAsync() } Return $ResponseTask } ) } Process { $maxRetries = 4 $resultCounter = 0 :retryLoop do { $resultCounter++ $Results = JumpCloud.SDK.V2.internal\New-JcSdkInternalCustomEmailConfiguration @PSBoundParameters -errorAction SilentlyContinue -errorVariable sdkError If ($sdkError){ If ($resultCounter -eq $maxRetries){ throw $sdkError } If ($JCHttpResponse.Result.StatusCode -eq "503") { Write-Warning ("503: Service Unavailable - retrying in " + ($resultCounter * 5) + " seconds.") } else { throw $sdkError } } else { break retryLoop } Start-Sleep -Seconds ($resultCounter * 5) } while ($resultCounter -lt $maxRetries) } End { Write-Debug ('HttpRequest: ' + $JCHttpRequest); # Write-Debug ('HttpRequestContent: ' + $JCHttpRequestContent.Result); Write-Debug ('HttpResponse: ' + $JCHttpResponse.Result); # Write-Debug ('HttpResponseContent: ' + $JCHttpResponseContent.Result); # Clean up global variables $GlobalVars = @('JCHttpRequest', 'JCHttpRequestContent', 'JCHttpResponse', 'JCHttpResponseContent') $GlobalVars | ForEach-Object { If ((Get-Variable -Scope:('Global')).Where( { $_.Name -eq $_ })) { Remove-Variable -Name:($_) -Scope:('Global') } } Return $Results } } |