114 lines
2.6 KiB
TypeScript
114 lines
2.6 KiB
TypeScript
|
|
import * as plugins from '../plugins.js';
|
||
|
|
import type * as authInterfaces from '../data/auth.js';
|
||
|
|
import type { IDnsRecord, TDnsRecordType } from '../data/dns-record.js';
|
||
|
|
|
||
|
|
// ============================================================================
|
||
|
|
// DNS Record Endpoints
|
||
|
|
// ============================================================================
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get all DNS records for a domain.
|
||
|
|
*/
|
||
|
|
export interface IReq_GetDnsRecords extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_GetDnsRecords
|
||
|
|
> {
|
||
|
|
method: 'getDnsRecords';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
domainId: string;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
records: IDnsRecord[];
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get a single DNS record by id.
|
||
|
|
*/
|
||
|
|
export interface IReq_GetDnsRecord extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_GetDnsRecord
|
||
|
|
> {
|
||
|
|
method: 'getDnsRecord';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
id: string;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
record: IDnsRecord | null;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new DNS record.
|
||
|
|
*
|
||
|
|
* For manual domains: registers the record with the embedded DnsServer.
|
||
|
|
* For provider domains: pushes the record to the provider API.
|
||
|
|
*/
|
||
|
|
export interface IReq_CreateDnsRecord extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_CreateDnsRecord
|
||
|
|
> {
|
||
|
|
method: 'createDnsRecord';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
domainId: string;
|
||
|
|
name: string;
|
||
|
|
type: TDnsRecordType;
|
||
|
|
value: string;
|
||
|
|
ttl?: number;
|
||
|
|
proxied?: boolean;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
id?: string;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Update a DNS record.
|
||
|
|
*/
|
||
|
|
export interface IReq_UpdateDnsRecord extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_UpdateDnsRecord
|
||
|
|
> {
|
||
|
|
method: 'updateDnsRecord';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
id: string;
|
||
|
|
name?: string;
|
||
|
|
value?: string;
|
||
|
|
ttl?: number;
|
||
|
|
proxied?: boolean;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Delete a DNS record.
|
||
|
|
*/
|
||
|
|
export interface IReq_DeleteDnsRecord extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_DeleteDnsRecord
|
||
|
|
> {
|
||
|
|
method: 'deleteDnsRecord';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
id: string;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|