99 lines
4.8 KiB
Go
99 lines
4.8 KiB
Go
|
package egoscale
|
||
|
|
||
|
const (
|
||
|
// UserAccount represents a User
|
||
|
UserAccount = iota
|
||
|
// AdminAccount represents an Admin
|
||
|
AdminAccount
|
||
|
// DomainAdminAccount represents a Domain Admin
|
||
|
DomainAdminAccount
|
||
|
)
|
||
|
|
||
|
// AccountType represents the type of an Account
|
||
|
//
|
||
|
// http://docs.cloudstack.apache.org/projects/cloudstack-administration/en/4.8/accounts.html#accounts-users-and-domains
|
||
|
type AccountType int64
|
||
|
|
||
|
// Account provides the detailed account information
|
||
|
type Account struct {
|
||
|
ID string `json:"id"`
|
||
|
AccountType AccountType `json:"accounttype,omitempty"`
|
||
|
AccountDetails string `json:"accountdetails,omitempty"`
|
||
|
CPUAvailable string `json:"cpuavailable,omitempty"`
|
||
|
CPULimit string `json:"cpulimit,omitempty"`
|
||
|
CPUTotal int64 `json:"cputotal,omitempty"`
|
||
|
DefaultZoneID string `json:"defaultzoneid,omitempty"`
|
||
|
Domain string `json:"domain,omitempty"`
|
||
|
DomainID string `json:"domainid,omitempty"`
|
||
|
EIPLimit string `json:"eiplimit,omitempty"`
|
||
|
Groups []string `json:"groups,omitempty"`
|
||
|
IPAvailable string `json:"ipavailable,omitempty"`
|
||
|
IPLimit string `json:"iplimit,omitempty"`
|
||
|
IPTotal int64 `json:"iptotal,omitempty"`
|
||
|
IsDefault bool `json:"isdefault,omitempty"`
|
||
|
MemoryAvailable string `json:"memoryavailable,omitempty"`
|
||
|
MemoryLimit string `json:"memorylimit,omitempty"`
|
||
|
MemoryTotal int64 `json:"memorytotal,omitempty"`
|
||
|
Name string `json:"name,omitempty"`
|
||
|
NetworkAvailable string `json:"networkavailable,omitempty"`
|
||
|
NetworkDomain string `json:"networkdomain,omitempty"`
|
||
|
NetworkLimit string `json:"networklimit,omitempty"`
|
||
|
NetworkTotal int16 `json:"networktotal,omitempty"`
|
||
|
PrimaryStorageAvailable string `json:"primarystorageavailable,omitempty"`
|
||
|
PrimaryStorageLimit string `json:"primarystoragelimit,omitempty"`
|
||
|
PrimaryStorageTotal int64 `json:"primarystoragetotal,omitempty"`
|
||
|
ProjectAvailable string `json:"projectavailable,omitempty"`
|
||
|
ProjectLimit string `json:"projectlimit,omitempty"`
|
||
|
ProjectTotal int64 `json:"projecttotal,omitempty"`
|
||
|
SecondaryStorageAvailable string `json:"secondarystorageavailable,omitempty"`
|
||
|
SecondaryStorageLimit string `json:"secondarystoragelimit,omitempty"`
|
||
|
SecondaryStorageTotal int64 `json:"secondarystoragetotal,omitempty"`
|
||
|
SnapshotAvailable string `json:"snapshotavailable,omitempty"`
|
||
|
SnapshotLimit string `json:"snapshotlimit,omitempty"`
|
||
|
SnapshotTotal int64 `json:"snapshottotal,omitempty"`
|
||
|
State string `json:"state,omitempty"`
|
||
|
TemplateAvailable string `json:"templateavailable,omitempty"`
|
||
|
TemplateLimit string `json:"templatelimit,omitempty"`
|
||
|
TemplateTotal int64 `json:"templatetotal,omitempty"`
|
||
|
VMAvailable string `json:"vmavailable,omitempty"`
|
||
|
VMLimit string `json:"vmlimit,omitempty"`
|
||
|
VMTotal int64 `json:"vmtotal,omitempty"`
|
||
|
VolumeAvailable string `json:"volumeavailable,omitempty"`
|
||
|
VolumeLimit string `json:"volumelimit,omitempty"`
|
||
|
VolumeTotal int64 `json:"volumetotal,omitempty"`
|
||
|
VPCAvailable string `json:"vpcavailable,omitempty"`
|
||
|
VPCLimit string `json:"vpclimit,omitempty"`
|
||
|
VPCTotal int64 `json:"vpctotal,omitempty"`
|
||
|
User []User `json:"user,omitempty"`
|
||
|
}
|
||
|
|
||
|
// ListAccounts represents a query to display the accounts
|
||
|
//
|
||
|
// CloudStack API: http://cloudstack.apache.org/api/apidocs-4.10/apis/listAccounts.html
|
||
|
type ListAccounts struct {
|
||
|
AccountType int64 `json:"accounttype,omitempty"`
|
||
|
DomainID string `json:"domainid,omitempty"`
|
||
|
ID string `json:"id,omitempty"`
|
||
|
IsCleanUpRequired bool `json:"iscleanuprequired,omitempty"`
|
||
|
IsRecursive bool `json:"isrecursive,omitempty"`
|
||
|
Keyword string `json:"keyword,omitempty"`
|
||
|
ListAll bool `json:"listall,omitempty"`
|
||
|
Page int `json:"page,omitempty"`
|
||
|
PageSize int `json:"pagesize,omitempty"`
|
||
|
State string `json:"state,omitempty"`
|
||
|
}
|
||
|
|
||
|
func (*ListAccounts) name() string {
|
||
|
return "listAccounts"
|
||
|
}
|
||
|
|
||
|
func (*ListAccounts) response() interface{} {
|
||
|
return new(ListAccountsResponse)
|
||
|
}
|
||
|
|
||
|
// ListAccountsResponse represents a list of accounts
|
||
|
type ListAccountsResponse struct {
|
||
|
Count int `json:"count"`
|
||
|
Account []Account `json:"account"`
|
||
|
}
|