view

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 23, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VirtualRouter = "VirtualRouter"
	Vrouter       = "vrouter"
	SecurityGroup = "SecurityGroup"
	Flat          = "Flat"
)

Variables

This section is empty.

Functions

func GetIpFromUsedIps

func GetIpFromUsedIps(usedIps []UsedIp) (ip string, ip6 string)

Types

type AccountInventoryView added in v1.0.3

type AccountInventoryView struct {
	BaseTimeView
	Name string `json:"name"`
	Type string `json:"type"`
	UUID string `json:"uuid"`
}

type AccountResourceRefInventoryView

type AccountResourceRefInventoryView struct {
	BaseTimeView
	AccountUuid          string `json:"accountUuid"`
	ConcreteResourceType string `json:"concreteResourceType"`
	ResourceType         string `json:"resourceType"`
	ResourceUuid         string `json:"resourceUuid"`
}

type AttachTagToResourceResult

type AttachTagToResourceResult struct {
	Success bool                            `json:"success"`
	Results []AttachTagToResourceResultItem `json:"results"`
}

type AttachTagToResourceResultItem

type AttachTagToResourceResultItem struct {
	Inventory TagInventory `json:"inventory"`
	Success   bool         `json:"success"`
}

type BackupStorageInventoryView

type BackupStorageInventoryView struct {
	BaseInfoView
	BaseTimeView
	Url               string   `json:"url" `
	TotalCapacity     int64    `json:"totalCapacity" `
	AvailableCapacity int64    `json:"availableCapacity" `
	Type              string   `json:"type"` // VM type reserved field, no need to specify. UserVm/ApplianceVm
	State             string   `json:"state" `
	Status            string   `json:"status" `
	AttachedZoneUuids []string `json:"attachedZoneUuids" `

	// imageStoreBackupStorage
	Hostname string `json:"hostname"`
	Username string `json:"username"`
	SshPort  int    `json:"sshPort"`

	// Ceph
	Fsid                  string    `json:"fsid"`
	Mons                  []CephMon `json:"mons"`
	PoolAvailableCapacity int64     `json:"poolAvailableCapacity"`
	PoolName              string    `json:"poolName"`
	PoolReplicatedSize    int       `json:"poolReplicatedSize"`
	PoolUsedCapacity      int64     `json:"poolUsedCapacity"`
}

type BaseExecTimeView

type BaseExecTimeView struct {
	StartTime time.Time `json:"startTime"` // Start time
	EndTime   time.Time `json:"endTime"`   // End time
}

type BaseInfoView

type BaseInfoView struct {
	UUID        string `json:"uuid"`        // Resource UUID, unique identifier for the resource
	Name        string `json:"name"`        // Resource name
	Description string `json:"description"` // Detailed description of the resource
}

type BaseTimeView

type BaseTimeView struct {
	CreateDate time.Time `json:"createDate"` // Creation time
	LastOpDate time.Time `json:"lastOpDate"` // Last modification time
}

type CdpPolicyInventoryView

type CdpPolicyInventoryView struct {
	BaseInfoView
	BaseTimeView
	RetentionTimePerDay     int64                `json:"retentionTimePerDay"`     // Retention time for recovery points
	RecoveryPointPerSecond  int64                `json:"recoveryPointPerSecond"`  // Interval time for recovery points
	State                   param.CdpPolicyState `json:"state"`                   // Policy state
	HourlyRpSinceDay        int64                `json:"hourlyRpSinceDay"`        // Start day to retain one recovery point per hour
	DailyRpSinceDay         int64                `json:"dailyRpSinceDay"`         // Start day to retain one recovery point per day
	ExpireTimeInDay         int64                `json:"expireTimeInDay"`         // Validity time for backup data
	FullBackupIntervalInDay int64                `json:"fullBackupIntervalInDay"` // Interval for full backup
}

type CdpTaskInventoryView

type CdpTaskInventoryView struct {
	BaseInfoView
	BaseTimeView

	PolicyUuid        string                    `json:"policyUuid"`        // Policy UUID
	BackupStorageUuid string                    `json:"backupStorageUuid"` // Backup storage UUID
	BackupBandwidth   int64                     `json:"backupBandwidth"`   // Backup speed for a single volume
	MaxCapacity       int64                     `json:"maxCapacity"`       // Planned capacity for the CDP task
	UsedCapacity      int64                     `json:"usedCapacity"`      // Used capacity for CDP
	MaxLatency        int64                     `json:"maxLatency"`        // Maximum RPO offset for the CDP task
	LastLatency       int64                     `json:"lastLatency"`       // Last RPO offset for the CDP task
	Status            param.CdpTaskStatus       `json:"status"`
	State             param.CdpTaskState        `json:"state"`
	TaskType          param.CdpTaskType         `json:"taskType"`
	ResourceRefs      []CdpTaskResourceRefsView `json:"resourceRefs"` // Task resource list
}

type CdpTaskResourceRefsView

type CdpTaskResourceRefsView struct {
	TaskUuid     string `json:"taskUuid"`     // CDP task UUID
	ResourceUuid string `json:"resourceUuid"` // Resource UUID
	ResourceType string `json:"resourceType"` // Task resource list
	BaseTimeView
}

type CephMon

type CephMon struct {
	BackupStorageUuid string `json:"backupStorageUuid"`
	CreateDate        string `json:"createDate"`
	Hostname          string `json:"hostname"`
	LastOpDate        string `json:"lastOpDate"`
	MonAddr           string `json:"monAddr"`
	MonPort           int    `json:"monPort"`
	MonUuid           string `json:"monUuid"`
	SshPassword       string `json:"sshPassword"`
	SshPort           int    `json:"sshPort"`
	SshUsername       string `json:"sshUsername"`
	Status            string `json:"status"`
}

type CephPrimaryStorageMonsView

type CephPrimaryStorageMonsView struct {
	CreateDate         string `json:"createDate"`
	Hostname           string `json:"hostname"`
	LastOpDate         string `json:"lastOpDate"`
	MonAddr            string `json:"monAddr"`
	MonPort            int    `json:"monPort"`
	MonUuid            string `json:"monUuid"`
	PrimaryStorageUuid string `json:"primaryStorageUuid"`
	SshPassword        string `json:"-"`
	SshPort            int    `json:"sshPort"`
	SshUsername        string `json:"sshUsername"`
	Status             string `json:"status"`
}

type CephPrimaryStoragePoolInventoryView

type CephPrimaryStoragePoolInventoryView struct {
	BaseTimeView
	Uuid               string  `json:"uuid"`
	AvailableCapacity  int64   `json:"availableCapacity"`
	DiskUtilization    float64 `json:"diskUtilization"`
	PoolName           string  `json:"poolName"`
	PrimaryStorageUuid string  `json:"primaryStorageUuid"`
	ReplicatedSize     int     `json:"replicatedSize"`
	SecurityPolicy     string  `json:"securityPolicy"`
	TotalCapacity      int64   `json:"totalCapacity"`
	Type               string  `json:"type"`
	UsedCapacity       int64   `json:"usedCapacity"`

	AliasName   string `json:"aliasName"`
	Description string `json:"description"`
}

type CheckIpView

type CheckIpView struct {
	Available bool `json:"available"`
}

type CloneVmInstanceInventory

type CloneVmInstanceInventory struct {
	Error     *ErrorCodeView          `json:"error"`
	Inventory VmInstanceInventoryView `json:"inventory"`
}

type CloneVmInstanceResult

type CloneVmInstanceResult struct {
	NumberOfClonedVm int                        `json:"numberOfClonedVm"`
	Inventories      []CloneVmInstanceInventory `json:"inventories"`
}

type ClusterHostNetworkFactsView

type ClusterHostNetworkFactsView struct {
	Bondings []HostBondings `json:"bondings"`
	Nics     []HostNics     `json:"nics"`
	Success  bool           `json:"success"`
}

type ClusterInventoryView

type ClusterInventoryView struct {
	Architecture   string `json:"architecture"`
	CreateDate     string `json:"createDate"`
	HypervisorType string `json:"hypervisorType"`
	LastOpDate     string `json:"lastOpDate"`
	Name           string `json:"name"`
	State          string `json:"state"`
	Type           string `json:"type"`
	Uuid           string `json:"uuid"`
	ZoneUuid       string `json:"zoneUuid"`
}

type ConsoleInventoryView

type ConsoleInventoryView struct {
	Scheme   string `json:"scheme" bson:"scheme"`     // Access protocol type
	Hostname string `json:"hostname" bson:"hostname"` // Hostname of the host
	Port     int    `json:"port" bson:"port"`         // Port number
	Token    string `json:"token" bson:"token"`       // Token
}

type DhcpIpAddressView

