cloudflare
Version:
The official TypeScript library for the Cloudflare API
1,669 lines (1,668 loc) • 318 kB
TypeScript
import { APIResource } from "../../resource.js";
import * as Core from "../../core.js";
import * as RecordsAPI from "./records.js";
import * as Shared from "../shared.js";
import { V4PagePaginationArray, type V4PagePaginationArrayParams } from "../../pagination.js";
export declare class Records extends APIResource {
/**
* Create a new DNS record for a zone.
*
* Notes:
*
* - A/AAAA records cannot exist on the same name as CNAME records.
* - NS records cannot exist on the same name as any other record type.
* - Domain names are always represented in Punycode, even if Unicode characters
* were used when creating the record.
*/
create(params: RecordCreateParams, options?: Core.RequestOptions): Core.APIPromise<RecordResponse>;
/**
* Overwrite an existing DNS record.
*
* Notes:
*
* - A/AAAA records cannot exist on the same name as CNAME records.
* - NS records cannot exist on the same name as any other record type.
* - Domain names are always represented in Punycode, even if Unicode characters
* were used when creating the record.
*/
update(dnsRecordId: string, params: RecordUpdateParams, options?: Core.RequestOptions): Core.APIPromise<RecordResponse>;
/**
* List, search, sort, and filter a zones' DNS records.
*/
list(params: RecordListParams, options?: Core.RequestOptions): Core.PagePromise<RecordResponsesV4PagePaginationArray, RecordResponse>;
/**
* Delete DNS Record
*/
delete(dnsRecordId: string, params: RecordDeleteParams, options?: Core.RequestOptions): Core.APIPromise<RecordDeleteResponse>;
/**
* Send a Batch of DNS Record API calls to be executed together.
*
* Notes:
*
* - Although Cloudflare will execute the batched operations in a single database
* transaction, Cloudflare's distributed KV store must treat each record change
* as a single key-value pair. This means that the propagation of changes is not
* atomic. See
* [the documentation](https://developers.cloudflare.com/dns/manage-dns-records/how-to/batch-record-changes/ "Batch DNS records")
* for more information.
* - The operations you specify within the /batch request body are always executed
* in the following order:
*
* - Deletes
* - Patches
* - Puts
* - Posts
*/
batch(params: RecordBatchParams, options?: Core.RequestOptions): Core.APIPromise<RecordBatchResponse>;
/**
* Update an existing DNS record.
*
* Notes:
*
* - A/AAAA records cannot exist on the same name as CNAME records.
* - NS records cannot exist on the same name as any other record type.
* - Domain names are always represented in Punycode, even if Unicode characters
* were used when creating the record.
*/
edit(dnsRecordId: string, params: RecordEditParams, options?: Core.RequestOptions): Core.APIPromise<RecordResponse>;
/**
* You can export your
* [BIND config](https://en.wikipedia.org/wiki/Zone_file "Zone file") through this
* endpoint.
*
* See
* [the documentation](https://developers.cloudflare.com/dns/manage-dns-records/how-to/import-and-export/ "Import and export records")
* for more information.
*/
export(params: RecordExportParams, options?: Core.RequestOptions): Core.APIPromise<string>;
/**
* DNS Record Details
*/
get(dnsRecordId: string, params: RecordGetParams, options?: Core.RequestOptions): Core.APIPromise<RecordResponse>;
/**
* You can upload your
* [BIND config](https://en.wikipedia.org/wiki/Zone_file "Zone file") through this
* endpoint. It assumes that cURL is called from a location with bind_config.txt
* (valid BIND config) present.
*
* See
* [the documentation](https://developers.cloudflare.com/dns/manage-dns-records/how-to/import-and-export/ "Import and export records")
* for more information.
*/
import(params: RecordImportParams, options?: Core.RequestOptions): Core.APIPromise<RecordImportResponse>;
/**
* Scan for common DNS records on your domain and automatically add them to your
* zone. Useful if you haven't updated your nameservers yet.
*/
scan(params: RecordScanParams, options?: Core.RequestOptions): Core.APIPromise<RecordScanResponse>;
}
export declare class RecordResponsesV4PagePaginationArray extends V4PagePaginationArray<RecordResponse> {
}
export interface ARecord {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A valid IPv4 address.
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: ARecord.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTL;
/**
* Record type.
*/
type?: 'A';
}
export declare namespace ARecord {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface ARecordParam {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A valid IPv4 address.
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: ARecordParam.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTLParam;
/**
* Record type.
*/
type?: 'A';
}
export declare namespace ARecordParam {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface AAAARecord {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A valid IPv6 address.
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: AAAARecord.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTL;
/**
* Record type.
*/
type?: 'AAAA';
}
export declare namespace AAAARecord {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface AAAARecordParam {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A valid IPv6 address.
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: AAAARecordParam.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTLParam;
/**
* Record type.
*/
type?: 'AAAA';
}
export declare namespace AAAARecordParam {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export type BatchPatch = BatchPatch.A | BatchPatch.AAAA | BatchPatch.CAA | BatchPatch.CERT | BatchPatch.CNAME | BatchPatch.DNSKEY | BatchPatch.DS | BatchPatch.HTTPS | BatchPatch.LOC | BatchPatch.MX | BatchPatch.NAPTR | BatchPatch.NS | BatchPatch.Openpgpkey | BatchPatch.PTR | BatchPatch.SMIMEA | BatchPatch.SRV | BatchPatch.SSHFP | BatchPatch.SVCB | BatchPatch.TLSA | BatchPatch.TXT | BatchPatch.URI;
export declare namespace BatchPatch {
interface A extends RecordsAPI.ARecord {
/**
* Identifier
*/
id: string;
}
interface AAAA extends RecordsAPI.AAAARecord {
/**
* Identifier
*/
id: string;
}
interface CAA extends RecordsAPI.CAARecord {
/**
* Identifier
*/
id: string;
}
interface CERT extends RecordsAPI.CERTRecord {
/**
* Identifier
*/
id: string;
}
interface CNAME extends RecordsAPI.CNAMERecord {
/**
* Identifier
*/
id: string;
}
interface DNSKEY extends RecordsAPI.DNSKEYRecord {
/**
* Identifier
*/
id: string;
}
interface DS extends RecordsAPI.DSRecord {
/**
* Identifier
*/
id: string;
}
interface HTTPS extends RecordsAPI.HTTPSRecord {
/**
* Identifier
*/
id: string;
}
interface LOC extends RecordsAPI.LOCRecord {
/**
* Identifier
*/
id: string;
}
interface MX extends RecordsAPI.MXRecord {
/**
* Identifier
*/
id: string;
}
interface NAPTR extends RecordsAPI.NAPTRRecord {
/**
* Identifier
*/
id: string;
}
interface NS extends RecordsAPI.NSRecord {
/**
* Identifier
*/
id: string;
}
interface Openpgpkey {
/**
* Identifier
*/
id: string;
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1)
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: Openpgpkey.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordsAPI.RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: RecordsAPI.TTL;
/**
* Record type.
*/
type?: 'OPENPGPKEY';
}
namespace Openpgpkey {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
interface PTR extends RecordsAPI.PTRRecord {
/**
* Identifier
*/
id: string;
}
interface SMIMEA extends RecordsAPI.SMIMEARecord {
/**
* Identifier
*/
id: string;
}
interface SRV extends RecordsAPI.SRVRecord {
/**
* Identifier
*/
id: string;
}
interface SSHFP extends RecordsAPI.SSHFPRecord {
/**
* Identifier
*/
id: string;
}
interface SVCB extends RecordsAPI.SVCBRecord {
/**
* Identifier
*/
id: string;
}
interface TLSA extends RecordsAPI.TLSARecord {
/**
* Identifier
*/
id: string;
}
interface TXT extends RecordsAPI.TXTRecord {
/**
* Identifier
*/
id: string;
}
interface URI extends RecordsAPI.URIRecord {
/**
* Identifier
*/
id: string;
}
}
export type BatchPatchParam = BatchPatchParam.A | BatchPatchParam.AAAA | BatchPatchParam.CAA | BatchPatchParam.CERT | BatchPatchParam.CNAME | BatchPatchParam.DNSKEY | BatchPatchParam.DS | BatchPatchParam.HTTPS | BatchPatchParam.LOC | BatchPatchParam.MX | BatchPatchParam.NAPTR | BatchPatchParam.NS | BatchPatchParam.Openpgpkey | BatchPatchParam.PTR | BatchPatchParam.SMIMEA | BatchPatchParam.SRV | BatchPatchParam.SSHFP | BatchPatchParam.SVCB | BatchPatchParam.TLSA | BatchPatchParam.TXT | BatchPatchParam.URI;
export declare namespace BatchPatchParam {
interface A extends RecordsAPI.ARecordParam {
/**
* Identifier
*/
id: string;
}
interface AAAA extends RecordsAPI.AAAARecordParam {
/**
* Identifier
*/
id: string;
}
interface CAA extends RecordsAPI.CAARecordParam {
/**
* Identifier
*/
id: string;
}
interface CERT extends RecordsAPI.CERTRecordParam {
/**
* Identifier
*/
id: string;
}
interface CNAME extends RecordsAPI.CNAMERecordParam {
/**
* Identifier
*/
id: string;
}
interface DNSKEY extends RecordsAPI.DNSKEYRecordParam {
/**
* Identifier
*/
id: string;
}
interface DS extends RecordsAPI.DSRecordParam {
/**
* Identifier
*/
id: string;
}
interface HTTPS extends RecordsAPI.HTTPSRecordParam {
/**
* Identifier
*/
id: string;
}
interface LOC extends RecordsAPI.LOCRecordParam {
/**
* Identifier
*/
id: string;
}
interface MX extends RecordsAPI.MXRecordParam {
/**
* Identifier
*/
id: string;
}
interface NAPTR extends RecordsAPI.NAPTRRecordParam {
/**
* Identifier
*/
id: string;
}
interface NS extends RecordsAPI.NSRecordParam {
/**
* Identifier
*/
id: string;
}
interface Openpgpkey {
/**
* Identifier
*/
id: string;
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1)
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: Openpgpkey.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordsAPI.RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: RecordsAPI.TTLParam;
/**
* Record type.
*/
type?: 'OPENPGPKEY';
}
namespace Openpgpkey {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
interface PTR extends RecordsAPI.PTRRecordParam {
/**
* Identifier
*/
id: string;
}
interface SMIMEA extends RecordsAPI.SMIMEARecordParam {
/**
* Identifier
*/
id: string;
}
interface SRV extends RecordsAPI.SRVRecordParam {
/**
* Identifier
*/
id: string;
}
interface SSHFP extends RecordsAPI.SSHFPRecordParam {
/**
* Identifier
*/
id: string;
}
interface SVCB extends RecordsAPI.SVCBRecordParam {
/**
* Identifier
*/
id: string;
}
interface TLSA extends RecordsAPI.TLSARecordParam {
/**
* Identifier
*/
id: string;
}
interface TXT extends RecordsAPI.TXTRecordParam {
/**
* Identifier
*/
id: string;
}
interface URI extends RecordsAPI.URIRecordParam {
/**
* Identifier
*/
id: string;
}
}
export type BatchPut = BatchPut.A | BatchPut.AAAA | BatchPut.CAA | BatchPut.CERT | BatchPut.CNAME | BatchPut.DNSKEY | BatchPut.DS | BatchPut.HTTPS | BatchPut.LOC | BatchPut.MX | BatchPut.NAPTR | BatchPut.NS | BatchPut.Openpgpkey | BatchPut.PTR | BatchPut.SMIMEA | BatchPut.SRV | BatchPut.SSHFP | BatchPut.SVCB | BatchPut.TLSA | BatchPut.TXT | BatchPut.URI;
export declare namespace BatchPut {
interface A extends RecordsAPI.ARecord {
/**
* Identifier
*/
id?: string;
}
interface AAAA extends RecordsAPI.AAAARecord {
/**
* Identifier
*/
id?: string;
}
interface CAA extends RecordsAPI.CAARecord {
/**
* Identifier
*/
id?: string;
}
interface CERT extends RecordsAPI.CERTRecord {
/**
* Identifier
*/
id?: string;
}
interface CNAME extends RecordsAPI.CNAMERecord {
/**
* Identifier
*/
id?: string;
}
interface DNSKEY extends RecordsAPI.DNSKEYRecord {
/**
* Identifier
*/
id?: string;
}
interface DS extends RecordsAPI.DSRecord {
/**
* Identifier
*/
id?: string;
}
interface HTTPS extends RecordsAPI.HTTPSRecord {
/**
* Identifier
*/
id?: string;
}
interface LOC extends RecordsAPI.LOCRecord {
/**
* Identifier
*/
id?: string;
}
interface MX extends RecordsAPI.MXRecord {
/**
* Identifier
*/
id?: string;
}
interface NAPTR extends RecordsAPI.NAPTRRecord {
/**
* Identifier
*/
id?: string;
}
interface NS extends RecordsAPI.NSRecord {
/**
* Identifier
*/
id?: string;
}
interface Openpgpkey {
/**
* A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1)
*/
content: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name: string;
/**
* Record type.
*/
type: 'OPENPGPKEY';
/**
* Identifier
*/
id?: string;
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: Openpgpkey.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordsAPI.RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: RecordsAPI.TTL;
}
namespace Openpgpkey {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
interface PTR extends RecordsAPI.PTRRecord {
/**
* Identifier
*/
id?: string;
}
interface SMIMEA extends RecordsAPI.SMIMEARecord {
/**
* Identifier
*/
id?: string;
}
interface SRV extends RecordsAPI.SRVRecord {
/**
* Identifier
*/
id?: string;
}
interface SSHFP extends RecordsAPI.SSHFPRecord {
/**
* Identifier
*/
id?: string;
}
interface SVCB extends RecordsAPI.SVCBRecord {
/**
* Identifier
*/
id?: string;
}
interface TLSA extends RecordsAPI.TLSARecord {
/**
* Identifier
*/
id?: string;
}
interface TXT extends RecordsAPI.TXTRecord {
/**
* Identifier
*/
id?: string;
}
interface URI extends RecordsAPI.URIRecord {
/**
* Identifier
*/
id?: string;
}
}
export type BatchPutParam = BatchPutParam.A | BatchPutParam.AAAA | BatchPutParam.CAA | BatchPutParam.CERT | BatchPutParam.CNAME | BatchPutParam.DNSKEY | BatchPutParam.DS | BatchPutParam.HTTPS | BatchPutParam.LOC | BatchPutParam.MX | BatchPutParam.NAPTR | BatchPutParam.NS | BatchPutParam.Openpgpkey | BatchPutParam.PTR | BatchPutParam.SMIMEA | BatchPutParam.SRV | BatchPutParam.SSHFP | BatchPutParam.SVCB | BatchPutParam.TLSA | BatchPutParam.TXT | BatchPutParam.URI;
export declare namespace BatchPutParam {
interface A extends RecordsAPI.ARecordParam {
/**
* Identifier
*/
id?: string;
}
interface AAAA extends RecordsAPI.AAAARecordParam {
/**
* Identifier
*/
id?: string;
}
interface CAA extends RecordsAPI.CAARecordParam {
/**
* Identifier
*/
id?: string;
}
interface CERT extends RecordsAPI.CERTRecordParam {
/**
* Identifier
*/
id?: string;
}
interface CNAME extends RecordsAPI.CNAMERecordParam {
/**
* Identifier
*/
id?: string;
}
interface DNSKEY extends RecordsAPI.DNSKEYRecordParam {
/**
* Identifier
*/
id?: string;
}
interface DS extends RecordsAPI.DSRecordParam {
/**
* Identifier
*/
id?: string;
}
interface HTTPS extends RecordsAPI.HTTPSRecordParam {
/**
* Identifier
*/
id?: string;
}
interface LOC extends RecordsAPI.LOCRecordParam {
/**
* Identifier
*/
id?: string;
}
interface MX extends RecordsAPI.MXRecordParam {
/**
* Identifier
*/
id?: string;
}
interface NAPTR extends RecordsAPI.NAPTRRecordParam {
/**
* Identifier
*/
id?: string;
}
interface NS extends RecordsAPI.NSRecordParam {
/**
* Identifier
*/
id?: string;
}
interface Openpgpkey {
/**
* A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1)
*/
content: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name: string;
/**
* Record type.
*/
type: 'OPENPGPKEY';
/**
* Identifier
*/
id?: string;
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: Openpgpkey.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordsAPI.RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: RecordsAPI.TTLParam;
}
namespace Openpgpkey {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
interface PTR extends RecordsAPI.PTRRecordParam {
/**
* Identifier
*/
id?: string;
}
interface SMIMEA extends RecordsAPI.SMIMEARecordParam {
/**
* Identifier
*/
id?: string;
}
interface SRV extends RecordsAPI.SRVRecordParam {
/**
* Identifier
*/
id?: string;
}
interface SSHFP extends RecordsAPI.SSHFPRecordParam {
/**
* Identifier
*/
id?: string;
}
interface SVCB extends RecordsAPI.SVCBRecordParam {
/**
* Identifier
*/
id?: string;
}
interface TLSA extends RecordsAPI.TLSARecordParam {
/**
* Identifier
*/
id?: string;
}
interface TXT extends RecordsAPI.TXTRecordParam {
/**
* Identifier
*/
id?: string;
}
interface URI extends RecordsAPI.URIRecordParam {
/**
* Identifier
*/
id?: string;
}
}
export interface CAARecord {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Formatted CAA content. See 'data' to set CAA properties.
*/
content?: string;
/**
* Components of a CAA record.
*/
data?: CAARecord.Data;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: CAARecord.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTL;
/**
* Record type.
*/
type?: 'CAA';
}
export declare namespace CAARecord {
/**
* Components of a CAA record.
*/
interface Data {
/**
* Flags for the CAA record.
*/
flags?: number;
/**
* Name of the property controlled by this record (e.g.: issue, issuewild, iodef).
*/
tag?: string;
/**
* Value of the record. This field's semantics depend on the chosen tag.
*/
value?: string;
}
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface CAARecordParam {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Components of a CAA record.
*/
data?: CAARecordParam.Data;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: CAARecordParam.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTLParam;
/**
* Record type.
*/
type?: 'CAA';
}
export declare namespace CAARecordParam {
/**
* Components of a CAA record.
*/
interface Data {
/**
* Flags for the CAA record.
*/
flags?: number;
/**
* Name of the property controlled by this record (e.g.: issue, issuewild, iodef).
*/
tag?: string;
/**
* Value of the record. This field's semantics depend on the chosen tag.
*/
value?: string;
}
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface CERTRecord {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Formatted CERT content. See 'data' to set CERT properties.
*/
content?: string;
/**
* Components of a CERT record.
*/
data?: CERTRecord.Data;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: CERTRecord.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTL;
/**
* Record type.
*/
type?: 'CERT';
}
export declare namespace CERTRecord {
/**
* Components of a CERT record.
*/
interface Data {
/**
* Algorithm.
*/
algorithm?: number;
/**
* Certificate.
*/
certificate?: string;
/**
* Key Tag.
*/
key_tag?: number;
/**
* Type.
*/
type?: number;
}
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface CERTRecordParam {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Components of a CERT record.
*/
data?: CERTRecordParam.Data;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: CERTRecordParam.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTLParam;
/**
* Record type.
*/
type?: 'CERT';
}
export declare namespace CERTRecordParam {
/**
* Components of a CERT record.
*/
interface Data {
/**
* Algorithm.
*/
algorithm?: number;
/**
* Certificate.
*/
certificate?: string;
/**
* Key Tag.
*/
key_tag?: number;
/**
* Type.
*/
type?: number;
}
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface CNAMERecord {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A valid hostname. Must not match the record's name.
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: CNAMERecord.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTL;
/**
* Record type.
*/
type?: 'CNAME';
}
export declare namespace CNAMERecord {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* If enabled, causes the CNAME record to be resolved externally and the resulting
* address records (e.g., A and AAAA) to be returned instead of the CNAME record
* itself. This setting is unavailable for proxied records, since they are always
* flattened.
*/
flatten_cname?: boolean;
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface CNAMERecordParam {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* A valid hostname. Must not match the record's name.
*/
content?: string;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: CNAMERecordParam.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTLParam;
/**
* Record type.
*/
type?: 'CNAME';
}
export declare namespace CNAMERecordParam {
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* If enabled, causes the CNAME record to be resolved externally and the resulting
* address records (e.g., A and AAAA) to be returned instead of the CNAME record
* itself. This setting is unavailable for proxied records, since they are always
* flattened.
*/
flatten_cname?: boolean;
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface DNSKEYRecord {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Formatted DNSKEY content. See 'data' to set DNSKEY properties.
*/
content?: string;
/**
* Components of a DNSKEY record.
*/
data?: DNSKEYRecord.Data;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: DNSKEYRecord.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTags>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTL;
/**
* Record type.
*/
type?: 'DNSKEY';
}
export declare namespace DNSKEYRecord {
/**
* Components of a DNSKEY record.
*/
interface Data {
/**
* Algorithm.
*/
algorithm?: number;
/**
* Flags.
*/
flags?: number;
/**
* Protocol.
*/
protocol?: number;
/**
* Public Key.
*/
public_key?: string;
}
/**
* Settings for the DNS record.
*/
interface Settings {
/**
* When enabled, only A records will be generated, and AAAA records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv4_only?: boolean;
/**
* When enabled, only AAAA records will be generated, and A records will not be
* created. This setting is intended for exceptional cases. Note that this option
* only applies to proxied records and it has no effect on whether Cloudflare
* communicates with the origin using IPv4 or IPv6.
*/
ipv6_only?: boolean;
}
}
export interface DNSKEYRecordParam {
/**
* Comments or notes about the DNS record. This field has no effect on DNS
* responses.
*/
comment?: string;
/**
* Components of a DNSKEY record.
*/
data?: DNSKEYRecordParam.Data;
/**
* DNS record name (or @ for the zone apex) in Punycode.
*/
name?: string;
/**
* Whether the record is receiving the performance and security benefits of
* Cloudflare.
*/
proxied?: boolean;
/**
* Settings for the DNS record.
*/
settings?: DNSKEYRecordParam.Settings;
/**
* Custom tags for the DNS record. This field has no effect on DNS responses.
*/
tags?: Array<RecordTagsParam>;
/**
* Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'.
* Value must be between 60 and 86400, with the minimum reduced to 30 for
* Enterprise zones.
*/
ttl?: TTLParam;
/**
* Record type.
*/
type?: 'DNSKEY';
}
export declare namespace DNSKEYRecordParam {
/**
* Components of a DNSKEY record.
*/
interface Data {
/**
* Algorithm.
*/
algorithm?: number;
/**
* Flags.
*/
flags?: number;
/**