## API Report File for "@azure/arm-dns"

> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).

```ts

import * as coreAuth from '@azure/core-auth';
import * as coreClient from '@azure/core-client';
import { PagedAsyncIterableIterator } from '@azure/core-paging';
import { PollerLike } from '@azure/core-lro';
import { PollOperationState } from '@azure/core-lro';

// @public
export interface AaaaRecord {
    ipv6Address?: string;
}

// @public
export interface ARecord {
    ipv4Address?: string;
}

// @public
export interface CaaRecord {
    flags?: number;
    tag?: string;
    value?: string;
}

// @public
export interface CloudError {
    error?: CloudErrorBody;
}

// @public
export interface CloudErrorBody {
    code?: string;
    details?: CloudErrorBody[];
    message?: string;
    target?: string;
}

// @public
export interface CnameRecord {
    cname?: string;
}

// @public (undocumented)
export class DnsManagementClient extends coreClient.ServiceClient {
    // (undocumented)
    $host: string;
    constructor(credentials: coreAuth.TokenCredential, subscriptionId: string, options?: DnsManagementClientOptionalParams);
    // (undocumented)
    apiVersion: string;
    // (undocumented)
    dnsResourceReferenceOperations: DnsResourceReferenceOperations;
    // (undocumented)
    recordSets: RecordSets;
    // (undocumented)
    subscriptionId: string;
    // (undocumented)
    zones: Zones;
}

// @public
export interface DnsManagementClientOptionalParams extends coreClient.ServiceClientOptions {
    $host?: string;
    apiVersion?: string;
    endpoint?: string;
}

// @public
export interface DnsResourceReference {
    dnsResources?: SubResource[];
    targetResource?: SubResource;
}

// @public
export interface DnsResourceReferenceGetByTargetResourcesOptionalParams extends coreClient.OperationOptions {
}

// @public
export type DnsResourceReferenceGetByTargetResourcesResponse = DnsResourceReferenceResult;

// @public
export interface DnsResourceReferenceOperations {
    getByTargetResources(parameters: DnsResourceReferenceRequest, options?: DnsResourceReferenceGetByTargetResourcesOptionalParams): Promise<DnsResourceReferenceGetByTargetResourcesResponse>;
}

// @public
export interface DnsResourceReferenceRequest {
    targetResources?: SubResource[];
}

// @public
export interface DnsResourceReferenceResult {
    dnsResourceReferences?: DnsResourceReference[];
}

// @public
export function getContinuationToken(page: unknown): string | undefined;

// @public
export interface MxRecord {
    exchange?: string;
    preference?: number;
}

// @public
export interface NsRecord {
    nsdname?: string;
}

// @public
export interface PtrRecord {
    ptrdname?: string;
}

// @public
export interface RecordSet {
    aaaaRecords?: AaaaRecord[];
    aRecords?: ARecord[];
    caaRecords?: CaaRecord[];
    cnameRecord?: CnameRecord;
    etag?: string;
    readonly fqdn?: string;
    readonly id?: string;
    metadata?: {
        [propertyName: string]: string;
    };
    mxRecords?: MxRecord[];
    readonly name?: string;
    nsRecords?: NsRecord[];
    readonly provisioningState?: string;
    ptrRecords?: PtrRecord[];
    soaRecord?: SoaRecord;
    srvRecords?: SrvRecord[];
    targetResource?: SubResource;
    ttl?: number;
    txtRecords?: TxtRecord[];
    readonly type?: string;
}

// @public
export interface RecordSetListResult {
    readonly nextLink?: string;
    value?: RecordSet[];
}

// @public
export interface RecordSets {
    createOrUpdate(resourceGroupName: string, zoneName: string, relativeRecordSetName: string, recordType: RecordType, parameters: RecordSet, options?: RecordSetsCreateOrUpdateOptionalParams): Promise<RecordSetsCreateOrUpdateResponse>;
    delete(resourceGroupName: string, zoneName: string, relativeRecordSetName: string, recordType: RecordType, options?: RecordSetsDeleteOptionalParams): Promise<void>;
    get(resourceGroupName: string, zoneName: string, relativeRecordSetName: string, recordType: RecordType, options?: RecordSetsGetOptionalParams): Promise<RecordSetsGetResponse>;
    listAllByDnsZone(resourceGroupName: string, zoneName: string, options?: RecordSetsListAllByDnsZoneOptionalParams): PagedAsyncIterableIterator<RecordSet>;
    listByDnsZone(resourceGroupName: string, zoneName: string, options?: RecordSetsListByDnsZoneOptionalParams): PagedAsyncIterableIterator<RecordSet>;
    listByType(resourceGroupName: string, zoneName: string, recordType: RecordType, options?: RecordSetsListByTypeOptionalParams): PagedAsyncIterableIterator<RecordSet>;
    update(resourceGroupName: string, zoneName: string, relativeRecordSetName: string, recordType: RecordType, parameters: RecordSet, options?: RecordSetsUpdateOptionalParams): Promise<RecordSetsUpdateResponse>;
}

// @public
export interface RecordSetsCreateOrUpdateOptionalParams extends coreClient.OperationOptions {
    ifMatch?: string;
    ifNoneMatch?: string;
}

// @public
export type RecordSetsCreateOrUpdateResponse = RecordSet;

// @public
export interface RecordSetsDeleteOptionalParams extends coreClient.OperationOptions {
    ifMatch?: string;
}

// @public
export interface RecordSetsGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type RecordSetsGetResponse = RecordSet;

// @public
export interface RecordSetsListAllByDnsZoneNextOptionalParams extends coreClient.OperationOptions {
    recordSetNameSuffix?: string;
    top?: number;
}

// @public
export type RecordSetsListAllByDnsZoneNextResponse = RecordSetListResult;

// @public
export interface RecordSetsListAllByDnsZoneOptionalParams extends coreClient.OperationOptions {
    recordSetNameSuffix?: string;
    top?: number;
}

// @public
export type RecordSetsListAllByDnsZoneResponse = RecordSetListResult;

// @public
export interface RecordSetsListByDnsZoneNextOptionalParams extends coreClient.OperationOptions {
    recordsetnamesuffix?: string;
    top?: number;
}

// @public
export type RecordSetsListByDnsZoneNextResponse = RecordSetListResult;

// @public
export interface RecordSetsListByDnsZoneOptionalParams extends coreClient.OperationOptions {
    recordsetnamesuffix?: string;
    top?: number;
}

// @public
export type RecordSetsListByDnsZoneResponse = RecordSetListResult;

// @public
export interface RecordSetsListByTypeNextOptionalParams extends coreClient.OperationOptions {
    recordsetnamesuffix?: string;
    top?: number;
}

// @public
export type RecordSetsListByTypeNextResponse = RecordSetListResult;

// @public
export interface RecordSetsListByTypeOptionalParams extends coreClient.OperationOptions {
    recordsetnamesuffix?: string;
    top?: number;
}

// @public
export type RecordSetsListByTypeResponse = RecordSetListResult;

// @public
export interface RecordSetsUpdateOptionalParams extends coreClient.OperationOptions {
    ifMatch?: string;
}

// @public
export type RecordSetsUpdateResponse = RecordSet;

// @public
export interface RecordSetUpdateParameters {
    recordSet?: RecordSet;
}

// @public
export type RecordType = "A" | "AAAA" | "CAA" | "CNAME" | "MX" | "NS" | "PTR" | "SOA" | "SRV" | "TXT";

// @public
export interface Resource {
    readonly id?: string;
    location: string;
    readonly name?: string;
    tags?: {
        [propertyName: string]: string;
    };
    readonly type?: string;
}

// @public
export interface SoaRecord {
    email?: string;
    expireTime?: number;
    host?: string;
    minimumTtl?: number;
    refreshTime?: number;
    retryTime?: number;
    serialNumber?: number;
}

// @public
export interface SrvRecord {
    port?: number;
    priority?: number;
    target?: string;
    weight?: number;
}

// @public
export interface SubResource {
    id?: string;
}

// @public
export interface TxtRecord {
    value?: string[];
}

// @public
export interface Zone extends Resource {
    etag?: string;
    readonly maxNumberOfRecordSets?: number;
    readonly maxNumberOfRecordsPerRecordSet?: number;
    readonly nameServers?: string[];
    readonly numberOfRecordSets?: number;
    registrationVirtualNetworks?: SubResource[];
    resolutionVirtualNetworks?: SubResource[];
    zoneType?: ZoneType;
}

// @public
export interface ZoneListResult {
    readonly nextLink?: string;
    value?: Zone[];
}

// @public
export interface Zones {
    beginDelete(resourceGroupName: string, zoneName: string, options?: ZonesDeleteOptionalParams): Promise<PollerLike<PollOperationState<void>, void>>;
    beginDeleteAndWait(resourceGroupName: string, zoneName: string, options?: ZonesDeleteOptionalParams): Promise<void>;
    createOrUpdate(resourceGroupName: string, zoneName: string, parameters: Zone, options?: ZonesCreateOrUpdateOptionalParams): Promise<ZonesCreateOrUpdateResponse>;
    get(resourceGroupName: string, zoneName: string, options?: ZonesGetOptionalParams): Promise<ZonesGetResponse>;
    list(options?: ZonesListOptionalParams): PagedAsyncIterableIterator<Zone>;
    listByResourceGroup(resourceGroupName: string, options?: ZonesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<Zone>;
    update(resourceGroupName: string, zoneName: string, parameters: ZoneUpdate, options?: ZonesUpdateOptionalParams): Promise<ZonesUpdateResponse>;
}

// @public
export interface ZonesCreateOrUpdateOptionalParams extends coreClient.OperationOptions {
    ifMatch?: string;
    ifNoneMatch?: string;
}

// @public
export type ZonesCreateOrUpdateResponse = Zone;

// @public
export interface ZonesDeleteOptionalParams extends coreClient.OperationOptions {
    ifMatch?: string;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export interface ZonesGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ZonesGetResponse = Zone;

// @public
export interface ZonesListByResourceGroupNextOptionalParams extends coreClient.OperationOptions {
    top?: number;
}

// @public
export type ZonesListByResourceGroupNextResponse = ZoneListResult;

// @public
export interface ZonesListByResourceGroupOptionalParams extends coreClient.OperationOptions {
    top?: number;
}

// @public
export type ZonesListByResourceGroupResponse = ZoneListResult;

// @public
export interface ZonesListNextOptionalParams extends coreClient.OperationOptions {
    top?: number;
}

// @public
export type ZonesListNextResponse = ZoneListResult;

// @public
export interface ZonesListOptionalParams extends coreClient.OperationOptions {
    top?: number;
}

// @public
export type ZonesListResponse = ZoneListResult;

// @public
export interface ZonesUpdateOptionalParams extends coreClient.OperationOptions {
    ifMatch?: string;
}

// @public
export type ZonesUpdateResponse = Zone;

// @public
export type ZoneType = "Public" | "Private";

// @public
export interface ZoneUpdate {
    tags?: {
        [propertyName: string]: string;
    };
}

// (No @packageDocumentation comment for this package)

```