type DhcpIpAddressView struct {
	Ip  string `json:"ip"`
	Ip6 string `json:"ip6"`
}

type DiskOfferingInventoryView

type DiskOfferingInventoryView struct {
	BaseInfoView
	BaseTimeView

	DiskSize          int    `json:"diskSize"`          // Disk size
	Type              string `json:"type"`              // Type
	AllocatorStrategy string `json:"allocatorStrategy"` // Allocation strategy
	SortKey           int    `json:"sortKey"`
	State             string `json:"state"` // State (Enabled, Disabled)
}

type Dns

type Dns struct {
	VpcRouterUuid string `json:"vpcRouterUuid"`
	Dns           string `json:"dns"`
	CreateDate    string `json:"createDate"` // Creation time
	LastOpDate    string `json:"lastOpDate"` // Last modification time
}

type DnsInventoryView

type DnsInventoryView struct {
	Name          string   `json:"name"`
	L2NetworkUuid string   `json:"l2NetworkUuid"`
	Dns           []string `json:"dns"`
}

type EipInventoryView

type EipInventoryView struct {
	BaseInfoView
	BaseTimeView

	VmNicUuid string `json:"vmNicUuid"` // UUID of the VM NIC
	VipUuid   string `json:"vipUuid"`
	State     string `json:"state"`
	VipIp     string `json:"vipIp"`
	GuestIp   string `json:"guestIp"`
}

type ErrorCodeView

type ErrorCodeView struct {
	Code        string                 `json:"code"`        // Error code number, global unique identifier for the error, e.g., SYS.1000, HOST.1001
	Description string                 `json:"description"` // Brief description of the error
	Details     string                 `json:"details"`     // Detailed information about the error
	Elaboration string                 `json:"elaboration"` // Reserved field, defaults to null
	Location    string                 `json:"location"`
	Cost        string                 `json:"cost"`
	Opaque      map[string]interface{} `json:"opaque"` // Reserved field, defaults to null
	Cause       *ErrorCodeView         `json:"cause"`  // Root error, the source error that caused the current error, null if there is no source error
}

type ExistingJobDetails

type ExistingJobDetails struct {
	LongJobUuid    string `json:"longJobUuid"`
	LongJobState   string `json:"longJobState"`
	ImageUuid      string `json:"imageUuid"`
	ImageUploadUrl string `json:"imageUploadUrl"`
	Offset         int64  `json:"offset"`
}

type ExportImageFromBackupStorageResultView

type ExportImageFromBackupStorageResultView struct {
	ImageUrl     string `json:"imageUrl"`     // URL of the exported image
	ExportMd5Sum string `json:"exportMd5Sum"` // MD5 value of the exported image
	Success      bool   `json:"success"`      // Whether the export was successful
	Error        string `json:"error"`        // Error message if the export failed
}

type FreeIpInventoryView

type FreeIpInventoryView struct {
	IpRangeUuid string `json:"ipRangeUuid"` // IP range UUID
	Ip          string `json:"ip"`          // IP
	Netmask     string `json:"netmask"`
	Gateway     string `json:"gateway"`
}

type GcResultView

type GcResultView struct {
	FreedSpaceInBytes int64 `json:"freedSpaceInBytes"`
}

type GetCandidatePrimaryStoragesForCreatingVmView

type GetCandidatePrimaryStoragesForCreatingVmView struct {
	DataVolumePrimaryStorages map[string][]PrimaryStorageInventoryView `json:"dataVolumePrimaryStorages"`
	RootVolumePrimaryStorages []PrimaryStorageInventoryView            `json:"rootVolumePrimaryStorages"`
}

type GetImageQgaView

type GetImageQgaView struct {
	Enable bool `json:"enable"`
}

type GetUploadImageJobDetailsResponse

type GetUploadImageJobDetailsResponse struct {
	Success            bool               `json:"success"`
	ExistingJobDetails ExistingJobDetails `json:"existingJobDetails"`
}

type GetVmConsolePasswordView

type GetVmConsolePasswordView struct {
	ConsolePassword string `json:"consolePassword" bson:"consolePassword"` // Password
}

type GlobalConfigView

type GlobalConfigView struct {
	BaseInfoView

	Category     string `json:"category"`
	DefaultValue string `json:"defaultValue"`
	Value        string `json:"value"`
}

type GuestOsNameView

type GuestOsNameView struct {
	Name string `json:"name"` // Operating system name
}

type GuestOsTypeView

type GuestOsTypeView struct {
	Platform string         `json:"platform"`
	Children []PlatformView `json:"children"`
}

type HostBondings

type HostBondings struct {
	AllSlavesActive bool   `json:"allSlavesActive"`
	BondingName     string `json:"bondingName"`
	CreateDate      string `json:"createDate"`
	HostUuid        string `json:"hostUuid"`
	LastOpDate      string `json:"lastOpDate"`
	Mac             string `json:"mac"`
	MiiStatus       string `json:"miiStatus"`
	Miimon          int    `json:"miimon"`
	Mode            string `json:"mode"`
	Slaves          []struct {
		BondingUuid      string `json:"bondingUuid"`
		CarrierActive    bool   `json:"carrierActive"`
		CreateDate       string `json:"createDate"`
		HostUuid         string `json:"hostUuid"`
		InterfaceName    string `json:"interfaceName"`
		InterfaceType    string `json:"interfaceType"`
		LastOpDate       string `json:"lastOpDate"`
		Mac              string `json:"mac"`
		PciDeviceAddress string `json:"pciDeviceAddress"`
		SlaveActive      bool   `json:"slaveActive"`
		Speed            int    `json:"speed"`
		Uuid             string `json:"uuid"`
	} `json:"slaves"`
	Uuid           string `json:"uuid"`
	XmitHashPolicy string `json:"xmitHashPolicy"`
}

type HostInventoryView

type HostInventoryView struct {
	BaseInfoView
	BaseTimeView
	Architecture            string `json:"architecture"` // Physical machine architecture
	ZoneUuid                string `json:"zoneUuid"`     // Zone UUID
	ClusterUuid             string `json:"clusterUuid"`  // Cluster UUID
	ManagementIp            string `json:"managementIp"` // Management IP
	HypervisorType          string `json:"hypervisorType"`
	State                   string `json:"state"`  // Physical machine state, including Enabled, Disabled, PreMaintenance, Maintenance
	Status                  string `json:"status"` // Connecting, Connected, Disconnected
	TotalCpuCapacity        int64  `json:"totalCpuCapacity"`
	AvailableCpuCapacity    int64  `json:"availableCpuCapacity"`
	CpuSockets              int    `json:"cpuSockets"`
	TotalMemoryCapacity     int64  `json:"totalMemoryCapacity"`
	AvailableMemoryCapacity int64  `json:"availableMemoryCapacity"`
	CpuNum                  int    `json:"cpuNum"`
	Username                string `json:"username"`
	SshPort                 int    `json:"sshPort"`
}

type HostNetworkBondingInventoryView

type HostNetworkBondingInventoryView struct {
	BaseInfoView
	BaseTimeView
	HostUuid    string `json:"hostUuid"`    // Physical machine UUID
	BondingName string `json:"bondingName"` // Bond name

	Mode            string                              `json:"mode"`            // Bond mode
	XmitHashPolicy  string                              `json:"xmitHashPolicy"`  // Hash policy
	MiiStatus       string                              `json:"miiStatus"`       // MII status
	Mac             string                              `json:"mac"`             // MAC address
	IpAddresses     []string                            `json:"ipAddresses"`     // IP addresses
	Miimon          int64                               `json:"miimon"`          // MII monitoring interval
	AllSlavesActive bool                                `json:"allSlavesActive"` // Whether all slaves are active
	Slaves          []HostNetworkInterfaceInventoryView `json:"slaves"`          // Slaves list
}

type HostNetworkInterfaceInventoryView

type HostNetworkInterfaceInventoryView struct {
	BaseTimeView
	UUID             string   `json:"uuid"`             // Network interface UUID
	HostUuid         string   `json:"hostUuid"`         // Physical machine UUID
	BondingUuid      string   `json:"bondingUuid"`      // Bond UUID
	InterfaceName    string   `json:"interfaceName"`    // Network interface name
	InterfaceType    string   `json:"interfaceType"`    // Network interface application status, including nomaster, bridgeSlave, bondSlave
	Speed            int64    `json:"speed"`            // Network interface speed
	SlaveActive      bool     `json:"slaveActive"`      // Bond link status
	CarrierActive    bool     `json:"carrierActive"`    // Physical link status
	IpAddresses      []string `json:"ipAddresses"`      // IP addresses
	Mac              string   `json:"mac"`              // MAC address
	PciDeviceAddress string   `json:"pciDeviceAddress"` // PCI address
}

