traefik/vendor/github.com/exoscale/egoscale/accounts.go
2018-02-12 18:10:05 +01:00

98 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"`
}