Documentation
¶
Index ¶
- func ConvertByteToGB(byteStr string) (string, error)
- func ConvertByteToGBInt64(byteValue int64) string
- func ConvertByteToMiB(byteStr string) (string, error)
- func ConvertByteToMiBInt64(byteValue int64) string
- func ConvertGBToMiB(gbStr string) (string, error)
- func ConvertGBToMiBInt64(gb int64) string
- func ConvertGiBToGB(gibStr string) (string, error)
- func ConvertGiBToGBInt64(gib int64) string
- func ConvertGiBToMiB(gibStr string) (string, error)
- func ConvertGiBToMiBInt64(gib int64) string
- func ConvertMBToMiB(mbStr string) (string, error)
- func ConvertMBToMiBInt64(mb int64) string
- func ConvertMiBToGB(mibStr string) (string, error)
- func ConvertMiBToGBInt64(mib int64) string
- func RSTypeString(rsType RSType) string
- type AccessInfo
- type AddonsInfo
- type AnyCallHandler
- type AnyCallInfo
- type CapacityGBRange
- type CloudPrice
- type ClusterHandler
- type ClusterInfo
- type ClusterStatus
- type CronSchedule
- type DiskHandler
- type DiskInfo
- type DiskStatus
- type FileSystemBackupInfo
- type FileSystemHandler
- type FileSystemInfo
- type FileSystemMetaInfo
- type FileSystemStatus
- type FileSystemType
- type GpuInfo
- type HealthCheckerInfo
- type HealthInfo
- type IID
- type ImageHandler
- type ImageInfo
- type ImageReqInfo
- type ImageStatus
- type ImageType
- type KeyPairHandler
- type KeyPairInfo
- type KeyPairReqInfo
- type KeyValue
- type ListenerInfo
- type Meta
- type MountTargetInfo
- type MyImageHandler
- type MyImageInfo
- type MyImageStatus
- type NLBHandler
- type NLBInfo
- type NetworkInfo
- type NodeGroupInfo
- type NodeGroupStatus
- type OSArchitecture
- type OSPlatform
- type OnDemand
- type Platform
- type Price
- type PriceInfo
- type PriceInfoHandler
- type ProductInfo
- type RSType
- type RegionInfo
- type RegionZoneHandler
- type RegionZoneInfo
- type SecurityHandler
- type SecurityInfo
- type SecurityReqInfo
- type SecurityRuleInfo
- type SubnetInfo
- type TagHandler
- type TagInfo
- type VCpuInfo
- type VMGroupInfo
- type VMHandler
- type VMInfo
- type VMReqInfo
- type VMSpecHandler
- type VMSpecInfo
- type VMStatus
- type VMStatusInfo
- type VPCHandler
- type VPCInfo
- type VPCReqInfo
- type ZoneInfo
- type ZoneStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertByteToGB ¶ added in v0.10.3
ConvertByteToGB converts a Byte string to a GB string (int string).
func ConvertByteToGBInt64 ¶ added in v0.10.3
ConvertByteToGBInt64 converts Byte (int64) to a GB string (int string).
func ConvertByteToMiB ¶ added in v0.10.3
ConvertByteToMiB converts a Byte string to a MiB string (int string).
func ConvertByteToMiBInt64 ¶ added in v0.10.3
ConvertByteToMiBInt64 converts Byte (int64) to a MiB string (int string).
func ConvertGBToMiB ¶ added in v0.10.3
ConvertGBToMiB converts a GB string to a MiB string (int string).
func ConvertGBToMiBInt64 ¶ added in v0.10.3
ConvertGBToMiBInt64 converts GB (int64) to a MiB string (int string).
func ConvertGiBToGB ¶ added in v0.10.3
ConvertGiBToGB converts a GiB string to a GB string (int string).
func ConvertGiBToGBInt64 ¶ added in v0.10.3
ConvertGiBToGBInt64 converts GiB (int64) to a GB string (int string).
func ConvertGiBToMiB ¶ added in v0.10.3
ConvertGiBToMiB converts a GiB string to a MiB string (int string).
func ConvertGiBToMiBInt64 ¶ added in v0.10.3
ConvertGiBToMiBInt64 converts GiB (int64) to a MiB string (int string).
func ConvertMBToMiB ¶ added in v0.10.3
ConvertMBToMiB converts an MB string to a MiB string (int string).
func ConvertMBToMiBInt64 ¶ added in v0.10.3
ConvertMBToMiBInt64 converts MB (int64) to a MiB string (int string).
func ConvertMiBToGB ¶ added in v0.10.3
ConvertMiBToGB converts a MiB string to a GB string (int string).
func ConvertMiBToGBInt64 ¶ added in v0.10.3
ConvertMiBToGBInt64 converts MiB (int64) to a GB string (int string).
func RSTypeString ¶ added in v0.8.20
Types ¶
type AccessInfo ¶ added in v0.6.15
type AccessInfo struct {
Endpoint string `json:"Endpoint,omitempty" example:"https://1.2.3.4"`
Kubeconfig string `json:"Kubeconfig,omitempty" example:"apiVersion: v1\nclusters:\n- cluster:\n ...."`
}
AccessInfo represents the access information of a Cluster. @description Access Information for a Kubernetes Cluster. <br> Take some time to provide.
type AddonsInfo ¶ added in v0.6.3
type AddonsInfo struct {
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
AddonsInfo represents the additional configuration information of a Cluster. @description Addons Information for a Kubernetes Cluster
type AnyCallHandler ¶ added in v0.6.9
type AnyCallHandler interface {
AnyCall(callInfo AnyCallInfo) (AnyCallInfo, error)
}
type AnyCallInfo ¶ added in v0.6.9
type AnyCallInfo struct {
FID string `json:"FID" validate:"required" example:"countAll"` // Function ID, ex: countAll
IKeyValueList []KeyValue `json:"IKeyValueList" validate:"required"` // Input Arguments List, ex:[{"Key": "rsType", "Value": "vpc"}]
OKeyValueList []KeyValue `json:"OKeyValueList" validate:"required"` // Output Results List, ex:[{"Key": "Count", "Value": "10"}]"
}
AnyCallInfo represents the structure for performing AnyCall API requests and responses. @description This structure holds both the input and output parameters for the AnyCall API.
type CapacityGBRange ¶ added in v0.10.8
type CloudPrice ¶ added in v0.8.0
type CloudPrice struct {
Meta Meta `json:"Meta" validate:"required" description:"Metadata information about the price data"`
CloudName string `json:"CloudName" validate:"required" example:"AWS"` // Name of the cloud provider
RegionName string `json:"RegionName" validate:"required" example:"us-east-1"` // Name of the region
PriceList []Price `json:"PriceList" validate:"required" description:"List of prices"` // List of prices for different services/products
}
CloudPrice represents the pricing information for a specific cloud provider.
type ClusterHandler ¶ added in v0.6.3
type ClusterHandler interface {
//------ Cluster Management
ListIID() ([]*IID, error)
CreateCluster(clusterReqInfo ClusterInfo) (ClusterInfo, error)
ListCluster() ([]*ClusterInfo, error)
GetCluster(clusterIID IID) (ClusterInfo, error)
DeleteCluster(clusterIID IID) (bool, error)
//------ Token Management
GenerateClusterToken(clusterIID IID) (string, error)
//------ NodeGroup Management
AddNodeGroup(clusterIID IID, nodeGroupReqInfo NodeGroupInfo) (NodeGroupInfo, error)
SetNodeGroupAutoScaling(clusterIID IID, nodeGroupIID IID, on bool) (bool, error)
ChangeNodeGroupScaling(clusterIID IID, nodeGroupIID IID,
DesiredNodeSize int, MinNodeSize int, MaxNodeSize int) (NodeGroupInfo, error)
RemoveNodeGroup(clusterIID IID, nodeGroupIID IID) (bool, error)
//------ Upgrade K8S
UpgradeCluster(clusterIID IID, newVersion string) (ClusterInfo, error)
}
-------- Cluster API
type ClusterInfo ¶ added in v0.6.3
type ClusterInfo struct {
IId IID `json:"IId" validate:"required"`
Version string `json:"Version" validate:"required" example:"1.30"` // Kubernetes Version, ex) 1.30
Network NetworkInfo `json:"Network" validate:"required"`
// ---
NodeGroupList []NodeGroupInfo `json:"NodeGroupList" validate:"omitempty"`
AccessInfo AccessInfo `json:"AccessInfo,omitempty"`
Addons AddonsInfo `json:"Addons,omitempty"`
Status ClusterStatus `json:"Status" validate:"required" example:"Active"`
CreatedTime time.Time `json:"CreatedTime,omitempty" example:"2024-08-27T10:00:00Z"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
-------- Info Structure ClusterInfo represents the details of a Kubernetes Cluster. @description Kubernetes Cluster Information
type ClusterStatus ¶ added in v0.6.3
type ClusterStatus string
-------- Const
const ( ClusterCreating ClusterStatus = "Creating" ClusterActive ClusterStatus = "Active" ClusterInactive ClusterStatus = "Inactive" ClusterUpdating ClusterStatus = "Updating" ClusterDeleting ClusterStatus = "Deleting" )
type CronSchedule ¶ added in v0.10.8
type CronSchedule struct {
Minute string `json:"Minute" default:"0"` // 0-59, *
Hour string `json:"Hour" default:"5"` // 0-23, *
DayOfMonth string `json:"DayOfMonth" default:"*"` // 1-31, *
Month string `json:"Month" default:"*"` // 1-12, *
DayOfWeek string `json:"DayOfWeek" default:"*"` // 0-6 (Sunday=0), *
}
type DiskHandler ¶ added in v0.6.4
type DiskHandler interface {
//------ Disk Management
ListIID() ([]*IID, error)
CreateDisk(DiskReqInfo DiskInfo) (DiskInfo, error)
ListDisk() ([]*DiskInfo, error)
GetDisk(diskIID IID) (DiskInfo, error)
ChangeDiskSize(diskIID IID, size string) (bool, error)
DeleteDisk(diskIID IID) (bool, error)
//------ Disk Attachment
AttachDisk(diskIID IID, ownerVM IID) (DiskInfo, error)
DetachDisk(diskIID IID, ownerVM IID) (bool, error)
}
-------- Disk API
type DiskInfo ¶ added in v0.6.4
type DiskInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
Zone string `json:"Zone" validate:"required" example:"us-east-1a"` // Target Zone Name
DiskType string `json:"DiskType" validate:"required" example:"gp2"` // "gp2", "Premium SSD", ...
DiskSize string `json:"DiskSize" validate:"required" example:"100"` // "default", "50", "1000" (unit is GB)
Status DiskStatus `json:"Status" validate:"required" example:"Available"`
OwnerVM IID `json:"OwnerVM" validate:"omitempty"` // When the Status is DiskAttached
CreatedTime time.Time `json:"CreatedTime" validate:"required"` // The time when the disk was created
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"` // A list of tags associated with this disk
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"` // Additional key-value pairs associated with this disk
}
-------- Info Structure DiskInfo represents the information of a Disk resource.
type DiskStatus ¶ added in v0.6.4
type DiskStatus string
-------- Const
const ( DiskCreating DiskStatus = "Creating" DiskAvailable DiskStatus = "Available" DiskAttached DiskStatus = "Attached" DiskDeleting DiskStatus = "Deleting" DiskError DiskStatus = "Error" )
type FileSystemBackupInfo ¶ added in v0.10.8
type FileSystemBackupInfo struct {
FileSystemIID string `json:"FileSystemIID" validate:"required"` // The File System IID to which this backup belongs
Schedule CronSchedule `json:"BackupSchedule,omitempty"` // Cron schedule for backups, default is "0 5 * * *" (Every day at 5 AM)
// for response only, not for request
BackupID string `json:"BackupID" validate:"required"`
CreationTime time.Time `json:"CreationTime"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
-------- Backup Structures
type FileSystemHandler ¶ added in v0.10.8
type FileSystemHandler interface {
// Meta API
GetMetaInfo() (FileSystemMetaInfo, error)
// List all file system IDs, not detailed info
ListIID() ([]*IID, error)
// File System Management
CreateFileSystem(reqInfo FileSystemInfo) (FileSystemInfo, error)
ListFileSystem() ([]*FileSystemInfo, error)
GetFileSystem(iid IID) (FileSystemInfo, error)
DeleteFileSystem(iid IID) (bool, error)
// Access Subnet Management
AddAccessSubnet(iid IID, subnetIID IID) (FileSystemInfo, error) // Add a subnet to the file system for access; creates a mount target in the driver if needed
RemoveAccessSubnet(iid IID, subnetIID IID) (bool, error) // Remove a subnet from the file system access list; deletes the mount target if needed
ListAccessSubnet(iid IID) ([]IID, error) // List of subnets whose VMs can use this file system
// Backup Management
ScheduleBackup(reqInfo FileSystemBackupInfo) (FileSystemBackupInfo, error) // Create a backup with the specified schedule
OnDemandBackup(fsIID IID) (FileSystemBackupInfo, error) // Create an on-demand backup for the specified file system
ListBackup(fsIID IID) ([]FileSystemBackupInfo, error)
GetBackup(fsIID IID, backupID string) (FileSystemBackupInfo, error)
DeleteBackup(fsIID IID, backupID string) (bool, error)
}
-------- File System Handler Interface
type FileSystemInfo ¶ added in v0.10.8
type FileSystemInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
Region string `json:"Region,omitempty" example:"us-east-1"`
Zone string `json:"Zone,omitempty" example:"us-east-1a"`
VpcIID IID `json:"VpcIID" validate:"required"` // Owner VPC IID
AccessSubnetList []IID `json:"AccessSubnetList,omitempty"` // List of subnets whose VMs can use this file system
Encryption bool `json:"Encryption,omitempty" default:"false"` // Encryption enabled or not
BackupSchedule FileSystemBackupInfo `json:"BackupSchedule,omitempty"` // Cron schedule for backups, default is "0 5 * * *" (Every day at 5 AM)
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"`
//**************************************************************************************************
//** (1) Basic setup: If not set by the user, these fields use CSP default values.
//** (2) Advanced setup: If set by the user, these fields enable CSP-specific file system features.
//**************************************************************************************************
FileSystemType FileSystemType `json:"FileSystemType,omitempty" example:"RegionType"` // RegionType, ZoneType; CSP default if omitted
NFSVersion string `json:"NFSVersion" validate:"required" example:"4.1"` // NFS protocol version, e.g., "3.0", "4.1"; CSP default if omitted
CapacityGB int64 `json:"CapacityGB,omitempty" example:"1024"` // Capacity in GB, -1 when not applicable. Ignored if CSP unsupported.; CSP default if omitted
// Each key/value must match one of the PerformanceOptions provided by the cloud driver for the selected file system type.
PerformanceInfo map[string]string `json:"PerformanceInfo,omitempty"` // Performance options, e.g., {"Tier": "STANDARD"}, {"ThroughputMode": "provisioned", "Throughput": "128"}; CSP default if omitted
// only for response, not for request
Status FileSystemStatus `json:"Status" validate:"required" example:"Available"`
UsedSizeGB int64 `json:"UsedSizeGB" validate:"required" example:"256"` // Current used size in GB.
MountTargetList []MountTargetInfo `json:"MountTargetList,omitempty"`
CreatedTime time.Time `json:"CreatedTime" validate:"required"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"` // Additional key-value pairs associated with this File System
}
-------- File System Info Structures
type FileSystemMetaInfo ¶ added in v0.10.8
type FileSystemMetaInfo struct {
// filled by the cloud driver
SupportsFileSystemType map[FileSystemType]bool `json:"SupportsFileSystemType"` // e.g., {"RegionType": true, "ZoneType": true, "RegionZoneBasedType": true, ...}
SupportsVPC map[RSType]bool `json:"SupportsVPC"` // e.g., {"VPC": true} or {"VPC": false} (if not supported)
SupportsNFSVersion []string `json:"SupportsNFSVersion"` // e.g., ["3.0", "4.1"]
SupportsCapacity bool `json:"SupportsCapacity"` // true if capacity can be specified
CapacityGBOptions map[string]CapacityGBRange `json:"CapacityGBOptions,omitempty"` // Capacity ranges per file system option (valid only if SupportsCapacity is true). e.g., GCP Filestore: {"Basic": {Min: 1024, Max: 65229}, "Zonal": {Min: 1024, Max: 102400}, "Regional": {Min: 1024, Max: 102400}}
PerformanceOptions map[string][]string `json:"PerformanceOptions,omitempty"` // Available performance settings per file system option. e.g., {"Basic": ["STANDARD"], "Zonal": ["HIGH_SCALE", "EXTREME"]}
}
-------- File System Meta Info Structures
type FileSystemStatus ¶ added in v0.10.8
type FileSystemStatus string
-------- File System Status Constants
const ( FileSystemCreating FileSystemStatus = "Creating" FileSystemAvailable FileSystemStatus = "Available" FileSystemDeleting FileSystemStatus = "Deleting" FileSystemError FileSystemStatus = "Error" )
type FileSystemType ¶ added in v0.10.8
type FileSystemType string
-------- File System Type Constants
const ( RegionType FileSystemType = "REGION-TYPE" ZoneType FileSystemType = "ZONE-TYPE" )
const ( RegionVPCBasedType FileSystemType = "REGION-VPC-BASED-TYPE" RegionZoneBasedType FileSystemType = "REGION-ZONE-BASED-TYPE" )
-------- File System Meta Info Constants
type GpuInfo ¶
type GpuInfo struct {
Count string `json:"Count" validate:"required" example:"2"` // Number of GPUs, "-1" when not applicable
Mfr string `json:"Mfr,omitempty" validate:"omitempty" example:"NVIDIA"` // Manufacturer of the GPU, NA when not applicable
Model string `json:"Model,omitempty" validate:"omitempty" example:"Tesla K80"` // Model of the GPU, NA when not applicable
MemSizeGB string `json:"MemSizeGB,omitempty" validate:"omitempty" example:"12"` // Memory size of the GPU in GB, "-1" when not applicable
TotalMemSizeGB string `json:"TotalMemSizeGB,omitempty" validate:"omitempty" example:"24"` // Total Memory size of the GPU in GB, "-1" when not applicable
}
GpuInfo represents the GPU details of a VM specification.
type HealthCheckerInfo ¶ added in v0.5.5
type HealthCheckerInfo struct {
Protocol string `json:"Protocol" validate:"required" example:"TCP"` // TCP|HTTP
Port string `json:"Port" validate:"required" example:"80"` // Listener Port or 1-65535
Interval int `json:"Interval" validate:"required" example:"30"` // secs, Interval time between health checks.
Timeout int `json:"Timeout" validate:"required" example:"5"` // secs, Waiting time to decide an unhealthy VM when no response.
Threshold int `json:"Threshold" validate:"required" example:"3"` // num, The number of continuous health checks to change the VM status.
CspID string `json:"CspID,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
HealthCheckerInfo represents the health check configuration for an NLB. @description Health Checker Information for a Network Load Balancer (NLB)
type HealthInfo ¶ added in v0.5.6
type HealthInfo struct {
AllVMs *[]IID `json:"AllVMs" validate:"required"`
HealthyVMs *[]IID `json:"HealthyVMs" validate:"required"`
UnHealthyVMs *[]IID `json:"UnHealthyVMs" validate:"required"`
}
HealthInfo represents the health status of the VM group in an NLB. @description Health Information for a Network Load Balancer (NLB)
type IID ¶ added in v0.1.2
type IID struct {
NameId string `json:"NameId" validate:"required" example:"user-defined-name"`
SystemId string `json:"SystemId" validate:"required" example:"csp-defined-id"`
}
Integrated-ID consisting of User's ID and CloudOS's ID
type ImageHandler ¶
type ImageInfo ¶
type ImageInfo struct {
IId IID `json:"IId" validate:"required" description:"The ID of the image."` // {NameId, SystemId}, {ami-00aa5a103ddf4509f, ami-00aa5a103ddf4509f}
Name string `json:"Name" validate:"required" example:"ami-00aa5a103ddf4509f" description:"The name of the image."` // ami-00aa5a103ddf4509f
OSArchitecture OSArchitecture `` // arm64, x86_64 etc.
/* 127-byte string literal not displayed */
OSPlatform OSPlatform `json:"OSPlatform" validate:"required" example:"Linux/UNIX" description:"The platform of the operating system of the image."` // Linux/UNIX, Windows, NA
OSDistribution string `` // Ubuntu 22.04~, CentOS 8 etc.
/* 134-byte string literal not displayed */
OSDiskType string `json:"OSDiskType" validate:"required" example:"HDD" description:"The type of the OS disk of for the VM being created."` // ebs, HDD, etc.
OSDiskSizeGB string `json:"OSDiskSizeGB" validate:"required" example:"50" description:"The (minimum) OS disk size in GB for the VM being created."` // 10, 50, 100 etc.
ImageStatus ImageStatus `` // Available, Unavailable
/* 129-byte string literal not displayed */
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty" description:"A list of key-value pairs associated with the image."`
}
ImageInfo represents the information of an Image.
type ImageReqInfo ¶
type ImageReqInfo struct {
IId IID // {NameId, SystemId}
}
type ImageStatus ¶ added in v0.10.1
type ImageStatus string
const ( ImageAvailable ImageStatus = "Available" ImageNA ImageStatus = "NA" )
type KeyPairHandler ¶
type KeyPairHandler interface {
CreateKey(keyPairReqInfo KeyPairReqInfo) (KeyPairInfo, error)
ListKey() ([]*KeyPairInfo, error)
GetKey(keyIID IID) (KeyPairInfo, error)
DeleteKey(keyIID IID) (bool, error)
ListIID() ([]*IID, error)
}
type KeyPairInfo ¶
type KeyPairInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
Fingerprint string `json:"Fingerprint,omitempty" validate:"omitempty" example:"3b:16:bf:1b:13:4b:b3:58:97:dc:72:19:45:bb:2c:8f"` // Unique identifier for the public key
PublicKey string `json:"PublicKey,omitempty" validate:"omitempty" example:"ssh-rsa AAAAB3..."` // Public part of the KeyPair
PrivateKey string `json:"PrivateKey,omitempty" validate:"omitempty" example:"-----BEGIN PRIVATE KEY-----..."` // Private part of the KeyPair
VMUserID string `json:"VMUserID,omitempty" validate:"omitempty" example:"cb-user"` // cb-user or Administrator
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"` // List of tags associated with this KeyPair
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"` // Additional metadata as key-value pairs
}
KeyPairInfo represents information about a KeyPair.
type KeyPairReqInfo ¶
type KeyValue ¶
type KeyValue struct {
Key string `json:"Key" validate:"required" example:"key1"`
Value string `json:"Value,omitempty" validate:"omitempty" example:"value1"`
}
func StructToKeyValueList ¶ added in v0.10.3
func StructToKeyValueList(obj interface{}) []KeyValue
type ListenerInfo ¶ added in v0.5.5
type ListenerInfo struct {
Protocol string `json:"Protocol" validate:"required" example:"TCP"` // TCP|UDP
IP string `json:"IP" validate:"omitempty" example:"192.168.0.1"`
Port string `json:"Port" validate:"required" example:"80"` // 1-65535
DNSName string `json:"DNSName" validate:"omitempty" example:"nlb.example.com"`
CspID string `json:"CspID,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
ListenerInfo represents the frontend listener configuration for an NLB. @description Listener Information for a Network Load Balancer (NLB)
type Meta ¶ added in v0.8.0
type Meta struct {
Version string `json:"Version" validate:"required" example:"1.0"` // Version of the pricing data
Description string `json:"Description,omitempty" example:"Cloud price data"` // Description of the pricing data
}
Meta contains metadata information about the price data.
type MountTargetInfo ¶ added in v0.10.8
type MountTargetInfo struct {
SubnetIID IID `json:"SubnetIID,omitempty"` // location of the mount target
SecurityGroups []string `json:"SecurityGroups,omitempty"` // security groups associated with the mount target
Endpoint string `json:"Endpoint,omitempty"` // mount target endpoint (IP, DNS, URL)
MountCommandExample string `json:"MountCommandExample,omitempty"` // Example mount command
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"` // Additional key-value pairs associated with this mount target
}
type MyImageHandler ¶ added in v0.6.5
type MyImageHandler interface {
//------ Snapshot to create a MyImage
SnapshotVM(snapshotReqInfo MyImageInfo) (MyImageInfo, error)
//------ MyImage Management
ListIID() ([]*IID, error)
ListMyImage() ([]*MyImageInfo, error)
GetMyImage(myImageIID IID) (MyImageInfo, error)
CheckWindowsImage(myImageIID IID) (bool, error)
DeleteMyImage(myImageIID IID) (bool, error)
}
-------- MyImage API
type MyImageInfo ¶ added in v0.6.5
type MyImageInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
SourceVM IID `json:"SourceVM" validate:"omitempty"`
Status MyImageStatus `json:"Status" validate:"required" example:"Available"` // Available | Unavailable
CreatedTime time.Time `json:"CreatedTime" validate:"required"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
-------- Info Structure MyImageInfo represents the information of a MyImage resource.
type MyImageStatus ¶ added in v0.6.5
type MyImageStatus string
-------- Const
const ( MyImageAvailable MyImageStatus = "Available" )
type NLBHandler ¶ added in v0.5.5
type NLBHandler interface {
//------ NLB Management
ListIID() ([]*IID, error)
CreateNLB(nlbReqInfo NLBInfo) (NLBInfo, error)
ListNLB() ([]*NLBInfo, error)
GetNLB(nlbIID IID) (NLBInfo, error)
DeleteNLB(nlbIID IID) (bool, error)
GetVMGroupHealthInfo(nlbIID IID) (HealthInfo, error)
AddVMs(nlbIID IID, vmIIDs *[]IID) (VMGroupInfo, error)
RemoveVMs(nlbIID IID, vmIIDs *[]IID) (bool, error)
//------ Frontend Control
ChangeListener(nlbIID IID, listener ListenerInfo) (ListenerInfo, error)
//------ Backend Control
ChangeVMGroupInfo(nlbIID IID, vmGroup VMGroupInfo) (VMGroupInfo, error)
ChangeHealthCheckerInfo(nlbIID IID, healthChecker HealthCheckerInfo) (HealthCheckerInfo, error)
}
-------- API
type NLBInfo ¶ added in v0.5.5
type NLBInfo struct {
IId IID `json:"IId" validate:"required"`
VpcIID IID `json:"VpcIID" validate:"required"` // Owner VPC IID
Type string `json:"Type" validate:"required" example:"PUBLIC"` // PUBLIC(V) | INTERNAL
Scope string `json:"Scope" validate:"required" example:"REGION"` // REGION(V) | GLOBAL
//------ Frontend
Listener ListenerInfo `json:"Listener" validate:"required"`
//------ Backend
VMGroup VMGroupInfo `json:"VMGroup" validate:"required"`
HealthChecker HealthCheckerInfo `json:"HealthChecker" validate:"required"`
CreatedTime time.Time `json:"CreatedTime" validate:"required" example:"2024-08-27T10:00:00Z"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
-------- Info Structure NLBInfo represents the details of a Network Load Balancer (NLB). @description Network Load Balancer (NLB) Information
type NetworkInfo ¶ added in v0.6.3
type NetworkInfo struct {
VpcIID IID `json:"VpcIID" validate:"required"`
SubnetIIDs []IID `json:"SubnetIIDs" validate:"required"`
SecurityGroupIIDs []IID `json:"SecurityGroupIIDs" validate:"required"`
// ---
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
NetworkInfo represents the network configuration of a Cluster. @description Network Information for a Kubernetes Cluster
type NodeGroupInfo ¶ added in v0.6.3
type NodeGroupInfo struct {
IId IID `json:"IId" validate:"required"`
// VM config.
ImageIID IID `json:"ImageIID" validate:"required"`
VMSpecName string `json:"VMSpecName" validate:"required" example:"t3.medium"`
RootDiskType string `json:"RootDiskType,omitempty" validate:"omitempty"`
RootDiskSize string `json:"RootDiskSize,omitempty" validate:"omitempty" example:"50"` // in GB
KeyPairIID IID `json:"KeyPairIID" validate:"required"`
// Scaling config.
OnAutoScaling bool `json:"OnAutoScaling" validate:"required" example:"true"`
DesiredNodeSize int `json:"DesiredNodeSize" validate:"required" example:"2"`
MinNodeSize int `json:"MinNodeSize" validate:"required" example:"1"`
MaxNodeSize int `json:"MaxNodeSize" validate:"required" example:"3"`
// ---
Status NodeGroupStatus `json:"Status" validate:"required" example:"Active"`
Nodes []IID `json:"Nodes,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
NodeGroupInfo represents the configuration of a Node Group in a Cluster. @description Node Group Information for a Kubernetes Cluster
type NodeGroupStatus ¶ added in v0.6.7
type NodeGroupStatus string
const ( NodeGroupCreating NodeGroupStatus = "Creating" NodeGroupActive NodeGroupStatus = "Active" NodeGroupInactive NodeGroupStatus = "Inactive" NodeGroupUpdating NodeGroupStatus = "Updating" NodeGroupDeleting NodeGroupStatus = "Deleting" )
type OSArchitecture ¶ added in v0.10.1
type OSArchitecture string
const ( ARM32 OSArchitecture = "arm32" ARM64 OSArchitecture = "arm64" ARM64_MAC OSArchitecture = "arm64_mac" X86_32 OSArchitecture = "x86_32" X86_64 OSArchitecture = "x86_64" X86_32_MAC OSArchitecture = "x86_32_mac" X86_64_MAC OSArchitecture = "x86_64_mac" ArchitectureNA OSArchitecture = "NA" )
type OSPlatform ¶ added in v0.10.1
type OSPlatform string
const ( Linux_UNIX OSPlatform = "Linux/UNIX" Windows OSPlatform = "Windows" PlatformNA OSPlatform = "NA" )
type OnDemand ¶ added in v0.10.5
type OnDemand struct {
PricingId string `json:"PricingId" validate:"required" example:"price-123"` // ID of the pricing policy
Unit string `json:"Unit" validate:"required" example:"Hour"` // Unit of the pricing (e.g., per hour)
Currency string `json:"Currency" validate:"required" example:"USD"` // Currency of the pricing
Price string `json:"Price" validate:"required" example:"0.02"` // Price in the specified currency per unit
Description string `json:"Description,omitempty" example:"Pricing for t2.micro"` // Description of the pricing policy
}
OnDemand represents the OnDemand pricing details.
type Price ¶ added in v0.8.1
type Price struct {
ZoneName string `json:"ZoneName,omitempty" example:"us-east-1a"` // Name of the zone
ProductInfo ProductInfo `json:"ProductInfo" validate:"required" description:"Information about the product"` // Information about the product
PriceInfo PriceInfo `json:"PriceInfo" validate:"required" description:"Pricing details of the product"` // Pricing details of the product
}
Price represents the price information for a specific product.
type PriceInfo ¶ added in v0.8.0
type PriceInfo struct {
OnDemand OnDemand `json:"OnDemand" validate:"required" description:"Ondemand pricing details"` // Ondemand pricing details
CSPPriceInfo interface{} `json:"CSPPriceInfo" validate:"required" description:"Additional price info"` // Additional price information specific to CSP
}
PriceInfo represents the pricing details for a product.
type PriceInfoHandler ¶ added in v0.8.0
type ProductInfo ¶ added in v0.8.0
type ProductInfo struct {
ProductId string `json:"ProductId" validate:"required" example:"prod-123"` // ID of the product
VMSpecName string `json:"VMSpecName,omitempty" validate:"omitempty" example:"t2.micro"` // Name of the VM spec (used in simple mode)
VMSpecInfo *VMSpecInfo `json:"VMSpecInfo,omitempty" validate:"omitempty" description:"Information about the VM spec"` // Information about the VM spec (used in detailed mode, default mode)
Description string `json:"Description,omitempty" example:"General purpose instance"` // Description of the product
CSPProductInfo interface{} `json:"CSPProductInfo" validate:"required" description:"Additional product info"` // Additional product information specific to CSP
}
ProductInfo represents the product details.
type RSType ¶ added in v0.8.20
type RSType string
const ( ALL RSType = "all" IMAGE RSType = "image" VPC RSType = "vpc" SUBNET RSType = "subnet" SG RSType = "sg" KEY RSType = "keypair" VM RSType = "vm" NLB RSType = "nlb" DISK RSType = "disk" MYIMAGE RSType = "myimage" CLUSTER RSType = "cluster" NODEGROUP RSType = "nodegroup" FILESYSTEM RSType = "filesystem" )
func StringToRSType ¶ added in v0.9.6
type RegionInfo ¶
type RegionZoneHandler ¶ added in v0.7.6
type RegionZoneHandler interface {
ListRegionZone() ([]*RegionZoneInfo, error)
GetRegionZone(Name string) (RegionZoneInfo, error)
ListOrgRegion() (string, error) // return string: json format
ListOrgZone() (string, error) // return string: json format
}
type RegionZoneInfo ¶ added in v0.7.6
type RegionZoneInfo struct {
Name string `json:"Name" validate:"required" example:"us-east"`
DisplayName string `json:"DisplayName" validate:"required" example:"United States, Ohio"`
CSPDisplayName string `json:"CSPDisplayName" validate:"required" example:"US East (N. Virginia)"`
ZoneList []ZoneInfo `json:"ZoneList,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
RegionZoneInfo represents the information of a Region Zone. @example {"Name": "us-east", "DisplayName": "United States, Ohio", "CSPDisplayName":"US East (N. Virginia)", "ZoneList": [{"Name": "us-east-1a", "DisplayName": "United States, Ohio", "CSPDisplayName":"US East (N. Virginia)", "Status": "Available"}], "KeyValueList": [{"Key": "regionKey1", "Value": "regionValue1"}]}
type SecurityHandler ¶
type SecurityHandler interface {
ListIID() ([]*IID, error)
CreateSecurity(securityReqInfo SecurityReqInfo) (SecurityInfo, error)
ListSecurity() ([]*SecurityInfo, error)
GetSecurity(securityIID IID) (SecurityInfo, error)
DeleteSecurity(securityIID IID) (bool, error)
AddRules(sgIID IID, securityRules *[]SecurityRuleInfo) (SecurityInfo, error)
RemoveRules(sgIID IID, securityRules *[]SecurityRuleInfo) (bool, error)
}
type SecurityInfo ¶
type SecurityInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
VpcIID IID `json:"VpcIID" validate:"required"` // {NameId, SystemId}
SecurityRules *[]SecurityRuleInfo `json:"SecurityRules" validate:"required" description:"A list of security rules applied to this security group"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty" description:"A list of tags associated with this security group"`
KeyValueList []KeyValue `` /* 127-byte string literal not displayed */
}
type SecurityReqInfo ¶
type SecurityReqInfo struct {
IId IID // {NameId, SystemId}
VpcIID IID // {NameId, SystemId}
//Direction string // To be deprecated
SecurityRules *[]SecurityRuleInfo
TagList []KeyValue
}
type SecurityRuleInfo ¶
type SecurityRuleInfo struct {
Direction string `json:"Direction" validate:"required" example:"inbound"` // inbound or outbound
IPProtocol string `json:"IPProtocol" validate:"required" example:"TCP"` // TCP, UDP, ICMP, ALL
FromPort string `json:"FromPort" validate:"required" example:"22"` // TCP, UDP: 1~65535, ICMP, ALL: -1
ToPort string `json:"ToPort" validate:"required" example:"22"` // TCP, UDP: 1~65535, ICMP, ALL: -1
CIDR string `json:"CIDR,omitempty" validate:"omitempty" example:"0.0.0.0/0"` // if not specified, defaults to 0.0.0.0/0
}
type SubnetInfo ¶ added in v0.1.3
type SubnetInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
Zone string `json:"Zone" validate:"required" example:"us-east-1a"`
IPv4_CIDR string `json:"IPv4_CIDR" validate:"required" example:"10.0.8.0/22" description:"The IPv4 CIDR block for the subnet"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty" description:"A list of tags associated with this subnet"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty" description:"Additional key-value pairs associated with this subnet"`
}
type TagHandler ¶ added in v0.8.20
type TagHandler interface {
AddTag(resType RSType, resIID IID, tag KeyValue) (KeyValue, error)
ListTag(resType RSType, resIID IID) ([]KeyValue, error)
GetTag(resType RSType, resIID IID, key string) (KeyValue, error)
RemoveTag(resType RSType, resIID IID, key string) (bool, error)
// Find tags by tag key or value
// resType: ALL | VPC, SUBNET, etc.,.
// keyword: The keyword to search for in the tag key or value.
// if you want to find all tags, set keyword to "" or "*".
FindTag(resType RSType, keyword string) ([]*TagInfo, error)
}
type TagInfo ¶ added in v0.8.20
type TagInfo struct {
ResType RSType `json:"ResType" validate:"required" example:"VPC"`
ResIId IID `json:"ResIId" validate:"required"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
TagInfo represents the tagging information for a cloud resource. @description Tag Information for a Cloud Resource.
type VCpuInfo ¶
type VCpuInfo struct {
Count string `json:"Count" validate:"required" example:"2"` // Number of VCpu, "-1" when not applicable
ClockGHz string `json:"ClockGHz,omitempty" validate:"omitempty" example:"2.5"` // Clock speed in GHz, "-1" when not applicable
}
VCpuInfo represents the CPU details of a VM specification.
type VMGroupInfo ¶ added in v0.5.6
type VMGroupInfo struct {
Protocol string `json:"Protocol" validate:"required" example:"TCP"` // TCP|UDP
Port string `json:"Port" validate:"required" example:"8080"` // 1-65535
VMs *[]IID `json:"VMs" validate:"required"`
CspID string `json:"CspID,omitempty" validate:"omitempty"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
VMGroupInfo represents the backend VM group configuration for an NLB. @description VM Group Information for a Network Load Balancer (NLB)
type VMHandler ¶
type VMHandler interface {
ListIID() ([]*IID, error)
StartVM(vmReqInfo VMReqInfo) (VMInfo, error)
SuspendVM(vmIID IID) (VMStatus, error)
ResumeVM(vmIID IID) (VMStatus, error)
RebootVM(vmIID IID) (VMStatus, error)
TerminateVM(vmIID IID) (VMStatus, error)
ListVMStatus() ([]*VMStatusInfo, error)
GetVMStatus(vmIID IID) (VMStatus, error)
ListVM() ([]*VMInfo, error)
GetVM(vmIID IID) (VMInfo, error)
}
type VMInfo ¶
type VMInfo struct {
IId IID `json:"IId" validate:"required"` // example:"{NameId: 'vm-01', SystemId: 'i-12345678'}"
StartTime time.Time `json:"StartTime" validate:"required" example:"2024-08-27T10:00:00Z"` // Timezone: based on cloud-barista server location.
Region RegionInfo `json:"Region" validate:"required"` // example:"{Region: 'us-east-1', Zone: 'us-east-1a'}"
ImageType ImageType `json:"ImageType" validate:"required" example:"PublicImage"` // PublicImage | MyImage
ImageIId IID `json:"ImageIId" validate:"required"` // example:"{NameId: 'ami-12345678', SystemId: 'ami-12345678'}"
VMSpecName string `json:"VMSpecName" validate:"required" example:"t2.micro"` // instance type or flavour, etc... ex) t2.micro or f1.micro
VpcIID IID `json:"VpcIID" validate:"required"` // example:"{NameId: 'vpc-01', SystemId: 'vpc-12345678'}"
SubnetIID IID `json:"SubnetIID" validate:"required"` // example:"{NameId: 'subnet-01', SystemId: 'subnet-12345678'}"
SecurityGroupIIds []IID `json:"SecurityGroupIIds" validate:"required"` // example:"[{NameId: 'sg-01', SystemId: 'sg-12345678'}]"
KeyPairIId IID `json:"KeyPairIId" validate:"required"` // example:"{NameId: 'keypair-01', SystemId: 'keypair-12345678'}"
RootDiskType string `json:"RootDiskType" validate:"required" example:"gp2"` // "gp2", "Premium SSD", ...
RootDiskSize string `json:"RootDiskSize" validate:"required" example:"50"` // "default", "50", "1000" (unit is GB)
RootDeviceName string `json:"RootDeviceName" validate:"required" example:"/dev/sda1"` // "/dev/sda1", ...
DataDiskIIDs []IID `json:"DataDiskIIDs,omitempty" validate:"omitempty"` // example:"[{NameId: 'datadisk-01', SystemId: 'datadisk-12345678'}]"
VMBootDisk string `json:"VMBootDisk,omitempty" validate:"omitempty" example:"/dev/sda1"` // Deprecated soon
VMBlockDisk string `json:"VMBlockDisk,omitempty" validate:"omitempty" example:"/dev/sda2"` // Deprecated soon
VMUserId string `json:"VMUserId" validate:"required" example:"cb-user"` // cb-user or Administrator
VMUserPasswd string `json:"VMUserPasswd,omitempty" validate:"omitempty" example:"password1234"` // Only for Windows
NetworkInterface string `json:"NetworkInterface" validate:"required" example:"eni-12345678"`
PublicIP string `json:"PublicIP" validate:"required" example:"1.2.3.4"`
PublicDNS string `json:"PublicDNS,omitempty" validate:"omitempty" example:"ec2-1-2-3-4.compute-1.amazonaws.com"`
PrivateIP string `json:"PrivateIP" validate:"required" example:"192.168.1.1"`
PrivateDNS string `json:"PrivateDNS,omitempty" validate:"omitempty" example:"ip-192-168-1-1.ec2.internal"`
Platform Platform `json:"Platform" validate:"required" example:"LINUX"` // LINUX | WINDOWS
SSHAccessPoint string `json:"SSHAccessPoint,omitempty" validate:"omitempty" example:"10.2.3.2:22"` // Deprecated
AccessPoint string `json:"AccessPoint" validate:"required" example:"1.2.3.4:22"` // 10.2.3.2:22, 123.456.789.123:432
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty"` // example:"[{Key: 'Name', Value: 'MyVM'}]"
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"` // example:"[{Key: 'Architecture', Value: 'x86_64'}]"
}
type VMReqInfo ¶
type VMReqInfo struct {
IId IID // {NameId, SystemId}
ImageType ImageType // PublicImage | MyImage, default: PublicImage
ImageIID IID
VpcIID IID
SubnetIID IID
SecurityGroupIIDs []IID
VMSpecName string
KeyPairIID IID
RootDiskType string // "", "SSD(gp2)", "Premium SSD", ...
RootDiskSize string // "", "default", "50", "1000" (unit is GB)
DataDiskIIDs []IID
VMUserId string
VMUserPasswd string
WindowsType bool
TagList []KeyValue
}
type VMSpecHandler ¶
type VMSpecHandler interface {
ListVMSpec() ([]*VMSpecInfo, error)
GetVMSpec(Name string) (VMSpecInfo, error)
ListOrgVMSpec() (string, error) // return string: json format
GetOrgVMSpec(Name string) (string, error) // return string: json format
}
type VMSpecInfo ¶
type VMSpecInfo struct {
Region string `json:"Region" validate:"required" example:"us-east-1"` // Region where the VM spec is available
Name string `json:"Name" validate:"required" example:"t2.micro"` // Name of the VM spec
VCpu VCpuInfo `json:"VCpu" validate:"required"` // CPU details of the VM spec
MemSizeMiB string `json:"MemSizeMiB" validate:"required" example:"1024"` // Memory size in MiB
DiskSizeGB string `json:"DiskSizeGB" validate:"required" example:"8"` // Disk size in GB, "-1" when not applicable
Gpu []GpuInfo `json:"Gpu,omitempty" validate:"omitempty"` // GPU details if available
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"` // Additional key-value pairs for the VM spec
}
VMSpecInfo represents the detailed information of a VM specification.
type VMStatus ¶
type VMStatus string
VMStatus represents the possible statuses of a VM. @description The status of a Virtual Machine (VM). @enum string @enum values [Creating, Running, Suspending, Suspended, Resuming, Rebooting, Terminating, Terminated, NotExist, Failed]
const ( Creating VMStatus = "Creating" // from launch to running Running VMStatus = "Running" Suspending VMStatus = "Suspending" // from running to suspended Suspended VMStatus = "Suspended" Resuming VMStatus = "Resuming" // from suspended to running Rebooting VMStatus = "Rebooting" // from running to running Terminating VMStatus = "Terminating" // from running, suspended to terminated Terminated VMStatus = "Terminated" NotExist VMStatus = "NotExist" // VM does not exist Failed VMStatus = "Failed" )
type VMStatusInfo ¶
type VPCHandler ¶ added in v0.1.3
type VPCHandler interface {
ListIID() ([]*IID, error)
CreateVPC(vpcReqInfo VPCReqInfo) (VPCInfo, error)
ListVPC() ([]*VPCInfo, error)
GetVPC(vpcIID IID) (VPCInfo, error)
DeleteVPC(vpcIID IID) (bool, error)
AddSubnet(vpcIID IID, subnetInfo SubnetInfo) (VPCInfo, error)
RemoveSubnet(vpcIID IID, subnetIID IID) (bool, error)
}
type VPCInfo ¶ added in v0.1.3
type VPCInfo struct {
IId IID `json:"IId" validate:"required"` // {NameId, SystemId}
IPv4_CIDR string `json:"IPv4_CIDR" validate:"required" example:"10.0.0.0/16" description:"The IPv4 CIDR block for the VPC"`
SubnetInfoList []SubnetInfo `json:"SubnetInfoList" validate:"required" description:"A list of subnet information associated with this VPC"`
TagList []KeyValue `json:"TagList,omitempty" validate:"omitempty" description:"A list of tags associated with this VPC"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty" description:"Additional key-value pairs associated with this VPC"`
}
type VPCReqInfo ¶ added in v0.1.3
type VPCReqInfo struct {
IId IID // {NameId, SystemId}
IPv4_CIDR string
SubnetInfoList []SubnetInfo
TagList []KeyValue
}
type ZoneInfo ¶ added in v0.7.6
type ZoneInfo struct {
Name string `json:"Name" validate:"required" example:"us-east-1a"`
DisplayName string `json:"DisplayName" validate:"required" example:"United States, Ohio"`
CSPDisplayName string `json:"CSPDisplayName" validate:"required" example:"US East (N. Virginia)"`
Status ZoneStatus `json:"Status" validate:"required" example:"Available"`
KeyValueList []KeyValue `json:"KeyValueList,omitempty" validate:"omitempty"`
}
ZoneInfo represents the information of a Zone. @example {"Name": "us-east-1a", "DisplayName": "United States, Ohio", "CSPDisplayName":"US East (N. Virginia)", "Status": "Available", "KeyValueList": [{"Key": "zoneKey1", "Value": "zoneValue1"}]}
type ZoneStatus ¶ added in v0.7.6
type ZoneStatus string
-------- Const
const ( ZoneAvailable ZoneStatus = "Available" NotSupported ZoneStatus = "StatusNotSupported" )