import { AppOptionsConfig } from './AppOptionsConfig'
/**
 * 部署配置
 * @date 2021-05-31 17:14:03
 * @author 吴锋霖
 */
interface DeployConfig {

  /**
   * 主键
   */
  id?: string
  /**
   * 部署名称
   */
  name?: string

  /**
   * 部署标签，用于Deployment 滚动升级
   */
  deployTag?: string

  /**
   * 应用类型
   */
  appType?: 'CNBS' | 'CNGATEWAY' | 'CNSERVICE'

  /**
   * 服务中心主键
   */
  serviceCenterId?: string

  /**
   * 应用主键
   */
  appId?: string

  /**
   * 环境配置ID
   */
  envId?: string

  /**
   * 环境配置代码
   */
  envCode?: string

  /**
    * K8S配置主键
    */
  k8sId?: string


  /**
    * 部署镜像
    */
  image?: string

  /**
    * 模型启动脚本
    */
  startScript?: string


  /**
   * 应用选项配置
   */
  appOptionsConfig?: AppOptionsConfig

  /**
   * 配置中心代码
   */
  configCenterCode?: string

  /**
   * 镜像端口映射
   */
  imagePortMapping?: [{

    /**
     * 名称
     */
    name?: string

    /**
     * 协议类型 TCP\UDP
     */
    protocol?: string

    /**
     * 端口号
     */
    port?: string
  }]

  /**
   * SLB端口映射
   */
  slbPortMapping?: [{

    /**
      * SLB 端口号
      */
    slbPort?: string

    /**
     * 容器端口号
     */
    targetPort?: string

    /**
     * 协议类型 TCP\UDP
     */
    protocol?: string

  }]

  /**
   * SLB ID
   */
  slbId?: string

  /**
   * SLB 网络类型
   */
  networkType?: 'intranet' | 'internet'

  /**
   * PVC大小 默认20Gi
   */
  pvcSize?: number

  /**
   * PVC 挂载路径，默认 /data
   */
  pvcMountPath?: string


}

export { DeployConfig }