All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.softlayer.api.service.scale.Policy Maven / Gradle / Ivy

There is a newer version: 0.3.4
Show newest version
package com.softlayer.api.service.scale;

import com.softlayer.api.ApiClient;
import com.softlayer.api.ResponseHandler;
import com.softlayer.api.annotation.ApiMethod;
import com.softlayer.api.annotation.ApiProperty;
import com.softlayer.api.annotation.ApiType;
import com.softlayer.api.service.Entity;
import com.softlayer.api.service.scale.Group;
import com.softlayer.api.service.scale.Member;
import com.softlayer.api.service.scale.policy.Action;
import com.softlayer.api.service.scale.policy.Trigger;
import com.softlayer.api.service.scale.policy.action.Scale;
import com.softlayer.api.service.scale.policy.trigger.OneTime;
import com.softlayer.api.service.scale.policy.trigger.Repeating;
import com.softlayer.api.service.scale.policy.trigger.ResourceUse;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.concurrent.Future;

/**
 * A scale policy is a combination of triggers and actions that can occur on a scale group. When any trigger is satisfied (or the policy is manually triggered) the actions will be executed. 
 *
 * @see SoftLayer_Scale_Policy
 */
@ApiType("SoftLayer_Scale_Policy")
public class Policy extends Entity {

    /**
     * The actions to perform upon any trigger hit. Currently this must be a single value.
     */
    @ApiProperty
    protected List actions;

    public List getActions() {
        if (actions == null) {
            actions = new ArrayList();
        }
        return actions;
    }

    /**
     * The one-time triggers to check for this group.
     */
    @ApiProperty
    protected List oneTimeTriggers;

    public List getOneTimeTriggers() {
        if (oneTimeTriggers == null) {
            oneTimeTriggers = new ArrayList();
        }
        return oneTimeTriggers;
    }

    /**
     * The repeating triggers to check for this group.
     */
    @ApiProperty
    protected List repeatingTriggers;

    public List getRepeatingTriggers() {
        if (repeatingTriggers == null) {
            repeatingTriggers = new ArrayList();
        }
        return repeatingTriggers;
    }

    /**
     * The resource-use triggers to check for this group.
     */
    @ApiProperty
    protected List resourceUseTriggers;

    public List getResourceUseTriggers() {
        if (resourceUseTriggers == null) {
            resourceUseTriggers = new ArrayList();
        }
        return resourceUseTriggers;
    }

    /**
     * The scale actions to perform upon any trigger hit. Currently this must be a single value.
     */
    @ApiProperty
    protected List scaleActions;

    public List getScaleActions() {
        if (scaleActions == null) {
            scaleActions = new ArrayList();
        }
        return scaleActions;
    }

    /**
     * The group this policy is on.
     */
    @ApiProperty
    protected Group scaleGroup;

    public Group getScaleGroup() {
        return scaleGroup;
    }

    public void setScaleGroup(Group scaleGroup) {
        this.scaleGroup = scaleGroup;
    }

    /**
     * The triggers to check for this group.
     */
    @ApiProperty
    protected List triggers;

    public List getTriggers() {
        if (triggers == null) {
            triggers = new ArrayList();
        }
        return triggers;
    }