type HostNics

type HostNics struct {
	CarrierActive    bool   `json:"carrierActive"`
	CreateDate       string `json:"createDate"`
	HostUuid         string `json:"hostUuid"`
	InterfaceName    string `json:"interfaceName"`
	InterfaceType    string `json:"interfaceType"`
	LastOpDate       string `json:"lastOpDate"`
	Mac              string `json:"mac"`
	PciDeviceAddress string `json:"pciDeviceAddress"`
	SlaveActive      bool   `json:"slaveActive"`
	Speed            int    `json:"speed"`
	Uuid             string `json:"uuid"`
}

type HostRefs

type HostRefs struct {
	SdnControllerUuid string `json:"sdnControllerUuid"`
	HostUuid          string `json:"hostUuid"`
	VSwitchType       string `json:"vSwitchType"`
	VtepIp            string `json:"vtepIp"`
	NicPciAddresses   string `json:"nicPciAddresses"`
	NicDrivers        string `json:"nicDrivers"`
	Netmask           string `json:"netmask"`
	BondMode          string `json:"bondMode"`
	LacpMode          string `json:"lacpMode"`
}

type HostRoute

type HostRoute struct {
	Id            string `json:"id"`
	L3NetworkUuid string `json:"l3NetworkUuid"` // Layer 3 network UUID
	Prefix        string `json:"prefix"`
	Nexthop       string `json:"nexthop"`
	CreateDate    string `json:"createDate"` // Creation time
	LastOpDate    string `json:"lastOpDate"` // Last modification time
}

type IMA2ProjectInventoryView added in v1.0.3

type IMA2ProjectInventoryView struct {
	BaseInfoView
	BaseTimeView
	LinkedAccountUuid string `json:"linkedAccountUuid"`
	State             string `json:"state"`
}

type ImageBackupStorageRefs

type ImageBackupStorageRefs struct {
	ImageUuid         string `json:"imageUuid"`         // Image UUID
	BackupStorageUuid string `json:"backupStorageUuid"` // Image storage UUID
	InstallPath       string `json:"installPath"`       // Installation path
	ExportUrl         string `json:"exportUrl"`
	ExportMd5Sum      string `json:"exportMd5Sum"`
	State             string `json:"state"`      // "status": "Ready"
	CreateDate        string `json:"createDate"` // Creation time
	LastOpDate        string `json:"lastOpDate"` // Last modification time
}

type ImageView

type ImageView struct {
	BaseInfoView
	BaseTimeView

	State             string                   `json:"state"`       // "state": "Enabled", Image boot state
	Status            string                   `json:"status"`      // "status": "Ready", Image ready state
	Size              int64                    `json:"size"`        // Image size
	ActualSize        int64                    `json:"actualSize"`  // Image actual capacity
	Md5Sum            string                   `json:"md5Sum"`      // Image md5 value
	Url               string                   `json:"url"`         // URL of the added image
	MediaType         string                   `json:"mediaType"`   // Image type
	GuestOsType       string                   `json:"guestOsType"` // Guest OS type corresponding to the image
	Type              string                   `json:"type"`
	Platform          string                   `json:"platform"`     // Image system platform, Linux, Windows, WindowsVirtio, Other, Paravirtualization
	Architecture      param.Architecture       `json:"architecture"` // x86_64, aarch64, mips64el
	Format            string                   `json:"format"`       // Image format qcow2
	System            string                   `json:"system"`       // Whether it is a system image (e.g., cloud router image)
	Virtio            bool                     `json:"virtio"`
	BackupStorageRefs []ImageBackupStorageRefs `json:"backupStorageRefs"`
	SystemTags        []string                 `json:"systemTags"`
}

type InstanceOfferingInventoryView

type InstanceOfferingInventoryView struct {
	BaseInfoView
	BaseTimeView

	CpuNum            int    `json:"cpuNum"`            // Number of CPUs
	CpuSpeed          int    `json:"cpuSpeed"`          // CPU speed
	MemorySize        int64  `json:"memorySize"`        // Memory size
	Type              string `json:"type"`              // Type
	AllocatorStrategy string `json:"allocatorStrategy"` // Allocation strategy
	SortKey           int    `json:"sortKey"`
	State             string `json:"state"` // State (Enabled, Disabled)
}

type IpAddressCapacityView

type IpAddressCapacityView struct {
	TotalCapacity           int64            `json:"totalCapacity"`           // Total IP address capacity
	AvailableCapacity       int64            `json:"availableCapacity"`       // Available IP address capacity
	UsedIpAddressNumber     int64            `json:"usedIpAddressNumber"`     // Number of used IP addresses
	Ipv4TotalCapacity       int64            `json:"ipv4TotalCapacity"`       // Total IPv4 address capacity
	Ipv4AvailableCapacity   int64            `json:"ipv4AvailableCapacity"`   // Available IPv4 address capacity
	Ipv4UsedIpAddressNumber int64            `json:"ipv4UsedIpAddressNumber"` // Number of used IPv4 addresses
	Ipv6TotalCapacity       int64            `json:"ipv6TotalCapacity"`       // Total IPv6 address capacity
	Ipv6AvailableCapacity   int64            `json:"ipv6AvailableCapacity"`   // Available IPv6 address capacity
	Ipv6UsedIpAddressNumber int64            `json:"ipv6UsedIpAddressNumber"` // Number of used IPv6 addresses
	ResourceType            string           `json:"resourceType"`            // Type of the queried resource (IP range, Layer 3 network, zone)
	Success                 bool             `json:"success"`                 // Success
	CapacityData            []IpCapacityData `json:"capacityData"`
}

type IpAddressInventoryView

type IpAddressInventoryView struct {
	Uuid          string  `json:"uuid"`
	IpRangeUuid   string  `json:"ipRangeUuid"`
	L3NetworkUuid string  `json:"l3NetworkUuid"`
	IpVersion     float64 `json:"ipVersion"`
	Ip            string  `json:"ip"`
	Netmask       string  `json:"netmask"`
	Gateway       string  `json:"gateway"`
	IpInLong      float64 `json:"ipInLong"`
	VmNicUuid     string  `json:"vmNicUuid"`
}

type IpCapacityData

type IpCapacityData struct {
	ResourceUuid            string `json:"resourceUuid,omitempty"`  // Resource UUID. If specified, the image will use this value as the UUID.
	TotalCapacity           int64  `json:"totalCapacity"`           // Total IP address capacity
	AvailableCapacity       int64  `json:"availableCapacity"`       // Available IP address capacity
	UsedIpAddressNumber     int64  `json:"usedIpAddressNumber"`     // Number of used IP addresses
	Ipv4TotalCapacity       int64  `json:"ipv4TotalCapacity"`       // Total IPv4 address capacity
	Ipv4AvailableCapacity   int64  `json:"ipv4AvailableCapacity"`   // Available IPv4 address capacity
	Ipv4UsedIpAddressNumber int64  `json:"ipv4UsedIpAddressNumber"` // Number of used IPv4 addresses
	Ipv6TotalCapacity       int64  `json:"ipv6TotalCapacity"`       // Total IPv6 address capacity
	Ipv6AvailableCapacity   int64  `json:"ipv6AvailableCapacity"`   // Available IPv6 address capacity
	Ipv6UsedIpAddressNumber int64  `json:"ipv6UsedIpAddressNumber"` // Number of used IPv6 addresses
}

type IpRangeInventory

type IpRangeInventory struct {
	UUID          string `json:"uuid"`          // Resource UUID, uniquely identifies the resource
	L3NetworkUuid string `json:"l3NetworkUuid"` // Layer 3 network UUID
	Name          string `json:"name"`          // Resource name
	Description   string `json:"description"`   // Detailed description of the resource
	StartIp       string `json:"StartIp"`
	EndIp         string `json:"EndIp"`
	Netmask       string `json:"netmask"`   // Network mask
	PrefixLen     string `json:"prefixLen"` // Mask length
	Gateway       string `json:"gateway"`   // Gateway address
	NetworkCidr   string `json:"networkCidr"`
	IpVersion     string `json:"ipVersion"`   // IP protocol number: 4, 6
	AddressMode   string `json:"addressMode"` // IPv6 address allocation mode
	CreateDate    string `json:"createDate"`  // Creation time
	LastOpDate    string `json:"lastOpDate"`  // Last modification time
	IpRangeType   string `json:"ipRangeType"`
}

type IpRangeInventoryView

