1/**
2 * Copyright 2016 IBM Corp.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *    http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/**
18 * AUTOMATICALLY GENERATED CODE - DO NOT MODIFY
19 */
20
21package datatypes
22
23// no documentation yet
24type Scale_Asset struct {
25	Entity
26
27	// When this asset was created.
28	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
29
30	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
31	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
32
33	// An asset's internal identifier.
34	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
35
36	// The group this asset belongs to.
37	ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"`
38
39	// The identifier of the group this asset belongs to.
40	ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"`
41}
42
43// no documentation yet
44type Scale_Asset_Hardware struct {
45	Scale_Asset
46
47	// The hardware for this asset.
48	Hardware *Hardware `json:"hardware,omitempty" xmlrpc:"hardware,omitempty"`
49
50	// The identifier of the hardware for this asset.
51	HardwareId *int `json:"hardwareId,omitempty" xmlrpc:"hardwareId,omitempty"`
52}
53
54// no documentation yet
55type Scale_Asset_Virtual_Guest struct {
56	Scale_Asset
57
58	// The guest for this asset.
59	VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"`
60
61	// The identifier of the guest for this asset.
62	VirtualGuestId *int `json:"virtualGuestId,omitempty" xmlrpc:"virtualGuestId,omitempty"`
63}
64
65// no documentation yet
66type Scale_Group struct {
67	Entity
68
69	// The account for this scaling group.
70	Account *Account `json:"account,omitempty" xmlrpc:"account,omitempty"`
71
72	// The identifier of the account assigned to this group.
73	AccountId *int `json:"accountId,omitempty" xmlrpc:"accountId,omitempty"`
74
75	// If this is true, this group will scale down members in a way to preserve the balance across VLANs. If there is ambiguity about which member to use to maintain balance, the terminationPolicy is used to resolve it. This is false by default and can only be set to true if there are multiple VLANs that are being balanced across.
76	BalancedTerminationFlag *bool `json:"balancedTerminationFlag,omitempty" xmlrpc:"balancedTerminationFlag,omitempty"`
77
78	// The number of seconds this group will wait after lastActionDate before performing another action. Be advised, this can be overridden per policy. While strongly discouraged, a value of 0 effectively disables cooldown.
79	Cooldown *int `json:"cooldown,omitempty" xmlrpc:"cooldown,omitempty"`
80
81	// When this group was created.
82	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
83
84	// This value is only available on the template for creating and editing a group. It will be null when retrieved. When this value is provided on create or edit, guests will be scaled up or down to meet this number. This number must be in the range provided by minimumMemberCount and maximumMemberCount. This value can only be present during create or edit when this group is active. Note, guests that are created as a result of this value can possibly be removed after cooldown by a policy.
85	DesiredMemberCount *int `json:"desiredMemberCount,omitempty" xmlrpc:"desiredMemberCount,omitempty"`
86
87	// A group's internal identifier.
88	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
89
90	// The date of the last action on this group or its create date
91	LastActionDate *Time `json:"lastActionDate,omitempty" xmlrpc:"lastActionDate,omitempty"`
92
93	// A count of collection of load balancers for this auto scale group.
94	LoadBalancerCount *uint `json:"loadBalancerCount,omitempty" xmlrpc:"loadBalancerCount,omitempty"`
95
96	// Collection of load balancers for this auto scale group.
97	LoadBalancers []Scale_LoadBalancer `json:"loadBalancers,omitempty" xmlrpc:"loadBalancers,omitempty"`
98
99	// A count of collection of log entries for this group.
100	LogCount *uint `json:"logCount,omitempty" xmlrpc:"logCount,omitempty"`
101
102	// Collection of log entries for this group.
103	Logs []Scale_Group_Log `json:"logs,omitempty" xmlrpc:"logs,omitempty"`
104
105	// The greatest number of virtual guest members that are allowed on this group. Any attempts to add a guest member will fail if it will result in the total guest member count of this group to be above this number. If this number is edited and is less than the current guest member count, guests will be removed to at least be no greater than this number.
106	MaximumMemberCount *int `json:"maximumMemberCount,omitempty" xmlrpc:"maximumMemberCount,omitempty"`
107
108	// The fewest number of virtual guest members that are allowed on this group. Any attempts to remove a guest member will fail if it will result in the total guest member count of this group to be below this number. If this number is edited and is larger than the current guest member count, guests will be added to at least reach this number.
109	MinimumMemberCount *int `json:"minimumMemberCount,omitempty" xmlrpc:"minimumMemberCount,omitempty"`
110
111	// When this group was last modified.
112	ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"`
113
114	// The name of this scale group. It must be unique on the account.
115	Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"`
116
117	// A count of collection of VLANs for this auto scale group. VLANs are optional. This can contain a public or private VLAN or both. When a single VLAN for a public/private type is given it can be a non-purchased VLAN only if the minimumMemberCount on the group is >= 1. This can also contain any number of public/private purchased VLANs and members are staggered across them when scaled up.
118	NetworkVlanCount *uint `json:"networkVlanCount,omitempty" xmlrpc:"networkVlanCount,omitempty"`
119
120	// Collection of VLANs for this auto scale group. VLANs are optional. This can contain a public or private VLAN or both. When a single VLAN for a public/private type is given it can be a non-purchased VLAN only if the minimumMemberCount on the group is >= 1. This can also contain any number of public/private purchased VLANs and members are staggered across them when scaled up.
121	NetworkVlans []Scale_Network_Vlan `json:"networkVlans,omitempty" xmlrpc:"networkVlans,omitempty"`
122
123	// Collection of policies for this group. This can be empty.
124	Policies []Scale_Policy `json:"policies,omitempty" xmlrpc:"policies,omitempty"`
125
126	// A count of collection of policies for this group. This can be empty.
127	PolicyCount *uint `json:"policyCount,omitempty" xmlrpc:"policyCount,omitempty"`
128
129	// The regional group for this scale group.
130	RegionalGroup *Location_Group_Regional `json:"regionalGroup,omitempty" xmlrpc:"regionalGroup,omitempty"`
131
132	// The identifier of the regional group this scaling group is assigned to.
133	RegionalGroupId *int `json:"regionalGroupId,omitempty" xmlrpc:"regionalGroupId,omitempty"`
134
135	// The status for this scale group.
136	Status *Scale_Group_Status `json:"status,omitempty" xmlrpc:"status,omitempty"`
137
138	// If true, this group is suspended.
139	SuspendedFlag *bool `json:"suspendedFlag,omitempty" xmlrpc:"suspendedFlag,omitempty"`
140
141	// The termination policy for this scaling group.
142	TerminationPolicy *Scale_Termination_Policy `json:"terminationPolicy,omitempty" xmlrpc:"terminationPolicy,omitempty"`
143
144	// The termination policy for the group. This determines which member to choose to delete when scaling downwards.
145	TerminationPolicyId *int `json:"terminationPolicyId,omitempty" xmlrpc:"terminationPolicyId,omitempty"`
146
147	// A count of collection of guests that have been pinned to this group. Guest assets are only used for certain trigger checks such as resource watches. They do not count towards the auto scaling guest counts of this group in anyway and are never automatically added or removed.
148	VirtualGuestAssetCount *uint `json:"virtualGuestAssetCount,omitempty" xmlrpc:"virtualGuestAssetCount,omitempty"`
149
150	// Collection of guests that have been pinned to this group. Guest assets are only used for certain trigger checks such as resource watches. They do not count towards the auto scaling guest counts of this group in anyway and are never automatically added or removed.
151	VirtualGuestAssets []Scale_Asset_Virtual_Guest `json:"virtualGuestAssets,omitempty" xmlrpc:"virtualGuestAssets,omitempty"`
152
153	// A count of collection of guests that have been scaled with the group. When this group is active, the count of guests here is guaranteed to be between minimumMemberCount and maximumMemberCount inclusively.
154	VirtualGuestMemberCount *uint `json:"virtualGuestMemberCount,omitempty" xmlrpc:"virtualGuestMemberCount,omitempty"`
155
156	// This is the template to create guest members with. This is the same template accepted by the createObject call on SoftLayer_Virtual_Guest with some caveats. The hostname provided will have an arbitrary value appended to it for each guest created. Also, hourlyBillingFlag cannot be false, and if the datacenter is provided it must be in the region of this group. Finally, VLANs cannot be provided for the template, it will use VLANs provided to this group instead.
157	//
158	// Note, if this template is edited on an existing group the previous template values are not kept and are not considered during termination. This means a group's guest members could effectively be a hybrid of multiple templates because this value was changed after some guest members were created but before others were created.
159	VirtualGuestMemberTemplate *Virtual_Guest `json:"virtualGuestMemberTemplate,omitempty" xmlrpc:"virtualGuestMemberTemplate,omitempty"`
160
161	// Collection of guests that have been scaled with the group. When this group is active, the count of guests here is guaranteed to be between minimumMemberCount and maximumMemberCount inclusively.
162	VirtualGuestMembers []Scale_Member_Virtual_Guest `json:"virtualGuestMembers,omitempty" xmlrpc:"virtualGuestMembers,omitempty"`
163}
164
165// no documentation yet
166type Scale_Group_Log struct {
167	Entity
168
169	// When this event occurred.
170	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
171
172	// A textual description of what happened during this action.
173	Description *string `json:"description,omitempty" xmlrpc:"description,omitempty"`
174
175	// This log's internal identifier.
176	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
177
178	// The group this log refers to.
179	ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"`
180
181	// The identifier of the group this log refers to.
182	ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"`
183}
184
185// no documentation yet
186type Scale_Group_Status struct {
187	Entity
188
189	// A status's internal identifier.
190	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
191
192	// A status's programmatic name.
193	KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"`
194
195	// A status's human-friendly name.
196	Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"`
197}
198
199// no documentation yet
200type Scale_LoadBalancer struct {
201	Entity
202
203	// The percentage of connections allocated to this virtual server.
204	AllocationPercent *int `json:"allocationPercent,omitempty" xmlrpc:"allocationPercent,omitempty"`
205
206	// When this load balancer configuration was created.
207	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
208
209	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
210	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
211
212	// The health check for this configuration.
213	HealthCheck *Network_Application_Delivery_Controller_LoadBalancer_Health_Check `json:"healthCheck,omitempty" xmlrpc:"healthCheck,omitempty"`
214
215	// The identifier for the health check of this load balancer configuration
216	HealthCheckId *int `json:"healthCheckId,omitempty" xmlrpc:"healthCheckId,omitempty"`
217
218	// The load balancer configuration's internal identifier.
219	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
220
221	// When this load balancer configuration was last modified.
222	ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"`
223
224	// The port for this load balancer configuration.
225	Port *int `json:"port,omitempty" xmlrpc:"port,omitempty"`
226
227	// The routing method.
228	RoutingMethod *Network_Application_Delivery_Controller_LoadBalancer_Routing_Method `json:"routingMethod,omitempty" xmlrpc:"routingMethod,omitempty"`
229
230	// The routing type.
231	RoutingType *Network_Application_Delivery_Controller_LoadBalancer_Routing_Type `json:"routingType,omitempty" xmlrpc:"routingType,omitempty"`
232
233	// The group this load balancer configuration is for.
234	ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"`
235
236	// The identifier of the group this load balancer configuration applies to.
237	ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"`
238
239	// The ID of the virtual IP address.
240	VirtualIpAddressId *int `json:"virtualIpAddressId,omitempty" xmlrpc:"virtualIpAddressId,omitempty"`
241
242	// The virtual server for this configuration.
243	VirtualServer *Network_Application_Delivery_Controller_LoadBalancer_VirtualServer `json:"virtualServer,omitempty" xmlrpc:"virtualServer,omitempty"`
244
245	// The identifier of the virtual server this load balancer configuration uses.
246	VirtualServerId *int `json:"virtualServerId,omitempty" xmlrpc:"virtualServerId,omitempty"`
247
248	// The port on the virtual server.
249	VirtualServerPort *int `json:"virtualServerPort,omitempty" xmlrpc:"virtualServerPort,omitempty"`
250}
251
252// no documentation yet
253type Scale_Member struct {
254	Entity
255
256	// When this member was created.
257	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
258
259	// A member's internal identifier.
260	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
261
262	// The group this member belongs to.
263	ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"`
264
265	// The identifier of the group this member belongs to.
266	ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"`
267}
268
269// no documentation yet
270type Scale_Member_Virtual_Guest struct {
271	Scale_Member
272
273	// The guest for this member.
274	VirtualGuest *Virtual_Guest `json:"virtualGuest,omitempty" xmlrpc:"virtualGuest,omitempty"`
275
276	// The identifier of the guest for this member.
277	VirtualGuestId *int `json:"virtualGuestId,omitempty" xmlrpc:"virtualGuestId,omitempty"`
278}
279
280// no documentation yet
281type Scale_Network_Vlan struct {
282	Entity
283
284	// When this network VLAN reference was created.
285	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
286
287	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
288	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
289
290	// The network VLAN reference's internal identifier.
291	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
292
293	// The network VLAN to scale with.
294	NetworkVlan *Network_Vlan `json:"networkVlan,omitempty" xmlrpc:"networkVlan,omitempty"`
295
296	// The identifier for the VLAN to scale with.
297	NetworkVlanId *int `json:"networkVlanId,omitempty" xmlrpc:"networkVlanId,omitempty"`
298
299	// The group this network VLAN is for.
300	ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"`
301
302	// The identifier of the group this network VLAN reference applies to.
303	ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"`
304}
305
306// no documentation yet
307type Scale_Policy struct {
308	Entity
309
310	// A count of the actions to perform upon any trigger hit. Currently this must be a single value.
311	ActionCount *uint `json:"actionCount,omitempty" xmlrpc:"actionCount,omitempty"`
312
313	// The actions to perform upon any trigger hit. Currently this must be a single value.
314	Actions []Scale_Policy_Action `json:"actions,omitempty" xmlrpc:"actions,omitempty"`
315
316	// The number of seconds this policy will wait after lastActionDate on group before performing another action. If not present, the group's cooldown value is used.
317	Cooldown *int `json:"cooldown,omitempty" xmlrpc:"cooldown,omitempty"`
318
319	// When this policy was created.
320	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
321
322	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
323	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
324
325	// A policy's internal identifier.
326	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
327
328	// When this policy was last modified.
329	ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"`
330
331	// The name of this policy. It must be unique within the group.
332	Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"`
333
334	// A count of the one-time triggers to check for this group.
335	OneTimeTriggerCount *uint `json:"oneTimeTriggerCount,omitempty" xmlrpc:"oneTimeTriggerCount,omitempty"`
336
337	// The one-time triggers to check for this group.
338	OneTimeTriggers []Scale_Policy_Trigger_OneTime `json:"oneTimeTriggers,omitempty" xmlrpc:"oneTimeTriggers,omitempty"`
339
340	// A count of the repeating triggers to check for this group.
341	RepeatingTriggerCount *uint `json:"repeatingTriggerCount,omitempty" xmlrpc:"repeatingTriggerCount,omitempty"`
342
343	// The repeating triggers to check for this group.
344	RepeatingTriggers []Scale_Policy_Trigger_Repeating `json:"repeatingTriggers,omitempty" xmlrpc:"repeatingTriggers,omitempty"`
345
346	// A count of the resource-use triggers to check for this group.
347	ResourceUseTriggerCount *uint `json:"resourceUseTriggerCount,omitempty" xmlrpc:"resourceUseTriggerCount,omitempty"`
348
349	// The resource-use triggers to check for this group.
350	ResourceUseTriggers []Scale_Policy_Trigger_ResourceUse `json:"resourceUseTriggers,omitempty" xmlrpc:"resourceUseTriggers,omitempty"`
351
352	// A count of the scale actions to perform upon any trigger hit. Currently this must be a single value.
353	ScaleActionCount *uint `json:"scaleActionCount,omitempty" xmlrpc:"scaleActionCount,omitempty"`
354
355	// The scale actions to perform upon any trigger hit. Currently this must be a single value.
356	ScaleActions []Scale_Policy_Action_Scale `json:"scaleActions,omitempty" xmlrpc:"scaleActions,omitempty"`
357
358	// The group this policy is on.
359	ScaleGroup *Scale_Group `json:"scaleGroup,omitempty" xmlrpc:"scaleGroup,omitempty"`
360
361	// The identifier of the group this member belongs to.
362	ScaleGroupId *int `json:"scaleGroupId,omitempty" xmlrpc:"scaleGroupId,omitempty"`
363
364	// A count of the triggers to check for this group.
365	TriggerCount *uint `json:"triggerCount,omitempty" xmlrpc:"triggerCount,omitempty"`
366
367	// The triggers to check for this group.
368	Triggers []Scale_Policy_Trigger `json:"triggers,omitempty" xmlrpc:"triggers,omitempty"`
369}
370
371// no documentation yet
372type Scale_Policy_Action struct {
373	Entity
374
375	// When this action was created.
376	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
377
378	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
379	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
380
381	// An action's internal identifier.
382	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
383
384	// Then this action was last modified.
385	ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"`
386
387	// The policy this action is on.
388	ScalePolicy *Scale_Policy `json:"scalePolicy,omitempty" xmlrpc:"scalePolicy,omitempty"`
389
390	// The policy this action is on.
391	ScalePolicyId *int `json:"scalePolicyId,omitempty" xmlrpc:"scalePolicyId,omitempty"`
392
393	// The type of action.
394	Type *Scale_Policy_Action_Type `json:"type,omitempty" xmlrpc:"type,omitempty"`
395
396	// The identifier of this action's type.
397	TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"`
398}
399
400// no documentation yet
401type Scale_Policy_Action_Scale struct {
402	Scale_Policy_Action
403
404	// The number to scale by. This number has different meanings based on type.
405	Amount *int `json:"amount,omitempty" xmlrpc:"amount,omitempty"`
406
407	// The type of scale to perform. Possible values:
408	//
409	//
410	// * ABSOLUTE - Force the group to be set at a specific number of group members. This may include scaling up or
411	// down or not at all. If the amount is outside of the min/max range of the group, an error occurs.
412	// * PERCENT - Scale the group up or down based on the positive or negative percentage given in amount. The
413	// number is a percent of the current group member count. Any extra percent after the decimal point is always ignored. If the resulting amount is zero, -1 or 1 is used depending upon whether the percentage was negative or positive respectively.
414	// * RELATIVE - Scale the group up or down by the positive or negative value given in amount.
415	ScaleType *string `json:"scaleType,omitempty" xmlrpc:"scaleType,omitempty"`
416}
417
418// no documentation yet
419type Scale_Policy_Action_Type struct {
420	Entity
421
422	// This type's internal identifier.
423	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
424
425	// An action type's programmatic name.
426	KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"`
427
428	// An action type's human-friendly name.
429	Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"`
430}
431
432// no documentation yet
433type Scale_Policy_Trigger struct {
434	Entity
435
436	// When this trigger was created.
437	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
438
439	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
440	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
441
442	// A trigger's internal identifier.
443	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
444
445	// When this trigger was last modified.
446	ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"`
447
448	// The policy this trigger is on.
449	ScalePolicy *Scale_Policy `json:"scalePolicy,omitempty" xmlrpc:"scalePolicy,omitempty"`
450
451	// The policy this trigger is on.
452	ScalePolicyId *int `json:"scalePolicyId,omitempty" xmlrpc:"scalePolicyId,omitempty"`
453
454	// The type of trigger.
455	Type *Scale_Policy_Trigger_Type `json:"type,omitempty" xmlrpc:"type,omitempty"`
456
457	// The type of trigger this is.
458	TypeId *int `json:"typeId,omitempty" xmlrpc:"typeId,omitempty"`
459}
460
461// no documentation yet
462type Scale_Policy_Trigger_OneTime struct {
463	Scale_Policy_Trigger
464
465	// The date to execute the policy.
466	Date *Time `json:"date,omitempty" xmlrpc:"date,omitempty"`
467}
468
469// no documentation yet
470type Scale_Policy_Trigger_Repeating struct {
471	Scale_Policy_Trigger
472
473	// The cron-formatted schedule. This is run in the UTC timezone.
474	Schedule *string `json:"schedule,omitempty" xmlrpc:"schedule,omitempty"`
475}
476
477// no documentation yet
478type Scale_Policy_Trigger_ResourceUse struct {
479	Scale_Policy_Trigger
480
481	// A count of the resource watches for this trigger.
482	WatchCount *uint `json:"watchCount,omitempty" xmlrpc:"watchCount,omitempty"`
483
484	// The resource watches for this trigger.
485	Watches []Scale_Policy_Trigger_ResourceUse_Watch `json:"watches,omitempty" xmlrpc:"watches,omitempty"`
486}
487
488// no documentation yet
489type Scale_Policy_Trigger_ResourceUse_Watch struct {
490	Entity
491
492	// The algorithm to use when aggregating and comparing. Currently, the only value that is accepted is EWMA (Exponential Weighted Moving Average). EWMA is the default value if no value is given.
493	Algorithm *string `json:"algorithm,omitempty" xmlrpc:"algorithm,omitempty"`
494
495	// When this watch was created.
496	CreateDate *Time `json:"createDate,omitempty" xmlrpc:"createDate,omitempty"`
497
498	// When set and true any edit that happens on this object, be it calling edit on this directly or setting as a child while editing a parent object, will end up being a deletion.
499	DeleteFlag *bool `json:"deleteFlag,omitempty" xmlrpc:"deleteFlag,omitempty"`
500
501	// A watch's internal identifier.
502	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
503
504	// The metric to watch. Possible values:
505	//
506	//
507	// * host.cpu.percent - On a scale of 0 to 100, the percent CPU a guest is using.
508	// * host.network.backend.in and host.network.frontend.in - The network bytes-per-second incoming on the interface
509	// of either the frontend or backend network.
510	// * host.network.backend.out and host.network.frontend.out - The network bytes-per-second incoming on the interface
511	// of either the frontend or backend network.
512	Metric *string `json:"metric,omitempty" xmlrpc:"metric,omitempty"`
513
514	// When this watch was last modified.
515	ModifyDate *Time `json:"modifyDate,omitempty" xmlrpc:"modifyDate,omitempty"`
516
517	// The operator to use for comparison. The only two valid values are ">" and "<".
518	Operator *string `json:"operator,omitempty" xmlrpc:"operator,omitempty"`
519
520	// The number of seconds the values are aggregated for when compared to value. If values are not retrieved steadily and consecutively for the length of this period, nothing is compared.
521	Period *int `json:"period,omitempty" xmlrpc:"period,omitempty"`
522
523	// The trigger this watch is on.
524	ScalePolicyTrigger *Scale_Policy_Trigger_ResourceUse `json:"scalePolicyTrigger,omitempty" xmlrpc:"scalePolicyTrigger,omitempty"`
525
526	// The trigger this watch is on.
527	ScalePolicyTriggerId *int `json:"scalePolicyTriggerId,omitempty" xmlrpc:"scalePolicyTriggerId,omitempty"`
528
529	// The value to compare against. Although the value is a string, validation will be done on the value for restrictions (such as numeric-only) based on the metric.
530	Value *string `json:"value,omitempty" xmlrpc:"value,omitempty"`
531}
532
533// no documentation yet
534type Scale_Policy_Trigger_Type struct {
535	Entity
536
537	// A trigger type's internal identifier.
538	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
539
540	// A trigger type's programmatic name.
541	KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"`
542
543	// A trigger type's human-friendly name.
544	Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"`
545}
546
547// no documentation yet
548type Scale_Termination_Policy struct {
549	Entity
550
551	// A termination policy's internal identifier.
552	Id *int `json:"id,omitempty" xmlrpc:"id,omitempty"`
553
554	// A termination policy's programmatic name.
555	KeyName *string `json:"keyName,omitempty" xmlrpc:"keyName,omitempty"`
556
557	// A termination policy's human-friendly name.
558	Name *string `json:"name,omitempty" xmlrpc:"name,omitempty"`
559}
560