import * as plugins from '../plugins.ts';
import * as data from '../data/index.ts';

export interface IReq_GetDomains extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetDomains
> {
  method: 'getDomains';
  request: {
    identity: data.IIdentity;
  };
  response: {
    domains: data.IDomainDetail[];
  };
}

export interface IReq_GetDomain extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetDomain
> {
  method: 'getDomain';
  request: {
    identity: data.IIdentity;
    domainName: string;
  };
  response: {
    domain: data.IDomainDetail;
  };
}

export interface IReq_SyncDomains extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_SyncDomains
> {
  method: 'syncDomains';
  request: {
    identity: data.IIdentity;
  };
  response: {
    domains: data.IDomainDetail[];
  };
}

export interface IReq_GetGatewayDomains extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetGatewayDomains
> {
  method: 'getGatewayDomains';
  request: {
    identity: data.IIdentity;
  };
  response: {
    domains: data.IGatewayDomain[];
  };
}
