-
Notifications
You must be signed in to change notification settings - Fork 3
/
ZoneApi.go
166 lines (149 loc) · 4.45 KB
/
ZoneApi.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
package cloudstack
// DeleteZone represents the paramter of DeleteZone
type DeleteZoneParameter struct {
// the ID of the Zone
Id ID
}
func NewDeleteZoneParameter(id string) (p *DeleteZoneParameter) {
p = new(DeleteZoneParameter)
p.Id.Set(id)
return p
}
// Deletes a Zone.
func (c *Client) DeleteZone(p *DeleteZoneParameter) (*Result, error) {
obj, err := c.Request("deleteZone", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Result), err
}
// UpdateZone represents the paramter of UpdateZone
type UpdateZoneParameter struct {
// Allocation state of this cluster for allocation of new resources
AllocationState NullString
// the details for the Zone
Details map[string]string
// the dhcp Provider for the Zone
DhcpProvider NullString
// the first DNS for the Zone
Dns1 NullString
// the second DNS for the Zone
Dns2 NullString
// the dns search order list
Dnssearchorder []string
// Network domain name for the networks in the zone; empty string will update
// domain with NULL value
Domain NullString
// the guest CIDR address for the Zone
GuestCidrAddress NullString
// the ID of the Zone
Id ID
// the first internal DNS for the Zone
InternalDns1 NullString
// the second internal DNS for the Zone
InternalDns2 NullString
// the first DNS for IPv6 network in the Zone
Ip6Dns1 NullString
// the second DNS for IPv6 network in the Zone
Ip6Dns2 NullString
// updates a private zone to public if set, but not vice-versa
IsPublic NullBool
// true if local storage offering enabled, false otherwise
LocalStorageEnabled NullBool
// the name of the Zone
Name NullString
}
func NewUpdateZoneParameter(id string) (p *UpdateZoneParameter) {
p = new(UpdateZoneParameter)
p.Id.Set(id)
return p
}
// Updates a Zone.
func (c *Client) UpdateZone(p *UpdateZoneParameter) (*Zone, error) {
obj, err := c.Request("updateZone", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Zone), err
}
// CreateZone represents the paramter of CreateZone
type CreateZoneParameter struct {
// Allocation state of this Zone for allocation of new resources
AllocationState NullString
// the first DNS for the Zone
Dns1 NullString
// the second DNS for the Zone
Dns2 NullString
// Network domain name for the networks in the zone
Domain NullString
// the ID of the containing domain, null for public zones
DomainId ID
// the guest CIDR address for the Zone
GuestCidrAddress NullString
// the first internal DNS for the Zone
InternalDns1 NullString
// the second internal DNS for the Zone
InternalDns2 NullString
// the first DNS for IPv6 network in the Zone
Ip6Dns1 NullString
// the second DNS for IPv6 network in the Zone
Ip6Dns2 NullString
// true if local storage offering enabled, false otherwise
LocalStorageEnabled NullBool
// the name of the Zone
Name NullString
// network type of the zone, can be Basic or Advanced
NetworkType NullString
// true if network is security group enabled, false otherwise
SecurityGroupEnabled NullBool
}
func NewCreateZoneParameter(dns1 string, internaldns1 string, name string, networktype string) (p *CreateZoneParameter) {
p = new(CreateZoneParameter)
p.Dns1.Set(dns1)
p.InternalDns1.Set(internaldns1)
p.Name.Set(name)
p.NetworkType.Set(networktype)
return p
}
// Creates a Zone.
func (c *Client) CreateZone(p *CreateZoneParameter) (*Zone, error) {
obj, err := c.Request("createZone", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.(*Zone), err
}
// ListZones represents the paramter of ListZones
type ListZonesParameter struct {
// true if you want to retrieve all available Zones. False if you only want to
// return the Zones from which you have at least one VM. Default is false.
Available NullBool
// the ID of the domain associated with the zone
DomainId ID
// the ID of the zone
Id ID
// List by keyword
Keyword NullString
// the name of the zone
Name NullString
// the network type of the zone that the virtual machine belongs to
NetworkType NullString
Page NullNumber
PageSize NullNumber
// flag to display the capacity of the zones
ShowCapacities NullBool
// List zones by resource tags (key/value pairs)
Tags map[string]string
}
func NewListZonesParameter() (p *ListZonesParameter) {
p = new(ListZonesParameter)
return p
}
// Lists zones
func (c *Client) ListZones(p *ListZonesParameter) ([]*Zone, error) {
obj, err := c.Request("listZones", convertParamToMap(p))
if err != nil {
return nil, err
}
return obj.([]*Zone), err
}