    /**
     * 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. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long cooldown;

    public Long getCooldown() {
        return cooldown;
    }

    public void setCooldown(Long cooldown) {
        cooldownSpecified = true;
        this.cooldown = cooldown;
    }

    protected boolean cooldownSpecified;

    public boolean isCooldownSpecified() {
        return cooldownSpecified;
    }

    public void unsetCooldown() {
        cooldown = null;
        cooldownSpecified = false;
    }

    /**
     * When this policy was created.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected GregorianCalendar createDate;

    public GregorianCalendar getCreateDate() {
        return createDate;
    }

    public void setCreateDate(GregorianCalendar createDate) {
        createDateSpecified = true;
        this.createDate = createDate;
    }

    protected boolean createDateSpecified;

    public boolean isCreateDateSpecified() {
        return createDateSpecified;
    }

    public void unsetCreateDate() {
        createDate = null;
        createDateSpecified = false;
    }

    /**
     * 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. 
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Boolean deleteFlag;

    public Boolean getDeleteFlag() {
        return deleteFlag;
    }

    public void setDeleteFlag(Boolean deleteFlag) {
        deleteFlagSpecified = true;
        this.deleteFlag = deleteFlag;
    }

    protected boolean deleteFlagSpecified;

    public boolean isDeleteFlagSpecified() {
        return deleteFlagSpecified;
    }

    public void unsetDeleteFlag() {
        deleteFlag = null;
        deleteFlagSpecified = false;
    }

    /**
     * A policy's internal identifier.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long id;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        idSpecified = true;
        this.id = id;
    }

    protected boolean idSpecified;

    public boolean isIdSpecified() {
        return idSpecified;
    }

    public void unsetId() {
        id = null;
        idSpecified = false;
    }

    /**
     * When this policy was last modified.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected GregorianCalendar modifyDate;

    public GregorianCalendar getModifyDate() {
        return modifyDate;
    }

    public void setModifyDate(GregorianCalendar modifyDate) {
        modifyDateSpecified = true;
        this.modifyDate = modifyDate;
    }

    protected boolean modifyDateSpecified;

    public boolean isModifyDateSpecified() {
        return modifyDateSpecified;
    }

    public void unsetModifyDate() {
        modifyDate = null;
        modifyDateSpecified = false;
    }

    /**
     * The name of this policy. It must be unique within the group.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        nameSpecified = true;
        this.name = name;
    }

    protected boolean nameSpecified;

    public boolean isNameSpecified() {
        return nameSpecified;
    }

    public void unsetName() {
        name = null;
        nameSpecified = false;
    }

    /**
     * The identifier of the group this member belongs to.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long scaleGroupId;

    public Long getScaleGroupId() {
        return scaleGroupId;
    }

    public void setScaleGroupId(Long scaleGroupId) {
        scaleGroupIdSpecified = true;
        this.scaleGroupId = scaleGroupId;
    }

    protected boolean scaleGroupIdSpecified;

    public boolean isScaleGroupIdSpecified() {
        return scaleGroupIdSpecified;
    }

    public void unsetScaleGroupId() {
        scaleGroupId = null;
        scaleGroupIdSpecified = false;
    }

    /**
     * A count of the actions to perform upon any trigger hit. Currently this must be a single value.
     */
    @ApiProperty
    protected Long actionCount;

    public Long getActionCount() {
        return actionCount;
    }

    public void setActionCount(Long actionCount) {
        this.actionCount = actionCount;
    }

    /**
     * A count of the one-time triggers to check for this group.
     */
    @ApiProperty
    protected Long oneTimeTriggerCount;

    public Long getOneTimeTriggerCount() {
        return oneTimeTriggerCount;
    }

    public void setOneTimeTriggerCount(Long oneTimeTriggerCount) {
        this.oneTimeTriggerCount = oneTimeTriggerCount;
    }

    /**
     * A count of the repeating triggers to check for this group.
     */
    @ApiProperty
    protected Long repeatingTriggerCount;

    public Long getRepeatingTriggerCount() {
        return repeatingTriggerCount;
    }

    public void setRepeatingTriggerCount(Long repeatingTriggerCount) {
        this.repeatingTriggerCount = repeatingTriggerCount;
    }

    /**
     * A count of the resource-use triggers to check for this group.
     */
    @ApiProperty
    protected Long resourceUseTriggerCount;

    public Long getResourceUseTriggerCount() {
        return resourceUseTriggerCount;
    }

    public void setResourceUseTriggerCount(Long resourceUseTriggerCount) {
        this.resourceUseTriggerCount = resourceUseTriggerCount;
    }

    /**
     * A count of the scale actions to perform upon any trigger hit. Currently this must be a single value.
     */
    @ApiProperty
    protected Long scaleActionCount;

    public Long getScaleActionCount() {
        return scaleActionCount;
    }

    public void setScaleActionCount(Long scaleActionCount) {
        this.scaleActionCount = scaleActionCount;
    }

    /**
     * A count of the triggers to check for this group.
     */
    @ApiProperty
    protected Long triggerCount;

    public Long getTriggerCount() {
        return triggerCount;
    }

    public void setTriggerCount(Long triggerCount) {
        this.triggerCount = triggerCount;
    }

    public Service asService(ApiClient client) {
        return service(client, id);
    }

