syntax = "v1"

info(
    title: "AI core"
    desc: "AI core微服务"
    author: "wanqgi"
    email: "1364512070@qq.com"
)

/****************** screen storage start*************************/
type (
    StorageScreenReq {

    }
    StorageScreenResp {
        TotalSize int32 `json:"totalSize" copier:"TotalSize"`
        AiCenterInfos []AiCenterInfos `json:"aiCenterInfos" copier:"AiCenterInfos"`
        StorageUsed float32 `json:"storageUsed" copier:"StorageUsed"`
        StorageUsing float32 `json:"storageUsing" copier:"StorageUsing"`
        UsageRate float32 `json:"usageRate" copier:"UsageRate"`
        UsingRate float32 `json:"usingRate" copier:"UsingRate"`
        Code int32 `json:"code,omitempty"`
        Msg string `json:"msg,omitempty"`
        ErrorMsg string `json:"ErrorMsg,omitempty"`
    }
    AiCenterInfos {
        Id string `json:"id" copier:"Id"`
        Name string `json:"name" copier:"Name"`
        Desc string `json:"desc" copier:"Desc"`
        Resource string `json:"resource" copier:"Resource"`
        TrainJob string `json:"trainJob" copier:"TrainJob"`
        ComputeScale int32 `json:"computeScale" copier:"ComputeScale"`
        StorageScale int32 `json:"storageScale" copier:"StorageScale"`
        Province string `json:"path:province" copier:"Province"`
        City string `json:"city" copier:"City"`
        CoordinateX int32 `json:"coordinateX" copier:"CoordinateX"`
        CoordinateY int32 `json:"coordinateY" copier:"CoordinateY"`
        Type int32 `json:"type" copier:"Type"`
        Weight int32 `json:"weight" copier:"Weight"`
        ConnectionState int32 `json:"connectionState" copier:"ConnectionState"`
        BusyState int32 `json:"busyState" copier:"BusyState"`
        ImageUrl string `json:"imageUrl" copier:"ImageUrl"`
        AccDevices string `json:"accDevices" copier:"AccDevices"`
        MarketTime int64 `json:"marketTime" copier:"MarketTime"`
        CreatedAt int64 `json:"createdAt" copier:"CreatedAt"`
        AccessTime int32 `json:"accessTime" copier:"AccessTime"`
        CardRunTime int32 `json:"cardRunTime" copier:"CardRunTime"`
        JobCount int32 `json:"jobCount" copier:"JobCount"`
    }
)
/******************screen storage end*************************/

/******************screen computing power Start*************************/
type (
    DailyPowerScreenReq {

    }

    DailyPowerScreenResp {
        TotalSize int32 `json:"totalSize" copier:"TotalSize"`
        DailyComputerPowers []DailyComputerPowers `json:"dailyComputerPowers" copier:"DailyComputerPowers"`
        Code int32 `json:"code,omitempty"`
        Msg string `json:"msg,omitempty"`
        ErrorMsg string `json:"ErrorMsg,omitempty"`
    }

    DailyComputerPowers {
        Date string `json:"date" copier:"Date"`
        ComputerPower float32 `json:"computerPower" copier:"ComputerPower"`
    }
)
type (
    PerCenterComputerPowersReq {

    }
    PerCenterComputerPowersResp {
        TotalSize int32 `json:"totalSize" copier:"TotalSize"`
        PerCenterComputerPowers []PerCenterComputerPowers `json:"perCenterComputerPowers" copier:"PerCenterComputerPowers"`
        AccOtJobInfo AccOtJobInfo `json:"accOtJobInfo" copier:"AccOtJobInfo"`
        Code int32 `json:"code,omitempty"`
        Msg string `json:"msg,omitempty"`
        ErrorMsg string `json:"ErrorMsg,omitempty"`
    }

    PerCenterComputerPowers {
        CenterName string `json:"centerName" copier:"CenterName"`
        ComputerPower float32 `json:"computerPower" copier:"ComputerPower"`
        JobCount int32 `json:"jobCount" copier:"JobCount"`
        CenterId string `json:"centerId" copier:"CenterId"`
    }
    AccOtJobInfo {
        AccRunSec int32 `json:"accRunSec" copier:"AccRunSec"`
        AccCardRunSec float32 `json:"accCardRunSec" copier:"AccCardRunSec"`
        AccOtJobNum int32 `json:"accOtJobNum" copier:"AccOtJobNum"`
    }
)

/******************screen computing power End*************************/


type (
    UploadImageReq {
        name string `json:"name" copier:"name"`
    }
)

type (
    imageListResp {
        repositories []string `json:"repositories" copier:"repositories"`
    }
)

type (
    imageTagsReq {
        name string `form:"name"`
    }
    imageTagsResp {
        name string `json:"name"`
        tags []string `json:"tags" copier:"tags"`
    }
)

type (
    checkReq {
        fileMd5 string `path:"fileMd5"`
    }
    checkResp {
        exist bool `json:"exist"`
    }
)
