Functions/BloxOne/BloxOneTD/Set-B1InternalDomainList.ps1
function Set-B1InternalDomainList { <# .SYNOPSIS Updates an existing Internal Domain list .DESCRIPTION This function is used to update an existing Internal Domain list .PARAMETER Name The name of the Internal Domain list to update. The name can be updated by changing the value of name when using pipeline input .PARAMETER Description The new description for the Internal Domain list .PARAMETER Domains The list of domains to update the Internal Domain list with. This will overwrite the current list, so the existing list should be obtained and subtracted/appended prior to submission. .PARAMETER Tags A list of tags to update the Internal Domain list with. This will overwrite existing tags. .PARAMETER Object The Internal Domain List object to update. Expects pipeline input .EXAMPLE $List = Get-B1InternalDomainList -Name 'My List' $List.internal_domains += 'new.corp.local' $List | Set-B1InternalDomainList Internal Domain List updated successfully. created_time : 1/1/0001 12:00:00AM description : A list of domains id : 793538 internal_domains : {new.corp.local, ext.domain.corp, mydomain.corp, partner.corp} is_default : False name : My List tags : @{Owner=Me} updated_time : 1/1/0001 12:00:00AM .FUNCTIONALITY BloxOneDDI .FUNCTIONALITY Threat Defense #> param( [Parameter(Mandatory=$true,ParameterSetName="None")] [String]$Name, [Parameter(ParameterSetName="None")] [String]$Description, [Parameter(ParameterSetName="None")] [System.Object]$Domains, [Parameter(ParameterSetName="None")] [System.Object]$Tags, [Parameter( ValueFromPipeline = $true, ParameterSetName="Pipeline", Mandatory=$true )] [System.Object]$Object ) if (!($Object)) { $Object = Get-B1InternalDomainList -Name $Name -Strict if (!($Object)) { Write-Error "Unable to find Internal Domain list with name: $($Name)" return $null } else { if ($Domains) { $Object.internal_domains = $Domains } if ($Tags) { $Object.tags = $Tags } } } else { if (!($Object.id -and $($Object.name) -and $($Object.internal_domains))) { Write-Error 'Invalid input object. This cmdlet only accepts input from Get-B1InternalDomainList' return $null } } $Splat = $Object | Select-Object -Exclude created_time,updated_time,id,is_default $JSON = $Splat | ConvertTo-Json -Depth 4 $Result = Invoke-CSP -Method PUT -Uri "$(Get-B1CSPUrl)/api/atcfw/v1/internal_domain_lists/$($Object.id)" -Data $JSON | Select-Object -ExpandProperty results -EA SilentlyContinue -WA SilentlyContinue if ($Result.id -eq $($Object.id)) { Write-Host "Internal Domain List $Name updated successfully." -ForegroundColor Green return $Result } else { Write-Host "Failed to update Internal Domain List $Name." -ForegroundColor Red break } } |