Files
cloudpods/pkg/apis/image/guestimage.go

91 lines
2.3 KiB
Go

// Copyright 2019 Yunion
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package image
import (
"time"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/apis"
)
type GuestImageDetails struct {
apis.SharableVirtualResourceDetails
apis.EncryptedResourceDetails
SGuestImage
//Status string `json:"status"`
Size int64 `json:"size"`
MinRamMb int32 `json:"min_ram_mb"`
DiskFormat string `json:"disk_format"`
RootImage SubImageInfo `json:"root_image"`
DataImages []SubImageInfo `json:"data_images"`
Properties *jsonutils.JSONDict `json:"properties"`
DisableDelete bool `json:"disable_delete"`
}
type SubImageInfo struct {
ID string `json:"id"`
Name string `json:"name"`
MinDiskMB int32 `json:"min_disk_mb"`
DiskFormat string `json:"disk_format"`
Size int64 `json:"size"`
Status string `json:"status"`
CreatedAt time.Time `json:"created_at"`
EncryptKeyId string `json:"encrypt_key_id"`
DisableDelete bool `json:"disable_delete"`
}
type GuestImageCreateInputBase struct {
apis.SharableVirtualResourceCreateInput
apis.EncryptedResourceCreateInput
// 备注
Notes string `json:"notes"`
// 镜像格式
DiskFormat string `json:"disk_format"`
// 是否有删除保护
Protected *bool `json:"protected"`
}
type GuestImageCreateInputSubimage struct {
// Id
Id string `json:"id"`
// 磁盘格式
DiskFormat string `json:"disk_format"`
// 磁盘大小
VirtualSize int `json:"virtual_size"`
}
type GuestImageCreateInput struct {
GuestImageCreateInputBase
// 镜像列表
Images []GuestImageCreateInputSubimage `json:"images"`
// 镜像大小, 单位Byte
Size *int64 `json:"size"`
// CPU架构 x86_64 or aarch64
OsArch string `json:"os_arch"`
// 镜像属性
Properties map[string]string `json:"properties"`
}