Public/Set-NicRuDnsZoneData.ps1
<#
.SYNOPSIS Get current DNS zone data .DESCRIPTION Получение текущего файла зоны для домена .PARAMETER Service DNS hosting service name .PARAMETER ZoneName DNS Zone name .PARAMETER ZoneData DNS Zone file .PARAMETER AccessToken Access token to use .LINK https://www.nic.ru/help/upload/file/API_DNS-hosting.pdf #> function Set-NicRuDnsZoneData { [CmdletBinding()] param( [Parameter(Mandatory)] [string]$Service, [Parameter(Mandatory)] [string]$ZoneName, [Parameter(Mandatory)] [string]$ZoneData, [string]$AccessToken ) if (-not $AccessToken) { $AccessToken = if ($GMNicRuDefaultToken) { $GMNicRuDefaultToken.access_token } else { $null } } if (-not $AccessToken) { throw "AccessToken required" } $Headers = @{ "Authorization" = "Bearer $AccessToken" } $requestParams = @{ Uri = "https://api.nic.ru/dns-master/services/$Service/zones/$(Get-Punycode $ZoneName)" Headers = $Headers ContentType = "application/json; charset=utf-8" Method = 'POST' Body = $ZoneData } Write-Verbose $requestParams.Uri $r = Invoke-RestMethod @requestParams @GMNicRuProxySettings if ($r -and $r.response) { if ($r.response.status -eq 'success') { } else { Write-Error $r.response.errors } } } |