Private/ASD/Invoke-APIOnypheASDDnsDomainNsExist.ps1
|
Function Invoke-APIOnypheASDDnsDomainNsExist { <# .SYNOPSIS create input for Invoke-OnypheAPIV2 function and then call it to query the ASD Dns Domain Ns Exist APIv1 .DESCRIPTION create input for Invoke-OnypheAPIV2 function and then call it to query the ASD Dns Domain Ns Exist APIv1 - checks whether the given domain(s) have an existing NS record (a live DNS lookup), returning {"domain":"...","exist":"true"|"false"} per domain. Live-tested 2026-09-19: "onyphe.io", "microsoft.com", "sovcloud-core.fr" and "sovcloud-api.fr" all returned "exist":"true"; a deliberately made-up domain ("doesnotexist-abc123xyz.io") returned "exist":"false" - confirms the endpoint performs a real live check rather than always returning true. Same bare "domain"-array request body as Invoke-APIOnypheASDDnsDomainExist. Like that sibling endpoint, Onyphe does not document -IncludePattern/-ExcludePattern/-Untrusted for this one either, so they are not exposed here. BETA endpoint, requires a Griffin View or Griffin View ASM Edition subscription with a non-commercial use licence (see Get-OnypheUserInfo's asd.stdapis property). .PARAMETER Domain -Domain string[] one or more domains to query .PARAMETER AsLines -AsLines switch render results as one JSON object per line instead of with context (server default is with context) .PARAMETER APIKEY -APIKey string{APIKEY} Set APIKEY as global variable .PARAMETER FuncInput -FuncInput hashtable original bound parameters of the calling wrapper, threaded through to the result object's cli-func_input property .OUTPUTS TypeName: PSOnyphe .EXAMPLE C:\PS> Invoke-APIOnypheASDDnsDomainNsExist -Domain onyphe.io #> [cmdletbinding()] Param ( [parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string[]]$Domain, [parameter(Mandatory=$false)] [switch]$AsLines, [parameter(Mandatory=$false)] [ValidateLength(40,40)] [string]$APIKey, [parameter(Mandatory=$false)] [ValidateNotNullOrEmpty()] [hashtable]$FuncInput ) Process { if ($APIKey) {Set-OnypheAPIKey -APIKey $APIKey | out-null} $Body = [ordered]@{ domain = $Domain } if ($AsLines) { $Body.aslines = $true } $params = @{ request = "v1/asd/dns/domain/ns/exist" APIInfo = "asd/dns/domain/ns/exist" APIInput = @($Domain) APIKeyrequired = $true APIVersion = "1" Data = $Body | ConvertTo-Json } if ($FuncInput) { $params.add("FuncInput", $FuncInput) } Write-Verbose -message "URL Info : $($params.request)" Write-Verbose -message "POST JSON Data : $($Body | ConvertTo-Json)" Invoke-OnypheAPIV2 @params } } |