syntax = "v1"

info(
    title: "cloud core"
    desc: "cloud core微服务"
    author: "zhangwei"
    email: ""
)
/******************find datasetList start*************************/

type (
    clusterInfoReq {
        ClusterName string `json:"clusterName"`
    }
    clusterInfoResp {
        AdapterName string `json:"adapterName"`
        AdapterVersion string `json:"adapterVersion"`
        TaskRunningNum int `json:"taskRunningNum"`
        TaskTodayNum int `json:"taskTodayNum"`
        TaskHistoryNum int `json:"taskHistoryNum"`
        TaskFailedNum int `json:"taskFailedNum"`
    }
)

type ControllerMetricsReq {
    Metrics []string `form:"metrics"`
    ParticipantId int64 `form:"participantId"`
    Pod string `form:"pod,optional"`
    WorkloadName string `form:"workloadName,optional"`
    Steps string `form:"steps"`
    Start string `form:"start"`
    End string `form:"end"`
    Level string `form:"level,optional"`
}

type (
    RegisterClusterReq {
        Name string `form:"name"`                 // 名称
        Address string `form:"address"`           // 地址
        token string `form:"token"`               // 数算集群token
        MetricsUrl string `form:"metricsUrl"`     //监控url
    }

    deleteClusterReq {
        Name string `form:"name"`                 // 名称
    }

    CloudResp {
        Code string `json:"code"`
        Msg string `json:"msg"`
        Data string `json:"data"`
    }

    TenantInfo {
        Id int64 `json:"id"`                     // id
        TenantName string `json:"tenantName"`    // 租户名称
        TenantDesc string `json:"tenantDesc"`    // 描述信息
        Clusters string `json:"clusters"`        // 集群名称，用","分割
        Type int64 `json:"type"`                 // 租户所属(0数算，1超算，2智算）
        DeletedFlag int64 `json:"deletedFlag"`   // 是否删除
        CreatedBy int64 `json:"createdBy"`       // 创建人
        CreateTime string `json:"createdTime"`  // 创建时间
        UpdatedBy int64 `json:"updatedBy"`       // 更新人
        UpdateTime string `json:"updated_time"` // 更新时间
    }

    UpdateTenantReq {
        Tenants [] TenantInfo `json:"tenants"`
    }
)

type ControllerMetricsResp {
    Data interface{} `json:"data"`
}

type ApplyReq {
    YamlString string `json:"yamlString" copier:"yamlString"`
}

type DeleteReq {
    YamlString string `json:"yamlString" copier:"yamlString"`
}

type ApplyResp {
    Code int32 `json:"code,omitempty"`
    Msg string `json:"msg,omitempty"`
    DataSet []DataSet `json:"dataSet,omitempty"`
}

type DeleteResp {
    Code int32 `json:"code,omitempty"`
    Msg string `json:"msg,omitempty"`
    Data string `json:"data,omitempty"`
}

type DataSet {
    ApiVersion int32 `json:"apiVersion,omitempty"`
    Kind string `json:"kind,omitempty"`
    Name string `json:"name,omitempty"`
    NameSpace string `json:"nameSpace,omitempty"`
}

type cloudListResp {
    Clouds []Cloud `json:"clouds"`
}
type Cloud {
    Id int64 `json:"id"`                       // id
    TaskId int64 `json:"taskId"`               // 任务id
    ParticipantId int64 `json:"participantId"` // 集群静态信息id
    ApiVersion string `json:"apiVersion"`
    Name string `json:"name"`                  // 名称
    Namespace string `json:"namespace"`        // 命名空间
    Kind string `json:"kind"`                  // 种类
    Status string `json:"status"`              // 状态
    StartTime string `json:"startTime"`        // 开始时间
    RunningTime int64 `json:"runningTime"`     // 运行时长
    CreatedBy int64 `json:"createdBy"`         // 创建人
    CreateTime string `json:"createdTime"`    // 创建时间
    Result string `json:"result"`
}