import * as plugins from '../plugins.js';

import { type IDockerRegistryInfo } from '../data/docker.js';
import type { IServer } from './server.js';

export interface ICluster {
  id: string;
  data: {
    name: string;

    /**
     * a cluster has a machine user that governs access rights.
     */
    userId: string;
    
    /**
     * how can the cluster reach cloudly
     */
    cloudlyUrl?: string;

    /**
     * what servers are expected to be part of the cluster
     */
    servers: IServer[];

    /**
     * ACME info. This is used to get SSL certificates.
     */
    acmeInfo: {
      serverAddress: string;
      serverSecret: string;
    };

    sshKeys: plugins.tsclass.network.ISshKey[];
  };
}
