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