    public static Service service(ApiClient client) {
        return client.createService(Service.class, null);
    }

    public static Service service(ApiClient client, Long id) {
        return client.createService(Service.class, id == null ? null : id.toString());
    }

    /**
     * A scale policy is a combination of triggers and actions that can occur on a scale group. When any trigger is satisfied (or the policy is manually triggered) the actions will be executed. 
     *
     * @see SoftLayer_Scale_Policy
     */
    @com.softlayer.api.annotation.ApiService("SoftLayer_Scale_Policy")
    public static interface Service extends com.softlayer.api.Service {

        public ServiceAsync asAsync();
        public Mask withNewMask();
        public Mask withMask();
        public void setMask(Mask mask);

        /**
         * @see SoftLayer_Scale_Policy::createObject
         */
        @ApiMethod
        public Policy createObject(Policy templateObject);

        /**
         * @see SoftLayer_Scale_Policy::deleteObject
         */
        @ApiMethod(instanceRequired = true)
        public Boolean deleteObject();

        /**
         * @see SoftLayer_Scale_Policy::editObject
         */
        @ApiMethod(instanceRequired = true)
        public Boolean editObject(Policy templateObject);

        /**
         * @see SoftLayer_Scale_Policy::getObject
         */
        @ApiMethod(instanceRequired = true)
        public Policy getObject();

        /**
         * @see SoftLayer_Scale_Policy::trigger
         */
        @ApiMethod(instanceRequired = true)
        public List trigger();

        /**
         * The actions to perform upon any trigger hit. Currently this must be a single value.
         *
         * @see SoftLayer_Scale_Policy::getActions
         */
        @ApiMethod(instanceRequired = true)
        public List getActions();

        /**
         * The one-time triggers to check for this group.
         *
         * @see SoftLayer_Scale_Policy::getOneTimeTriggers
         */
        @ApiMethod(instanceRequired = true)
        public List getOneTimeTriggers();

        /**
         * The repeating triggers to check for this group.
         *
         * @see SoftLayer_Scale_Policy::getRepeatingTriggers
         */
        @ApiMethod(instanceRequired = true)
        public List getRepeatingTriggers();

        /**
         * The resource-use triggers to check for this group.
         *
         * @see SoftLayer_Scale_Policy::getResourceUseTriggers
         */
        @ApiMethod(instanceRequired = true)
        public List getResourceUseTriggers();

        /**
         * The scale actions to perform upon any trigger hit. Currently this must be a single value.
         *
         * @see SoftLayer_Scale_Policy::getScaleActions
         */
        @ApiMethod(instanceRequired = true)
        public List getScaleActions();

        /**
         * The group this policy is on.
         *
         * @see SoftLayer_Scale_Policy::getScaleGroup
         */
        @ApiMethod(instanceRequired = true)
        public Group getScaleGroup();

        /**
         * The triggers to check for this group.
         *
         * @see SoftLayer_Scale_Policy::getTriggers
         */
        @ApiMethod(instanceRequired = true)
        public List getTriggers();

    }

    public static interface ServiceAsync extends com.softlayer.api.ServiceAsync {

        public Mask withNewMask();
        public Mask withMask();
        public void setMask(Mask mask);

        /**
         * Async version of {@link Service#createObject}
         */
        public Future createObject(Policy templateObject);

        public Future createObject(Policy templateObject, ResponseHandler callback);

        /**
         * Async version of {@link Service#deleteObject}
         */
        public Future deleteObject();

        public Future deleteObject(ResponseHandler callback);

        /**
         * Async version of {@link Service#editObject}
         */
        public Future editObject(Policy templateObject);

        public Future editObject(Policy templateObject, ResponseHandler callback);

        /**
         * Async version of {@link Service#getObject}
         */
        public Future getObject();

        public Future getObject(ResponseHandler callback);

        /**
         * Async version of {@link Service#trigger}
         */
        public Future> trigger();

        public Future trigger(ResponseHandler> callback);

        /**
         * Async version of {@link Service#getActions}
         */
        public Future> getActions();

        /**
         * Async callback version of {@link Service#getActions}
         */
        public Future getActions(ResponseHandler> callback);

