import * as plugins from '../plugins.js';
import * as clusterInterfaces from '../data/cluster.js';
import * as serverInterfaces from '../data/server.js';
import * as userInterfaces from '../data/user.js';
import type { IService } from '../data/service.js';

export interface IRequest_Any_Cloudly_GetServerConfig
extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IRequest_Any_Cloudly_GetServerConfig
> {
  method: 'getServerConfig';
  request: {
    identity: userInterfaces.IIdentity;
    serverId: string;
  };
  response: {
    configData: serverInterfaces.IServer;
  };
}

export interface IRequest_Any_Cloudly_GetClusterConfig
extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IRequest_Any_Cloudly_GetClusterConfig
> {
  method: 'getClusterConfig';
  request: {
    identity: userInterfaces.IIdentity;
  };
  response: {
    configData: clusterInterfaces.ICluster;
    services: IService[];
  };
}

export interface IRequest_Cloudly_Coreflow_PushClusterConfig
extends plugins.typedrequestInterfaces.implementsTR<
  plugins.typedrequestInterfaces.ITypedRequest,
  IRequest_Cloudly_Coreflow_PushClusterConfig
> {
  method: 'pushClusterConfig';
  request: {
    configData: clusterInterfaces.ICluster;
    services: IService[];
  };
  response: {};
}