Files
decort-golang-sdk/pkg/cloudbroker/image/models.go

417 lines
6.9 KiB
Go
Raw Normal View History

2022-10-03 16:56:47 +03:00
package image
2022-12-22 17:56:47 +03:00
// Detailed information about image
type RecordImage struct {
// UNC path
UNCPath string `json:"UNCPath"`
2024-04-16 14:26:06 +03:00
// Account ID
AccountID uint64 `json:"accountId"`
// Access Control List
ACL ListACL `json:"acl"`
// Architecture
Architecture string `json:"architecture"`
// Boot type
BootType string `json:"bootType"`
// Bootable
Bootable bool `json:"bootable"`
// CdPresentedTo
CdPresentedTo interface{} `json:"cdPresentedTo"`
2022-12-22 17:56:47 +03:00
2024-04-16 14:26:06 +03:00
// Compute CI ID
ComputeCIID uint64 `json:"computeciId"`
// Deleted time
DeletedTime uint64 `json:"deletedTime"`
// Description
Description string `json:"desc"`
// Drivers
Drivers []string `json:"drivers"`
// Enabled
Enabled bool `json:"enabled"`
// Grid ID
GID uint64 `json:"gid"`
// GUID
GUID uint64 `json:"guid"`
// List history
History ListHistory `json:"history"`
// Hot resize
HotResize bool `json:"hotResize"`
// ID
ID uint64 `json:"id"`
// Last modified
LastModified uint64 `json:"lastModified"`
// Link to
LinkTo uint64 `json:"linkTo"`
// Milestones
Milestones uint64 `json:"milestones"`
// Name
Name string `json:"name"`
// NetworkInterfaceNaming
NetworkInterfaceNaming string `json:"networkInterfaceNaming"`
// Password
Password string `json:"password"`
// Pool
Pool string `json:"pool"`
// Present to
2025-04-09 11:21:07 +03:00
PresentTo map[string]uint64 `json:"presentTo"`
2024-04-16 14:26:06 +03:00
// Provider name
ProviderName string `json:"provider_name"`
// Purge attempts
PurgeAttempts uint64 `json:"purgeAttempts"`
// Reference ID
ReferenceID string `json:"referenceId"`
// Resource ID
ResID string `json:"resId"`
// Resource name
ResName string `json:"resName"`
// Rescue CD
RescueCD bool `json:"rescuecd"`
// SEP ID
SEPID uint64 `json:"sepId"`
// List shared with
SharedWith []uint64 `json:"sharedWith"`
// Size
Size uint64 `json:"size"`
2024-12-27 11:35:22 +03:00
// SnapshotId
SnapshotID string `json:"snapshotId"`
2024-04-16 14:26:06 +03:00
// Status
Status string `json:"status"`
2025-08-29 12:51:25 +03:00
// Storage policy ID
StoragePolicyID uint64 `json:"storage_policy_id"`
2024-04-16 14:26:06 +03:00
// Tech status
TechStatus string `json:"techStatus"`
2025-11-14 17:38:59 +03:00
// Need to clean before destroy
ToClean bool `json:"to_clean"`
2024-04-16 14:26:06 +03:00
// Type
Type string `json:"type"`
// URL
URL string `json:"url"`
// Username
Username string `json:"username"`
// Version
Version string `json:"version"`
}
// Detailed information about item of images list
type ItemImage struct {
// UNC path
UNCPath string `json:"UNCPath"`
2022-12-22 17:56:47 +03:00
// Account ID
AccountID uint64 `json:"accountId"`
// Access Control List
ACL ListACL `json:"acl"`
// Architecture
Architecture string `json:"architecture"`
// Boot type
BootType string `json:"bootType"`
// Bootable
Bootable bool `json:"bootable"`
2024-04-16 14:26:06 +03:00
// CdPresentedTo
CdPresentedTo interface{} `json:"cdPresentedTo"`
2022-12-22 17:56:47 +03:00
// Compute CI ID
ComputeCIID uint64 `json:"computeciId"`
// Deleted time
DeletedTime uint64 `json:"deletedTime"`
// Description
Description string `json:"desc"`
// Drivers
Drivers []string `json:"drivers"`
// Enabled
Enabled bool `json:"enabled"`
// Grid ID
GID uint64 `json:"gid"`
// GUID
GUID uint64 `json:"guid"`
// List history
History ListHistory `json:"history"`
// Hot resize
HotResize bool `json:"hotResize"`
// ID
ID uint64 `json:"id"`
// Last modified
LastModified uint64 `json:"lastModified"`
// Link to
LinkTo uint64 `json:"linkTo"`
// Milestones
Milestones uint64 `json:"milestones"`
// Name
Name string `json:"name"`
2024-04-16 14:26:06 +03:00
// NetworkInterfaceNaming
NetworkInterfaceNaming string `json:"networkInterfaceNaming"`
2022-12-22 17:56:47 +03:00
// Password
Password string `json:"password"`
// Pool
Pool string `json:"pool"`
2023-01-23 15:39:41 +03:00
// Present to
2025-04-09 11:21:07 +03:00
PresentTo map[string]uint64 `json:"presentTo"`
2023-01-23 15:39:41 +03:00
2022-12-22 17:56:47 +03:00
// Provider name
ProviderName string `json:"provider_name"`
// Purge attempts
PurgeAttempts uint64 `json:"purgeAttempts"`
// Reference ID
ReferenceID string `json:"referenceId"`
// Resource ID
ResID string `json:"resId"`
// Resource name
ResName string `json:"resName"`
// Rescue CD
RescueCD bool `json:"rescuecd"`
// SEP ID
SEPID uint64 `json:"sepId"`
// List shared with
SharedWith []uint64 `json:"sharedWith"`
// Size
Size uint64 `json:"size"`
2024-12-27 11:35:22 +03:00
// SnapshotId
SnapshotID string `json:"snapshotId"`
2022-12-22 17:56:47 +03:00
// Status
Status string `json:"status"`
2025-08-29 12:51:25 +03:00
// Storage policy ID
StoragePolicyID uint64 `json:"storage_policy_id"`
2022-12-22 17:56:47 +03:00
// Tech status
TechStatus string `json:"techStatus"`
2025-11-14 17:38:59 +03:00
// Need to clean before destroy
ToClean bool `json:"to_clean"`
2022-12-22 17:56:47 +03:00
// Type
Type string `json:"type"`
// URL
URL string `json:"url"`
// Username
Username string `json:"username"`
// Version
Version string `json:"version"`
// Virtual
Virtual bool `json:"virtual"`
2022-10-03 16:56:47 +03:00
}
2022-12-22 17:56:47 +03:00
// List images
2023-07-07 12:40:03 +03:00
type ListImages struct {
// Data
2024-04-16 14:26:06 +03:00
Data []ItemImage `json:"data"`
2023-07-07 12:40:03 +03:00
// Entry count
EntryCount uint64 `json:"entryCount"`
}
2022-10-03 16:56:47 +03:00
2022-12-22 17:56:47 +03:00
// Access Control List
2022-10-03 16:56:47 +03:00
type ACL struct {
2022-12-22 17:56:47 +03:00
// Explicit
Explicit bool `json:"explicit"`
// GUID
GUID string `json:"guid"`
// Right
Right string `json:"right"`
// Status
Status string `json:"status"`
// Type
Type string `json:"type"`
// User group ID
2022-10-03 16:56:47 +03:00
UserGroupID string `json:"userGroupId"`
}
2022-12-22 17:56:47 +03:00
// List ACL
type ListACL []ACL
// History information
2022-10-03 16:56:47 +03:00
type History struct {
2022-12-22 17:56:47 +03:00
// GUID
2023-08-22 15:28:39 +03:00
GUID GUID `json:"guid"`
2022-12-22 17:56:47 +03:00
// ID
ID uint64 `json:"id"`
// Timestamp
2022-10-03 16:56:47 +03:00
Timestamp uint64 `json:"timestamp"`
}
2023-08-22 15:28:39 +03:00
type GUID string
func (r *GUID) UnmarshalJSON(b []byte) error {
if b[0] == '"' {
2023-10-11 12:18:27 +03:00
*r = GUID(string(b[1 : len(b)-1]))
2023-08-22 15:28:39 +03:00
return nil
}
2023-10-11 12:18:27 +03:00
2023-08-22 15:28:39 +03:00
*r = GUID(string(b))
return nil
}
2022-12-22 17:56:47 +03:00
// List history
type ListHistory []History
2023-10-11 12:18:27 +03:00
// Package
type Packages struct {
// LibvirtBin
LibvirtBin LibvirtBin `json:"libvirt-bin"`
2023-07-07 12:40:03 +03:00
2023-10-11 12:18:27 +03:00
// LibvirtDaemon
LibvirtDaemon LibvirtDaemon `json:"libvirt-daemon"`
// Lvm2Lockd
Lvm2Lockd Lvm2Lockd `json:"lvm2-lockd"`
// OpenvswitchCommon
OpenvswitchCommon OpenvswitchCommon `json:"openvswitch-common"`
// OpenvswitchSwitch
OpenvswitchSwitch OpenvswitchSwitch `json:"openvswitch-switch"`
// QemuSystemX86
QemuSystemX86 QemuSystemX86 `json:"qemu-system-x86"`
// Sanlock
Sanlock Sanlock `json:"sanlock"`
}
// LibvirtBin
type LibvirtBin struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
}
type LibvirtDaemon struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
}
// Lvm2Lockd
type Lvm2Lockd struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
}
// OpenvswitchCommon
type OpenvswitchCommon struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
}
// OpenvswitchSwitch
type OpenvswitchSwitch struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
}
// QemuSystemX86
type QemuSystemX86 struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
}
// Sanlock
type Sanlock struct {
// InstalledSize
InstalledSize string `json:"installed_size"`
// Version
Ver string `json:"ver"`
2022-10-03 16:56:47 +03:00
}