type IpRangeInventoryView struct {
	CreateDate    string `json:"createDate"`
	EndIp         string `json:"endIp"`
	Gateway       string `json:"gateway"`
	IpVersion     int    `json:"ipVersion"`
	L3NetworkUuid string `json:"l3NetworkUuid"`
	LastOpDate    string `json:"lastOpDate"`
	Name          string `json:"name"`
	Netmask       string `json:"netmask"`
	NetworkCidr   string `json:"networkCidr"`
	PrefixLen     int    `json:"prefixLen"`
	StartIp       string `json:"startIp"`
	Uuid          string `json:"uuid"`
	AddressMode   string `json:"addressMode"`
}

type IpStatisticView

type IpStatisticView struct {
	Ip             string   `json:"ip"`
	VmInstanceName string   `json:"vmInstanceName"`
	VmInstanceType string   `json:"vmInstanceType"`
	VmInstanceUuid string   `json:"vmInstanceUuid"`
	ResourceTypes  []string `json:"resourceTypes"`
}

type L2NetworkInventoryView

type L2NetworkInventoryView struct {
	BaseInfoView
	BaseTimeView

	Vlan                 int      `json:"vlan"`
	ZoneUuid             string   `json:"zoneUuid"` // Zone UUID. If specified, the cloud host will be created in the specified zone.
	PhysicalInterface    string   `json:"physicalInterface"`
	Type                 string   `json:"type"`
	AttachedClusterUuids []string `json:"attachedClusterUuids"`
}

type L3NetworkInventoryView

type L3NetworkInventoryView struct {
	BaseInfoView
	BaseTimeView

	Type            string             `json:"type"`          // Layer 3 network type
	ZoneUuid        string             `json:"zoneUuid"`      // Zone UUID. If specified, the cloud host will be created in the specified zone.
	L2NetworkUuid   string             `json:"l2NetworkUuid"` // Layer 2 network UUID
	State           string             `json:"state"`         // Layer 3 network availability state
	DnsDomain       string             `json:"dnsDomain"`     // DNS domain
	System          bool               `json:"system"`        // Whether it is used for system cloud hosts
	Category        string             `json:"category"`      // Network type, needs to be used with the system tag, can be set to Public or Private when system is true
	IpVersion       int                `json:"ipVersion"`     // IP protocol number: 4, 6
	Dns             []string           `json:"dns"`
	EnableIPAM      bool               `json:"enableIPAM"`
	IpRanges        []IpRangeInventory `json:"ipRanges"`
	NetworkServices []NetworkServices  `json:"networkServices"`
	HostRoute       []HostRoute        `json:"hostRoute"`
}

type LatestGuestToolsView

type LatestGuestToolsView struct {
	BaseInfoView
	BaseTimeView

	ManagementNodeUuid string      `json:"managementNodeUuid" `
	AgentType          interface{} `json:"agentType" `
	HypervisorType     string      `json:"hypervisorType" ` // Hypervisor type
	Version            interface{} `json:"version" `        // Version
	Architecture       string      `json:"architecture" `   // Architecture
}

type LicenseAddOnInventoryView

type LicenseAddOnInventoryView struct {
	LicenseInventoryView

	Name    string   `json:"name"`    // License name
	Modules []string `json:"modules"` // Module information
}

type LicenseInventoryView

type LicenseInventoryView struct {
	UUID               string    `json:"uuid"`               // Resource UUID, uniquely identifies the resource
	User               string    `json:"user"`               // License owner username
	ProdInfo           string    `json:"prodInfo"`           // License product name
	CpuNum             int       `json:"cpuNum"`             // Licensed X86 CPU count
	HostNum            int       `json:"hostNum"`            // Licensed X86 server count
	VmNum              int       `json:"vmNum"`              // Licensed X86 VM count
	LicenseType        string    `json:"licenseType"`        // License type
	ExpiredDate        time.Time `json:"expiredDate"`        // License expiration date
	IssuedDate         time.Time `json:"issuedDate"`         // License issue date
	UploadDate         time.Time `json:"uploadDate"`         // License upload date
	ManagementNodeUuid string    `json:"managementNodeUuid"` // License-associated MN node UUID
	Expired            bool      `json:"expired"`            // Whether the license has expired
	LicenseRequest     string    `json:"licenseRequest"`     // License request code data
	AvailableHostNum   int       `json:"availableHostNum"`   // Available X86 server count
	AvailableCpuNum    int       `json:"availableCpuNum"`    // Available X86 CPU count
	AvailableVmNum     int       `json:"availableVmNum"`     // Available X86 VM count
	Source             string    `json:"source"`             // Source
}

type LongJobInventoryView

type LongJobInventoryView struct {
	BaseInfoView
	BaseTimeView

	ApiId              string             `json:"apiId"`              // API ID used to associate with TaskProgress
	JobName            string             `json:"jobName"`            // Job name
	JobData            string             `json:"jobData"`            // Job data
	JobResult          string             `json:"jobResult"`          // Job result
	TargetResourceUuid string             `json:"targetResourceUuid"` // Target resource UUID
	ManagementNodeUuid string             `json:"managementNodeUuid"` // Management node UUID
	State              param.LongJobState `json:"state"`
	ExecuteTime        int64              `json:"executeTime"`
}

type ManagementNodeInventoryView

type ManagementNodeInventoryView struct {
	UUID      string    `json:"uuid"`      // Resource UUID, uniquely identifies the resource
	HostName  string    `json:"hostName"`  // Host name
	JoinDate  time.Time `json:"joinDate"`  // Join date
	HeartBeat time.Time `json:"heartBeat"` // Heartbeat time
}

type MetricDataView

type MetricDataView struct {
	Value  float64                `json:"value"`  // Monitoring value
	Time   int64                  `json:"time"`   // Record generation time, timestamp in seconds
	Labels map[string]interface{} `json:"labels"` // Labels
}

type MetricMetadataView

type MetricMetadataView struct {
	Namespace   string   `json:"namespace"`   // Namespace
	Name        string   `json:"name"`        // Resource name
	Description string   `json:"description"` // Resource description
	LabelNames  []string `json:"labelNames"`  // Label names
	Driver      string   `json:"driver"`
}

type MountVmInstanceRecoveryPointView

type MountVmInstanceRecoveryPointView struct {
	ResourcePath string `json:"resourcePath"`
}

type MtuView

type MtuView struct {
	Mtu int64 `json:"mtu"`
}

type NetworkServiceProviderInventoryView

type NetworkServiceProviderInventoryView struct {
	AttachedL2NetworkUuids []string `json:"attachedL2NetworkUuids"`
	CreateDate             string   `json:"createDate"`
	Description            string   `json:"description"`
	LastOpDate             string   `json:"lastOpDate"`
	Name                   string   `json:"name"`
	NetworkServiceTypes    []string `json:"networkServiceTypes"`
	Type                   string   `json:"type"` // VirtualRouter  vrouter  SecurityGroup  Flat
	Uuid                   string   `json:"uuid"`
}

type NetworkServices

type NetworkServices struct {
	L3NetworkUuid              string `json:"l3NetworkUuid"`              // Layer 3 network UUID
	NetworkServiceProviderUuid string `json:"networkServiceProviderUuid"` // Network service provider module UUID
	NetworkServiceType         string `json:"networkServiceType"`
}

type NicSimpleView

type NicSimpleView struct {
	Ip        string    `json:"ip"`
	IpVersion string    `json:"ipVersion"`
	Uuid      string    `json:"uuid"`
	VmNicUuid string    `json:"vmNicUuid"`
	VmNic     VmNicView `json:"vmNic"`
}

type OvfCdDriver

type OvfCdDriver struct {
	AutoAllocation bool   `json:"autoAllocation"` // Whether to auto-allocate
	DriverType     string `json:"driverType"`     // CD-ROM controller type
	SubType        string `json:"subType"`        // Subtype
	Name           string `json:"name"`           // CD-ROM name
}

type OvfCpuInfo

type OvfCpuInfo struct {
	InstanceId     string `json:"instanceId"`     // Hardware ID
	Quantity       int    `json:"quantity"`       // Number of CPU cores
	CoresPerSocket int    `json:"coresPerSocket"` // Cores per CPU
}

type OvfDisk

type OvfDisk struct {
	Index         int    `json:"index"`         // Disk index
	DiskId        string `json:"diskId"`        // Disk ID
	FileRef       string `json:"fileRef"`       // File reference name
	FileName      string `json:"fileName"`      // Image file name
	Format        string `json:"format"`        // Image file format
	PopulatedSize int64  `json:"populatedSize"` // Image file size
	Capacity      int64  `json:"capacity"`      // Disk capacity, unit Byte
}

type OvfInfo

type OvfInfo struct {
	VmName     string        `json:"vmName"` // Cloud host name
	Disks      []OvfDisk     `json:"disks"`
	Networks   []OvfNetwork  `json:"networks"`
	Cpu        OvfCpuInfo    `json:"cpu"`
	Memory     OvfMemoryInfo `json:"memory"`
	Os         OvfOsInfo     `json:"os"`
	SystemInfo OvfSystemInfo `json:"systemInfo"`
	Nics       []OvfNic      `json:"nics"`
	CdDrivers  []OvfCdDriver `json:"cdDrivers"`
	Volumes    []OvfVolume   `json:"volumes"`
}

type OvfMemoryInfo

type OvfMemoryInfo struct {
	InstanceId string `json:"instanceId"` // Hardware ID
	Quantity   int64  `json:"quantity"`   // Memory capacity, unit Byte
}

type OvfNetwork

type OvfNetwork struct {
	Name string `json:"name"` // Network name
}

type OvfNic

type OvfNic struct {
	NicName        string `json:"nicName"`        // Network name
	NicModel       string `json:"nicModel"`       // NIC model
	NetworkName    string `json:"networkName"`    // NIC name
	AutoAllocation bool   `json:"autoAllocation"` // Whether to auto-allocate
}

type OvfOsInfo

type OvfOsInfo struct {
	Id          int    `json:"id"`          // Operating system ID
	Version     string `json:"version"`     // Operating system version
	OsType      string `json:"osType"`      // Operating system type
	Description string `json:"description"` // Operating system description
}

type OvfSystemInfo

type OvfSystemInfo struct {
	VirtualSystemType string `json:"virtualSystemType"` // Hardware system type
	FirmwareType      string `json:"firmwareType"`      // Firmware type
}

type OvfVolume

type OvfVolume struct {
	Name       string `json:"name"`       // Disk name
	DiskId     string `json:"diskId"`     // Disk ID
	DriverType string `json:"driverType"` // Disk driver type
}

type PlatformView

type PlatformView struct {
	GuestName string        `json:"guestName"`
	Children  []ReleaseView `json:"children"`
}

type PointResourceInfoView

type PointResourceInfoView struct {
	VirtualSizes map[string]interface{} `json:"virtualSizes" `
	RealSizes    map[string]interface{} `json:"realSizes" `
	Timestamp    time.Time              `json:"timestamp" `
}

type PrimaryStorageInventoryView

type PrimaryStorageInventoryView struct {
	BaseInfoView
	BaseTimeView

	ZoneUuid                  string                                `json:"zoneUuid"` // Zone UUID
	Url                       string                                `json:"url"`
	TotalCapacity             int64                                 `json:"totalCapacity"`
	AvailableCapacity         int64                                 `json:"availableCapacity"`
	TotalPhysicalCapacity     int64                                 `json:"totalPhysicalCapacity"`
	AvailablePhysicalCapacity int64                                 `json:"availablePhysicalCapacity"`
	SystemUsedCapacity        int64                                 `json:"systemUsedCapacity"`
	Type                      string                                `json:"type"` // Cloud host type reserved field, no need to specify. UserVm/ApplianceVm
	State                     string                                `json:"state"`
	Status                    string                                `json:"status"`
	AttachedClusterUuids      []string                              `json:"attachedClusterUuids"`
	Mons                      []CephPrimaryStorageMonsView          `json:"mons"`
	Pools                     []CephPrimaryStoragePoolInventoryView `json:"pools"`
}

type ProtectRecoveryPointRespView

type ProtectRecoveryPointRespView RecoveryPointRespView

type RecoveryPointRespView

type RecoveryPointRespView map[string][]RecoveryPointView

type RecoveryPointView

type RecoveryPointView struct {
	Id    int64  `json:"id,omitempty"`    // id
	GrpId int64  `json:"grpId,omitempty"` // group id
	Size  int64  `json:"size,omitempty"`  // size
	VolId string `json:"volId,omitempty"` // volume id
	Ts    string `json:"ts,omitempty"`    // timestamp
	Desc  string `json:"desc,omitempty"`  // description
}

type ReleaseView

type ReleaseView struct {
	Uuid      string `json:"uuid"`
	Platform  string `json:"platform"`
	Name      string `json:"name"`
	OsRelease string `json:"osRelease"`
	Version   string `json:"version"`
}

type ReservedIpRangeInventoryView

type ReservedIpRangeInventoryView struct {
	Uuid          string `json:"uuid"`
	L3NetworkUuid string `json:"l3NetworkUuid"`
	Name          string `json:"name"`      // Maximum length of 255 characters
	StartIp       string `json:"startIp"`   // Start IP address, in IPv4
	EndIp         string `json:"endIp"`     // End IP address, in IPv4
	IpVersion     int    `json:"ipVersion"` // IP version (e.g., 4 for IPv4)
}

type ResourceConfigView

type ResourceConfigView struct {
	BaseInfoView
	BaseTimeView

	ResourceUuid string `json:"resourceUuid"` // UUID of the resource corresponding to the configuration
	ResourceType string `json:"resourceType"` // Type of the resource corresponding to the configuration
	Category     string `json:"category"`     // Configuration category
	Value        string `json:"value"`        // Value of the configuration
}

type SdnControllerInventoryView

type SdnControllerInventoryView struct {
	BaseInfoView
	BaseTimeView

	Ip         string       `json:"ip"`
	Status     string       `json:"status"`
	UserName   string       `json:"username"`
	Passwordd  string       `json:"password"`
	VendorType string       `json:"verdorType"`
	HostRefs   []HostRefs   `json:"hostRefs"`
	VniRanges  []VniRanges  `json:"vniRanges"`
	VxlanPools []VxlanPools `json:"vxlanPools"`
}

type SecurityGroupInventoryView

type SecurityGroupInventoryView struct {
	BaseInfoView
	BaseTimeView
	State                  string                           `json:"state"`     // Enabled, Disabled
	IpVersion              int32                            `json:"ipVersion"` // IPv4, IPv6
	AttachedL3NetworkUuids []string                         `json:"attachedL3NetworkUuids"`
	VSwitchType            string                           `json:"vswitchType"` // LinuxBridge, OvnDpdk
	Rules                  []SecurityGroupRuleInventoryView `json:"rules"`       // Security group rules
}

type SecurityGroupRuleInventoryView

type SecurityGroupRuleInventoryView struct {
	BaseTimeView
	UUID                    string `json:"uuid"`
	Action                  string `json:"action"` // Allow, Deny
	Description             string `json:"description,omitempty"`
	StartPort               int64  `json:"startPort"`
	EndPort                 int64  `json:"endPort"`
	IpVersion               int    `json:"ipVersion"`              // 4 or 6
	Priority                int    `json:"priority"`               // Optional, default is 0
	Protocol                string `json:"protocol"`               // TCP, UDP, ICMP, ALL
	AllowedCidr             string `json:"allowedCidr"`            // CIDR format, e.g., "
	DstPortRange            string `json:"dstPortRange,omitempty"` // e.g., "21, 80-443" for TCP/UDP
	SecurityGroupUuid       string `json:"securityGroupUuid"`      // UUID of the security group this rule belongs to
	SrcIpRange              string `json:"srcIpRange,omitempty"`   // Ingress Only. CIDR format, e.g., 192.168.1.1-192.168.1.10,192.168.1.11"
	DstIpRange              string `json:"dstIpRange,omitempty"`   // Egress Only. CIDR format, e.g.,  192.168.1.1-192.168.1.10,192.168.1.11""
	State                   string `json:"state"`                  // Enabled, Disabled
	Type                    string `json:"type"`                   // Ingress, Egress
	RemoteSecurityGroupUuid string `json:"remoteSecurityGroupUuid"`
}

type ServicesRefs

type ServicesRefs struct {
	UUID        string `json:"uuid"`        // Resource UUID, uniquely identifies the resource
	ServiceType string `json:"serviceType"` // Service type
	VipUuid     string `json:"vipUuid"`
	CreateDate  string `json:"createDate"` // Creation time
	LastOpDate  string `json:"lastOpDate"` // Last modification time
}

type SessionView

type SessionView struct {
	UUID        string    `json:"uuid"`        // Resource UUID, uniquely identifies the resource
	AccountUuid string    `json:"accountUuid"` // Account UUID
	UserUuid    string    `json:"userUuid"`    // User UUID
	ExpiredDate time.Time `json:"expiredDate"` // Session expiration date
	CreateDate  time.Time `json:"createDate"`  // Creation time
}

type SystemTagView

type SystemTagView struct {
	BaseInfoView
	BaseTimeView

	Inherent     bool   `json:"inherent"`     // Internal system tag
	ResourceUuid string `json:"resourceUuid"` // User-specified resource UUID, if specified, the system will not randomly assign a UUID to the resource
	ResourceType string `json:"resourceType"` // When creating a tag, the user must specify the resource type associated with the tag
	Tag          string `json:"tag"`          // Tag string
}

type T

type T struct {
	State         string `json:"state"`
	Status        string `json:"status"`
	TotalCapacity int64  `json:"totalCapacity"`
	Type          string `json:"type"`
	Url           string `json:"url"`
	Uuid          string `json:"uuid"`
}

type TagInventory

type TagInventory struct {
	Uuid         string `json:"uuid"`
	ResourceType string `json:"resourceType"`
	ResourceUuid string `json:"resourceUuid"`
	Tag          string `json:"tag"`
	Type         string `json:"type"`
	// Note: For simple pattern tags, the value cannot be changed.
	// For withToken pattern tags, only the key values can be changed.
	// WithToken pattern format: name::{key1}::{key2}...::{keyN}
	TagPatternUuid string         `json:"tagPatternUuid"`
	TagPattern     TagPatternView `json:"tagPattern"`
	CreateDate     string         `json:"createDate"`
	LastOpDate     string         `json:"lastOpDate"`
}

type TagInventoryView

type TagInventoryView struct {
	BaseInfoView
	BaseTimeView
	Color string `json:"color"`
	Type  string `json:"type"`
}

type TagPatternView

type TagPatternView struct {
	Uuid       string `json:"uuid"`       // Tag pattern UUID
	Name       string `json:"name"`       // Name of the tag pattern
	Value      string `json:"value"`      // Actual tag value (e.g. withToken::{xxx})
	Color      string `json:"color"`      // Color associated with the tag
	Type       string `json:"type"`       // Tag type: simple | withToken
	CreateDate string `json:"createDate"` // Creation timestamp
	LastOpDate string `json:"lastOpDate"` // Last update timestamp
}

type TaskProgressInventoryView

type TaskProgressInventoryView struct {
	TaskUuid   string                      `json:"taskUuid"`
	TaskName   string                      `json:"taskName"`
	ParentUuid string                      `json:"parentUuid"`
	Type       string                      `json:"type"`
	Content    string                      `json:"content"`
	Opaque     interface{}                 `json:"opaque"`
	Time       int64                       `json:"time"`
	SubTasks   []TaskProgressInventoryView `json:"subTasks"`
}

type UnmountVmInstanceRecoveryPointView

type UnmountVmInstanceRecoveryPointView MountVmInstanceRecoveryPointView

type UsbDeviceView

type UsbDeviceView struct {
	BaseInfoView
	BaseTimeView
	AttachType     string `json:"attachType"`
	BusNum         string `json:"busNum"`
	DevNum         string `json:"devNum"`
	HostUuid       string `json:"hostUuid"`
	IManufacturer  string `json:"iManufacturer"`
	IProduct       string `json:"iProduct"`
	ISerial        string `json:"iSerial"`
	IdProduct      string `json:"idProduct"`
	IdVendor       string `json:"idVendor"`
	State          string `json:"state"`
	UsbVersion     string `json:"usbVersion"`
	VmInstanceUuid string `json:"vmInstanceUuid"`
}

type UsedIp

type UsedIp struct {
	Uuid          string    `json:"uuid"`          // Resource UUID, uniquely identifies the resource
	IpRangeUuid   string    `json:"ipRangeUuid"`   // IP range UUID
	L3NetworkUuid string    `json:"l3NetworkUuid"` // Layer 3 network UUID
	IpVersion     int       `json:"ipVersion"`     // IP protocol number
	Ip            string    `json:"ip"`            // IP address
	Netmask       string    `json:"netmask"`       // Network mask
	Gateway       string    `json:"gateway"`       // Gateway address
	UsedFor       string    `json:"usedFor"`       //
	IpInLong      int64     `json:"ipInLong"`      //
	VmNicUuid     string    `json:"vmNicUuid"`     // Cloud host NIC UUID
	CreateDate    time.Time `json:"createDate"`    // Creation time
	LastOpDate    time.Time `json:"lastOpDate"`    // Last modification time
}

type UserTagInventoryView

type UserTagInventoryView struct {
	Uuid         string `json:"uuid"`
	ResourceType string `json:"resourceType"`
	ResourceUuid string `json:"resourceUuid"`
	Tag          string `json:"tag"`
	Type         string `json:"type"`
	CreateDate   string `json:"createDate"`
	LastOpDate   string `json:"lastOpDate"`
}

type VMCDRomView

type VMCDRomView struct {
	BaseInfoView
	BaseTimeView
	VmInstanceUuid string  `json:"vmInstanceUuid"`
	DeviceId       float64 `json:"deviceId"`
	IsoUuid        string  `json:"isoUuid"`
	IsoInstallPath string  `json:"isoInstallPath"`
}

type VMConsoleAddressView

type VMConsoleAddressView struct {
	HostIp      string      `json:"hostIp" bson:"hostIp"`           // IP of the physical machine running the cloud host
	Port        string      `json:"port" bson:"port"`               // Console port of the cloud host
	Protocol    string      `json:"protocol" bson:"protocol"`       // Console protocol of the cloud host, e.g., vnc or spice or vncAndSpice
	Success     bool        `json:"success" bson:"success"`         // Whether the operation was successful
	VdiPortInfo VdiPortInfo `json:"vdiPortInfo" bson:"vdiPortInfo"` // Port group
}

type VMQgaView

type VMQgaView struct {
	UUID   string `json:"uuid" `
	Enable bool   `json:"enable" `
}

type VMSshKeyView

type VMSshKeyView struct {
	SshKey string `json:"sshKey" `
}

type VdiPortInfo

type VdiPortInfo struct {
	VncPort      int `json:"vncPort" bson:"vncPort"`           // VNC port number
	SpicePort    int `json:"spicePort" bson:"spicePort"`       // SPICE port number
	SpiceTlsPort int `json:"spiceTlsPort" bson:"spiceTlsPort"` // SPICE TLS port number, used when SPICE is encrypted with TLS
}

type VipInventoryView

type VipInventoryView struct {
	BaseInfoView
	BaseTimeView

	L3NetworkUUID      string         `json:"l3NetworkUuid"` // Layer 3 network UUID
	Ip                 string         `json:"ip"`
	State              string         `json:"state"`
	Gateway            string         `json:"gateway"`            // Gateway
	Netmask            string         `json:"netmask"`            // Subnet mask
	PrefixLen          string         `json:"prefixLen"`          // Mask length
	ServiceProvider    string         `json:"serviceProvider"`    // Service provider offering VIP service
	PeerL3NetworkUuids string         `json:"peerL3NetworkUuids"` // L3 network UUIDs offering VIP service
	UseFor             string         `json:"useFor"`             // Usage, e.g., port forwarding
	System             bool           `json:"system"`             // Whether created by the system
	ServicesRefs       []ServicesRefs `json:"servicesRefs"`
}

type VirtualRouterInventoryView

type VirtualRouterInventoryView struct {
	BaseInfoView
	BaseTimeView

	ApplianceVmType           string               `json:"applianceVmType"`
	ManagementNetworkUuid     string               `json:"managementNetworkUuid"`
	DefaultRouteL3NetworkUuid string               `json:"defaultRouteL3NetworkUuid"`
	Status                    string               `json:"status"` // Connection status of the cloud disk
	AgentPort                 int                  `json:"agentPort"`
	ZoneUuid                  string               `json:"zoneUuid,omitempty"`    // Zone UUID If specified, the cloud host will be created in the specified zone.
	ClusterUUID               string               `json:"clusterUuid,omitempty"` // Cluster UUID If specified, the cloud host will be created in the specified cluster, this field has higher priority than zoneUuid.
	ImageUUID                 string               `json:"imageUuid"`             // Image UUID The root cloud disk of the cloud host will be created from the image specified by this field.
	HostUuid                  string               `json:"hostUuid"`              // Physical machine UUID
	LastHostUUID              string               `json:"lastHostUuid"`          // Physical machine UUID where the cloud host last ran
	InstanceOfferingUUID      string               `json:"instanceOfferingUuid"`  // Compute specification UUID Specifies the CPU, memory, and other parameters of the cloud host.
	RootVolumeUuid            string               `json:"rootVolumeUuid"`
	Platform                  string               `json:"platform"`
	DefaultL3NetworkUuid      string               `json:"defaultL3NetworkUuid"`
	Type                      string               `json:"type"`
	HypervisorType            string               `json:"hypervisorType"` // Hypervisor type, e.g., KVM Simulator
	MemorySize                int64                `json:"memorySize"`     // Memory size
	CPUNum                    int                  `json:"cpuNum"`         // Number of CPUs
	CPUSpeed                  int64                `json:"cpuSpeed"`       // CPU frequency
	AllocatorStrategy         string               `json:"allocatorStrategy,omitempty"`
	State                     string               `json:"state"`
	VMNics                    []VmNicInventoryView `json:"vmNics"`     // All NIC information
	AllVolumes                []VolumeView         `json:"allVolumes"` // All volumes
	HaStatus                  string               `json:"haStatus"`
	Architecture              string               `json:"architecture"`
}

