Public/Set-VaasCertificateAssignment.ps1
function Set-VaasCertificateAssignment { <# .SYNOPSIS Associate certificates with applications .DESCRIPTION Associate one or more certificates with one or more applications. The associated applications can either replace or be added to existing. By default, applications will be replaced. .PARAMETER CertificateID Certificate ID to be associated .PARAMETER ApplicationID One or more application IDs .PARAMETER NoOverwrite Append to existing applications as opposed to overwriting .PARAMETER PassThru Return the newly updated certificate object(s) .PARAMETER VenafiSession Authentication for the function. The value defaults to the script session object $VenafiSession created by New-VenafiSession. A VaaS key can also provided. .INPUTS CertificateID .OUTPUTS PSCustomObject .EXAMPLE Set-VaasCertificateAssignment -CertificateID '7ac56ec0-2017-11ee-9417-a17dd25b82f9' -ApplicationID '96fc9310-67ec-11eb-a8a7-794fe75a8e6f' Associate a certificate to an application .EXAMPLE Set-VaasCertificateAssignment -CertificateID '7ac56ec0-2017-11ee-9417-a17dd25b82f9' -ApplicationID '96fc9310-67ec-11eb-a8a7-794fe75a8e6f', 'a05013bd-921d-440c-bc22-c9ead5c8d548' Associate a certificate to multiple applications .EXAMPLE Find-VenafiCertificate -First 5 | Set-VaasCertificateAssignment -ApplicationID '96fc9310-67ec-11eb-a8a7-794fe75a8e6f' Associate multiple certificates to 1 application .EXAMPLE Set-VaasCertificateAssignment -CertificateID '7ac56ec0-2017-11ee-9417-a17dd25b82f9' -ApplicationID '96fc9310-67ec-11eb-a8a7-794fe75a8e6f' -NoOverwrite Associate a certificate to another application, keeping the existing #> [CmdletBinding()] param ( [Parameter(Mandatory, ValueFromPipelineByPropertyName)] [string] $CertificateID, [Parameter(Mandatory)] [string[]] $ApplicationID, [Parameter()] [switch] $NoOverwrite, [Parameter()] [switch] $PassThru, [Parameter()] [Alias('Key')] [psobject] $VenafiSession = $script:VenafiSession ) begin { Test-VenafiSession -VenafiSession $VenafiSession -Platform 'VaaS' $params = @{ VenafiSession = $VenafiSession Method = 'Patch' UriRoot = 'outagedetection/v1' UriLeaf = 'applications/certificates' Body = @{ action = 'REPLACE' targetedApplicationIds = $ApplicationID } } if ( $NoOverwrite ) { $params.Body.action = 'ADD' } $allCerts = [System.Collections.Generic.List[object]]::new() } process { $allCerts.Add($CertificateID) } end { $params.Body.certificateIds = $allCerts $response = Invoke-VenafiRestMethod @params if ( $PassThru ) { $response.certificates } } } |