feat(dns): Implement DNS management functionality
- Added DnsManager and DnsEntry classes to handle DNS entries. - Introduced new interfaces for DNS entry requests and data structures. - Updated Cloudly class to include DnsManager instance. - Enhanced app state to manage DNS entries and actions for creating, updating, and deleting DNS records. - Created UI components for DNS management, including forms for adding and editing DNS entries. - Updated overview and services views to reflect DNS entries. - Added validation and formatting methods for DNS entries.
This commit is contained in:
99
ts_interfaces/requests/domain.ts
Normal file
99
ts_interfaces/requests/domain.ts
Normal file
@@ -0,0 +1,99 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { IDomain } from '../data/domain.js';
|
||||
import type { IIdentity } from '../data/user.js';
|
||||
|
||||
export interface IRequest_Any_Cloudly_GetDomains
|
||||
extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IRequest_Any_Cloudly_GetDomains
|
||||
> {
|
||||
method: 'getDomains';
|
||||
request: {
|
||||
identity: IIdentity;
|
||||
};
|
||||
response: {
|
||||
domains: IDomain[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_GetDomainById
|
||||
extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IRequest_Any_Cloudly_GetDomainById
|
||||
> {
|
||||
method: 'getDomainById';
|
||||
request: {
|
||||
identity: IIdentity;
|
||||
domainId: string;
|
||||
};
|
||||
response: {
|
||||
domain: IDomain;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_CreateDomain
|
||||
extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IRequest_Any_Cloudly_CreateDomain
|
||||
> {
|
||||
method: 'createDomain';
|
||||
request: {
|
||||
identity: IIdentity;
|
||||
domainData: IDomain['data'];
|
||||
};
|
||||
response: {
|
||||
domain: IDomain;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_UpdateDomain
|
||||
extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IRequest_Any_Cloudly_UpdateDomain
|
||||
> {
|
||||
method: 'updateDomain';
|
||||
request: {
|
||||
identity: IIdentity;
|
||||
domainId: string;
|
||||
domainData: IDomain['data'];
|
||||
};
|
||||
response: {
|
||||
domain: IDomain;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_DeleteDomain
|
||||
extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IRequest_Any_Cloudly_DeleteDomain
|
||||
> {
|
||||
method: 'deleteDomain';
|
||||
request: {
|
||||
identity: IIdentity;
|
||||
domainId: string;
|
||||
};
|
||||
response: {
|
||||
success: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_VerifyDomain
|
||||
extends plugins.typedrequestInterfaces.implementsTR<
|
||||
plugins.typedrequestInterfaces.ITypedRequest,
|
||||
IRequest_Any_Cloudly_VerifyDomain
|
||||
> {
|
||||
method: 'verifyDomain';
|
||||
request: {
|
||||
identity: IIdentity;
|
||||
domainId: string;
|
||||
verificationMethod?: 'dns' | 'http' | 'email' | 'manual';
|
||||
};
|
||||
response: {
|
||||
domain: IDomain;
|
||||
verificationResult: {
|
||||
success: boolean;
|
||||
message?: string;
|
||||
details?: any;
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user