type VirtualRouterOfferingInventoryView

type VirtualRouterOfferingInventoryView struct {
	BaseInfoView
	BaseTimeView

	CpuNum                int    `json:"cpuNum"`            // Number of CPUs
	CpuSpeed              int    `json:"cpuSpeed"`          // CPU speed
	MemorySize            int64  `json:"memorySize"`        // Memory size
	Type                  string `json:"type"`              // Type
	AllocatorStrategy     string `json:"allocatorStrategy"` // Allocation strategy
	SortKey               int    `json:"sortKey"`
	State                 string `json:"state"` // State (Enabled, Disabled)
	ManagementNetworkUuid string `json:"managementNetworkUuid"`
	PublicNetworkUuid     string `json:"publicNetworkUuid"`
	ZoneUuid              string `json:"zoneUuid"`
	ImageUuid             string `json:"imageUuid"`
	IsDefault             bool   `json:"isDefault"`
	ReservedMemorySize    string `json:"reservedMemorySize"`
}

type VmCdRom

type VmCdRom struct {
	BaseInfoView
	BaseTimeView

	DeviceId       int    `json:"deviceId"`       // Device ID
	VmInstanceUuid string `json:"vmInstanceUuid"` // VM instance UUID
}

type VmGuestToolsInfoView

type VmGuestToolsInfoView struct {
	Version string `json:"version"`
	Status  string `json:"status"`
}

type VmInstanceInventoryView

type VmInstanceInventoryView struct {
	BaseInfoView
	BaseTimeView

	ZoneUUID             string               `json:"zoneUuid"`             // Zone UUID
	ClusterUUID          string               `json:"clusterUuid"`          // Cluster UUID
	ImageUUID            string               `json:"imageUuid"`            // Image UUID
	HostUUID             string               `json:"hostUuid"`             // Physical machine UUID
	LastHostUUID         string               `json:"lastHostUuid"`         // Physical machine UUID where the cloud host last ran
	InstanceOfferingUUID string               `json:"instanceOfferingUuid"` // Compute specification UUID
	RootVolumeUUID       string               `json:"rootVolumeUuid"`       // Root cloud disk UUID
	Platform             string               `json:"platform"`             // Cloud host running platform
	Architecture         string               `json:"architecture"`         // Architecture type
	GuestOsType          string               `json:"guestOsType" `         // Guest OS type corresponding to the image
	DefaultL3NetworkUUID string               `json:"defaultL3NetworkUuid"` // Default layer 3 network UUID
	Type                 string               `json:"type"`                 // Cloud host type
	HypervisorType       string               `json:"hypervisorType"`       // Hypervisor type of the cloud host
	MemorySize           int64                `json:"memorySize"`           // Memory size
	CPUNum               int                  `json:"cpuNum"`               // Number of CPUs
	CPUSpeed             int64                `json:"cpuSpeed"`             // CPU frequency
	AllocatorStrategy    string               `json:"allocatorStrategy"`    // Allocation strategy
	State                string               `json:"state"`                // Availability status of the cloud host
	VMNics               []VmNicInventoryView `json:"vmNics"`               // All NIC information
	AllVolumes           []VolumeView         `json:"allVolumes"`           // All volumes
	VmCdRoms             []VmCdRom            `json:"vmCdRoms"`             // CD-ROMs
}

type VmInstanceScriptInventoryView

type VmInstanceScriptInventoryView struct {
	BaseInfoView
	BaseTimeView

	ScriptContent string `json:"scriptContent"` // 脚本内容,可能是明文或已解码后的内容
	RenderParams  string `json:"renderParams"`  // JSON 字符串,表示渲染参数数组
	Platform      string `json:"platform"`      // 平台类型,如 Linux
	ScriptType    string `json:"scriptType"`    // 脚本类型,如 Shell
	ScriptTimeout int    `json:"scriptTimeout"` // 超时时间(秒)
	EncodingType  string `json:"encodingType"`  // 编码类型,如 base64, planText
}

type VmInstanceScriptResultDetailInventoryView

type VmInstanceScriptResultDetailInventoryView struct {
	BaseExecTimeView
	RecordUuid     string `json:"recordUuid"`     // 记录 UUID
	VmInstanceUuid string `json:"vmInstanceUuid"` // 虚拟机实例 UUID
	VmName         string `json:"vmName"`
	Status         string `json:"status"`
	ExitCode       int    `json:"exitCode"` // 退出码
	Stdout         string `json:"stdout"`   // 标准输出
	Stderr         string `json:"stderr"`   // 标准错误输出
	ErrCause       string `json:"errCause"` // 错误原因
}

type VmInstanceScriptResultInventoryView

type VmInstanceScriptResultInventoryView struct {
	BaseInfoView
	BaseExecTimeView
	ScriptUUID     string `json:"scriptUuid"` // 脚本 UUID
	RecordName     string `json:"recordName"` // 记录名称
	ScriptTimeout  int    `json:"scriptTimeout"`
	Status         string `json:"status"`         // 状态,如 Running, Succeeded, Failed
	Executor       string `json:"executor"`       // 执行者
	ExecutionCount int    `json:"executionCount"` // 执行次数
	Version        int    `json:"version"`        // 脚本版本
	ScriptContent  string `json:"scriptContent"`  // 脚本内容,可能是明文或已解码后的内容
	RenderParams   string `json:"renderParams"`   // JSON 字符串,表示渲染参数数组
}

type VmNicInventoryView

type VmNicInventoryView struct {
	UUID           string   `json:"uuid"`           // Resource UUID, uniquely identifies the resource
	VMInstanceUUID string   `json:"vmInstanceUuid"` // Cloud host UUID
	L3NetworkUUID  string   `json:"l3NetworkUuid"`  // Layer 3 network UUID
	IP             string   `json:"ip"`             // IP address
	Mac            string   `json:"mac"`            // MAC address
	HypervisorType string   `json:"hypervisorType"` // Hypervisor type
	Netmask        string   `json:"netmask"`        // Subnet mask
	Gateway        string   `json:"gateway"`        // Gateway
	MetaData       string   `json:"metaData"`       // Reserved field for internal use, metadata
	IpVersion      int      `json:"ipVersion"`      // IP address version
	DeviceID       int      `json:"deviceId"`       // Device ID, an integer that identifies the order of the NIC in the guest operating system's Ethernet devices. For example, 0 usually represents eth0, 1 usually represents eth1.
	DriverType     string   `json:"driverType"`     // NIC model
	Type           string   `json:"type"`           // NIC type
	CreateDate     string   `json:"createDate"`     // Creation time
	LastOpDate     string   `json:"lastOpDate"`     // Last modification time
	InternalName   string   `json:"internalName"`
	UsedIps        []UsedIp `json:"usedIps"`
}

type VmNicView

type VmNicView struct {
	InternalName string `json:"internalName"`
	Mac          string `json:"mac"`
	Uuid         string `json:"uuid"`
}

type VniRanges

type VniRanges struct {
	StartVni string `json:"startVni"`
	EndVni   string `json:"endVni"`
}

type VolumeCapabilitiesView

type VolumeCapabilitiesView struct {
	MigrationToOtherPrimaryStorage   bool `json:"MigrationToOtherPrimaryStorage"`
	MigrationInCurrentPrimaryStorage bool `json:"MigrationInCurrentPrimaryStorage"`
}

type VolumeFormatView

type VolumeFormatView struct {
	Format                    string   `json:"format"`
	MasterHypervisorType      string   `json:"masterHypervisorType"`
	SupportingHypervisorTypes []string `json:"supportingHypervisorTypes"`
}

type VolumeQoSView

type VolumeQoSView struct {
	VolumeUuid                      string `json:"volumeUuid"`                      // Cloud disk UUID
	VolumeBandwidth                 int32  `json:"volumeBandwidth"`                 // Cloud disk bandwidth, default -1
	VolumeBandwidthRead             int32  `json:"volumeBandwidthRead"`             // Cloud disk read bandwidth, default -1
	VolumeBandwidthWrite            int32  `json:"volumeBandwidthWrite"`            // Cloud disk write bandwidth, default -1
	VolumeBandwidthUpthreshold      int32  `json:"volumeBandwidthUpthreshold"`      // Cloud disk bandwidth upper limit, default -1
	VolumeBandwidthReadUpthreshold  int32  `json:"volumeBandwidthReadUpthreshold"`  // Cloud disk read bandwidth upper limit, default -1
	VolumeBandwidthWriteUpthreshold int32  `json:"volumeBandwidthWriteUpthreshold"` // Cloud disk write bandwidth upper limit, default -1
	IopsTotal                       int32  `json:"iopsTotal"`                       // Total IOPS of the cloud disk
	IopsRead                        int32  `json:"iopsRead"`                        // Read IOPS of the cloud disk
	IopsWrite                       int32  `json:"iopsWrite"`                       // Write IOPS of the cloud disk
	IopsTotalUpthreshold            int32  `json:"iopsTotalUpthreshold"`            // Total IOPS upper limit of the cloud disk, -1 means no upper limit
	IopsReadUpthreshold             int32  `json:"iopsReadUpthreshold"`             // Read IOPS upper limit of the cloud disk, -1 means no upper limit
	IopsWriteUpthreshold            int32  `json:"iopsWriteUpthreshold"`            // Write IOPS upper limit of the cloud disk, -1 means no upper limit
}

type VolumeSnapshotGroupAvailabilityView

type VolumeSnapshotGroupAvailabilityView struct {
	UUID      string `json:"uuid"`      // Resource UUID, uniquely identifies the resource
	Available bool   `json:"available"` // Whether it can be restored
	Reason    string `json:"reason"`    // Reason for not being able to restore, empty if it can be restored
}

type VolumeSnapshotGroupView

type VolumeSnapshotGroupView struct {
	BaseInfoView
	BaseTimeView

	SnapshotCount      int                     `json:"snapshotCount"`  // Number of snapshots in the group
	VmInstanceUuid     string                  `json:"vmInstanceUuid"` // Cloud host UUID
	VolumeSnapshotRefs []VolumeSnapshotRefView `json:"volumeSnapshotRefs"`
}

type VolumeSnapshotRefView

type VolumeSnapshotRefView struct {
	BaseTimeView

	VolumeSnapshotUuid        string `json:"volumeSnapshotUuid"`        // Cloud disk snapshot UUID
	VolumeSnapshotGroupUuid   string `json:"volumeSnapshotGroupUuid"`   // Snapshot group UUID
	DeviceId                  int    `json:"deviceId"`                  // Mount sequence number of the cloud disk when the snapshot was taken
	SnapshotDeleted           bool   `json:"snapshotDeleted"`           // Whether the snapshot has been deleted
	VolumeUuid                string `json:"volumeUuid"`                // Cloud disk UUID
	VolumeName                string `json:"volumeName"`                // Name of the cloud disk
	VolumeType                string `json:"volumeType"`                // Type of the cloud disk
	VolumeSnapshotInstallPath string `json:"volumeSnapshotInstallPath"` // Installation path of the snapshot
	VolumeSnapshotName        string `json:"volumeSnapshotName"`        // Name of the snapshot
}

type VolumeSnapshotShrinkResultView

type VolumeSnapshotShrinkResultView struct {
	Result struct {
		OldSize   int64 `json:"oldSize"`
		Size      int64 `json:"size"`
		DeltaSize int64 `json:"deltaSize"`
	} `json:"shrinkResult"`
}

type VolumeSnapshotSizeView

type VolumeSnapshotSizeView struct {
	Size       int64 `json:"size"`
	ActualSize int64 `json:"actualSize"`
	Success    bool  `json:"success"`
}

type VolumeSnapshotTreeNodeView

type VolumeSnapshotTreeNodeView struct {
	Inventory VolumeSnapshotView           `json:"inventory"`
	Children  []VolumeSnapshotTreeNodeView `json:"children"`
}

type VolumeSnapshotTreeView

type VolumeSnapshotTreeView struct {
	BaseInfoView
	BaseTimeView

	Current    bool                       `json:"current"`
	Tree       VolumeSnapshotTreeNodeView `json:"tree"`
	Status     string                     `json:"status"`
	VolumeUUID string                     `json:"volumeUuid"`
}

type VolumeSnapshotView

type VolumeSnapshotView struct {
	BaseInfoView
	BaseTimeView

	Type                      string `json:"type"`
	VolumeUUID                string `json:"volumeUuid"`
	TreeUUID                  string `json:"treeUuid"`
	ParentUUID                string `json:"parentUuid"`
	PrimaryStorageUUID        string `json:"primaryStorageUuid"`
	PrimaryStorageInstallPath string `json:"primaryStorageInstallPath"`
	VolumeType                string `json:"volumeType"`
	Format                    string `json:"format"`
	Latest                    bool   `json:"latest"`
	Size                      int64  `json:"size"`
	State                     string `json:"state"`
	Status                    string `json:"status"`
	Distance                  int    `json:"distance"`
	GroupUuid                 string `json:"groupUuid"`
}

type VolumeView

type VolumeView struct {
	BaseInfoView
	BaseTimeView

	PrimaryStorageUUID string    `json:"primaryStorageUuid"` // Primary storage UUID
	VMInstanceUUID     string    `json:"vmInstanceUuid"`     // Cloud VM UUID
	LastVmInstanceUuid string    `json:"lastVmInstanceUuid"` // Last cloud VM UUID
	DiskOfferingUUID   string    `json:"diskOfferingUuid"`   // Cloud disk specification UUID
	RootImageUUID      string    `json:"rootImageUuid"`
	InstallPath        string    `json:"installPath"`
	Type               string    `json:"type"`
	Format             string    `json:"format"`
	Size               int       `json:"size"`
	ActualSize         int       `json:"actualSize"`
	DeviceID           float32   `json:"deviceId"`
	State              string    `json:"state"`
	Status             string    `json:"status"`
	IsShareable        bool      `json:"isShareable"`
	LastDetachDate     time.Time `json:"lastDetachDate"` // Last detach time
}

type VpcRouterVmInventoryView

type VpcRouterVmInventoryView struct {
	BaseInfoView
	BaseTimeView

	PublicNetworkUuid         string               `json:"publicNetworkUuid"`
	VirtualRouterVips         []string             `json:"virtualRouterVips"`
	ApplianceVmType           string               `json:"applianceVmType"`
	ManagementNetworkUuid     string               `json:"managementNetworkUuid"`
	DefaultRouteL3NetworkUuid string               `json:"defaultRouteL3NetworkUuid"`
	Status                    string               `json:"status"`
	AgentPort                 int                  `json:"agentPort"`
	ZoneUuid                  string               `json:"zoneUuid,omitempty"`    // Zone UUID. If specified, the cloud host will be created in the specified zone.
	ClusterUUID               string               `json:"clusterUuid,omitempty"` // Cluster UUID. If specified, the cloud host will be created in the specified cluster. This field has higher priority than zoneUuid.
	ImageUUID                 string               `json:"imageUuid"`             // Image UUID. The root cloud disk of the cloud host will be created from the image specified by this field.
	HostUuid                  string               `json:"hostUuid"`              // Physical machine UUID
	LastHostUUID              string               `json:"lastHostUuid"`          // UUID of the physical machine where the cloud host last ran
	InstanceOfferingUUID      string               `json:"instanceOfferingUuid"`  // Compute specification UUID. Specifies the CPU, memory, and other parameters of the cloud host.
	RootVolumeUuid            string               `json:"rootVolumeUuid"`
	Platform                  string               `json:"platform"`
	DefaultL3NetworkUuid      string               `json:"defaultL3NetworkUuid"`
	Type                      string               `json:"type"`
	HypervisorType            string               `json:"hypervisorType"` // Hypervisor type, e.g., KVM, Simulator
	MemorySize                int64                `json:"memorySize"`     // Memory size
	CPUNum                    int                  `json:"cpuNum"`         // Number of CPUs
	CPUSpeed                  int64                `json:"cpuSpeed"`       // CPU frequency
	AllocatorStrategy         string               `json:"allocatorStrategy,omitempty"`
	VMNics                    []VmNicInventoryView `json:"vmNics"`     // All NIC information
	AllVolumes                []VolumeView         `json:"allVolumes"` // All volumes
	Dns                       []Dns                `json:"dns"`
}

type VxlanPools

type VxlanPools struct{}

type WebUISessionView

type WebUISessionView struct {
	SessionId       string `json:"sessionId"`   // Resource UUID
	AccountUuid     string `json:"accountUuid"` // Account UUID
	UserUuid        string `json:"userUuid"`    // User UUID
	UserName        string `json:"username"`    // Username
	LoginType       string `json:"loginType"`
	CurrentIdentity string `json:"currentIdentity"`
	ZSVersion       string `json:"zsVersion"` // ZStack Cloud detailed version
}

type ZoneView

type ZoneView struct {
	BaseInfoView
	BaseTimeView

	State string `json:"state"`
	Type  string `json:"type"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL