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

export interface IReq_GetSettings extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetSettings
> {
  method: 'getSettings';
  request: {
    identity: data.IIdentity;
  };
  response: {
    settings: data.ISettings;
  };
}

export interface IReq_UpdateSettings extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_UpdateSettings
> {
  method: 'updateSettings';
  request: {
    identity: data.IIdentity;
    settings: Partial<data.ISettings>;
  };
  response: {
    settings: data.ISettings;
  };
}

export interface IReq_SetBackupPassword extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_SetBackupPassword
> {
  method: 'setBackupPassword';
  request: {
    identity: data.IIdentity;
    password: string;
  };
  response: {
    ok: boolean;
  };
}

export interface IReq_GetBackupPasswordStatus extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetBackupPasswordStatus
> {
  method: 'getBackupPasswordStatus';
  request: {
    identity: data.IIdentity;
  };
  response: {
    status: data.IBackupPasswordStatus;
  };
}

export interface IReq_GetManagedDcRouterStatus extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_GetManagedDcRouterStatus
> {
  method: 'getManagedDcRouterStatus';
  request: {
    identity: data.IIdentity;
  };
  response: {
    status: data.IManagedDcRouterStatus;
  };
}

export interface IReq_StartManagedDcRouter extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_StartManagedDcRouter
> {
  method: 'startManagedDcRouter';
  request: {
    identity: data.IIdentity;
  };
  response: {
    status: data.IManagedDcRouterStatus;
  };
}

export interface IReq_StopManagedDcRouter extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_StopManagedDcRouter
> {
  method: 'stopManagedDcRouter';
  request: {
    identity: data.IIdentity;
  };
  response: {
    status: data.IManagedDcRouterStatus;
  };
}

export interface IReq_RestartManagedDcRouter extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IReq_RestartManagedDcRouter
> {
  method: 'restartManagedDcRouter';
  request: {
    identity: data.IIdentity;
  };
  response: {
    status: data.IManagedDcRouterStatus;
  };
}