        /**
         * Async version of {@link Service#getOneTimeTriggers}
         */
        public Future> getOneTimeTriggers();

        /**
         * Async callback version of {@link Service#getOneTimeTriggers}
         */
        public Future getOneTimeTriggers(ResponseHandler> callback);

        /**
         * Async version of {@link Service#getRepeatingTriggers}
         */
        public Future> getRepeatingTriggers();

        /**
         * Async callback version of {@link Service#getRepeatingTriggers}
         */
        public Future getRepeatingTriggers(ResponseHandler> callback);

        /**
         * Async version of {@link Service#getResourceUseTriggers}
         */
        public Future> getResourceUseTriggers();

        /**
         * Async callback version of {@link Service#getResourceUseTriggers}
         */
        public Future getResourceUseTriggers(ResponseHandler> callback);

        /**
         * Async version of {@link Service#getScaleActions}
         */
        public Future> getScaleActions();

        /**
         * Async callback version of {@link Service#getScaleActions}
         */
        public Future getScaleActions(ResponseHandler> callback);

        /**
         * Async version of {@link Service#getScaleGroup}
         */
        public Future getScaleGroup();

        /**
         * Async callback version of {@link Service#getScaleGroup}
         */
        public Future getScaleGroup(ResponseHandler callback);

        /**
         * Async version of {@link Service#getTriggers}
         */
        public Future> getTriggers();

        /**
         * Async callback version of {@link Service#getTriggers}
         */
        public Future getTriggers(ResponseHandler> callback);

    }

    public static class Mask extends com.softlayer.api.service.Entity.Mask {

        public com.softlayer.api.service.scale.policy.Action.Mask actions() {
            return withSubMask("actions", com.softlayer.api.service.scale.policy.Action.Mask.class);
        }

        public com.softlayer.api.service.scale.policy.trigger.OneTime.Mask oneTimeTriggers() {
            return withSubMask("oneTimeTriggers", com.softlayer.api.service.scale.policy.trigger.OneTime.Mask.class);
        }

        public com.softlayer.api.service.scale.policy.trigger.Repeating.Mask repeatingTriggers() {
            return withSubMask("repeatingTriggers", com.softlayer.api.service.scale.policy.trigger.Repeating.Mask.class);
        }

        public com.softlayer.api.service.scale.policy.trigger.ResourceUse.Mask resourceUseTriggers() {
            return withSubMask("resourceUseTriggers", com.softlayer.api.service.scale.policy.trigger.ResourceUse.Mask.class);
        }

        public com.softlayer.api.service.scale.policy.action.Scale.Mask scaleActions() {
            return withSubMask("scaleActions", com.softlayer.api.service.scale.policy.action.Scale.Mask.class);
        }

        public Group.Mask scaleGroup() {
            return withSubMask("scaleGroup", Group.Mask.class);
        }

        public com.softlayer.api.service.scale.policy.Trigger.Mask triggers() {
            return withSubMask("triggers", com.softlayer.api.service.scale.policy.Trigger.Mask.class);
        }

        public Mask cooldown() {
            withLocalProperty("cooldown");
            return this;
        }

        public Mask createDate() {
            withLocalProperty("createDate");
            return this;
        }

        public Mask deleteFlag() {
            withLocalProperty("deleteFlag");
            return this;
        }

        public Mask id() {
            withLocalProperty("id");
            return this;
        }

        public Mask modifyDate() {
            withLocalProperty("modifyDate");
            return this;
        }

        public Mask name() {
            withLocalProperty("name");
            return this;
        }

        public Mask scaleGroupId() {
            withLocalProperty("scaleGroupId");
            return this;
        }

        public Mask actionCount() {
            withLocalProperty("actionCount");
            return this;
        }

        public Mask oneTimeTriggerCount() {
            withLocalProperty("oneTimeTriggerCount");
            return this;
        }

        public Mask repeatingTriggerCount() {
            withLocalProperty("repeatingTriggerCount");
            return this;
        }

        public Mask resourceUseTriggerCount() {
            withLocalProperty("resourceUseTriggerCount");
            return this;
        }

        public Mask scaleActionCount() {
            withLocalProperty("scaleActionCount");
            return this;
        }

        public Mask triggerCount() {
            withLocalProperty("triggerCount");
            return this;
        }

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy