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

com.softlayer.api.service.product.Item Maven / Gradle / Ivy

The newest version!
package com.softlayer.api.service.product;

import com.softlayer.api.annotation.ApiProperty;
import com.softlayer.api.annotation.ApiType;
import com.softlayer.api.service.Entity;
import com.softlayer.api.service.configuration.Template;
import com.softlayer.api.service.hardware.component.model.Generic;
import com.softlayer.api.service.product.Package;
import com.softlayer.api.service.product.item.Attribute;
import com.softlayer.api.service.product.item.Bundles;
import com.softlayer.api.service.product.item.Price;
import com.softlayer.api.service.product.item.Requirement;
import com.softlayer.api.service.product.item.Rule;
import com.softlayer.api.service.product.item.policy.Assignment;
import com.softlayer.api.service.product.item.resource.Conflict;
import com.softlayer.api.service.product.item.tax.Category;
import com.softlayer.api.service.product.pkg.Inventory;
import com.softlayer.api.service.sales.presale.Event;
import com.softlayer.api.service.software.Description;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * The SoftLayer_Product_Item data type contains general information relating to a single SoftLayer product. 
 *
 * @see SoftLayer_Product_Item
 */
@ApiType("SoftLayer_Product_Item")
public class Item extends Entity {

    @ApiProperty
    protected List activePresaleEvents;

    public List getActivePresaleEvents() {
        if (activePresaleEvents == null) {
            activePresaleEvents = new ArrayList();
        }
        return activePresaleEvents;
    }

    /**
     * Active usage based prices.
     */
    @ApiProperty
    protected List activeUsagePrices;

    public List getActiveUsagePrices() {
        if (activeUsagePrices == null) {
            activeUsagePrices = new ArrayList();
        }
        return activeUsagePrices;
    }

    /**
     * The attribute values for a product item. These are additional properties that give extra information about the product being sold.
     */
    @ApiProperty
    protected List attributes;

    public List getAttributes() {
        if (attributes == null) {
            attributes = new ArrayList();
        }
        return attributes;
    }

    /**
     * Attributes that govern when an item may no longer be available.
     */
    @ApiProperty
    protected List availabilityAttributes;

    public List getAvailabilityAttributes() {
        if (availabilityAttributes == null) {
            availabilityAttributes = new ArrayList();
        }
        return availabilityAttributes;
    }

    /**
     * An item's special billing type, if applicable.
     */
    @ApiProperty
    protected String billingType;

    public String getBillingType() {
        return billingType;
    }

    public void setBillingType(String billingType) {
        this.billingType = billingType;
    }

    /**
     * An item's included product item references. Some items have other items included in them that we specifically detail. They are here called Bundled Items. An example is Plesk unlimited. It as a bundled item labeled 'SiteBuilder'. These are the SoftLayer_Product_Item_Bundles objects. See the SoftLayer_Product_Item::bundleItems property for bundle of SoftLayer_Product_Item of objects.
     */
    @ApiProperty
    protected List bundle;

    public List getBundle() {
        if (bundle == null) {
            bundle = new ArrayList();
        }
        return bundle;
    }

    /**
     * An item's included products. Some items have other items included in them that we specifically detail. They are here called Bundled Items. An example is Plesk unlimited. It as a bundled item labeled 'SiteBuilder'. These are the SoftLayer_Product_Item objects.
     */
    @ApiProperty
    protected List bundleItems;

    public List getBundleItems() {
        if (bundleItems == null) {
            bundleItems = new ArrayList();
        }
        return bundleItems;
    }

    /**
     * When the product capacity is best described as a range, this holds the ceiling of the range.
     */
    @ApiProperty
    protected String capacityMaximum;

    public String getCapacityMaximum() {
        return capacityMaximum;
    }

    public void setCapacityMaximum(String capacityMaximum) {
        this.capacityMaximum = capacityMaximum;
    }

    /**
     * When the product capacity is best described as a range, this holds the floor of the range.
     */
    @ApiProperty
    protected String capacityMinimum;

    public String getCapacityMinimum() {
        return capacityMinimum;
    }

    public void setCapacityMinimum(String capacityMinimum) {
        this.capacityMinimum = capacityMinimum;
    }

    /**
     * This flag indicates that this product is restricted by a capacity on a related product.
     */
    @ApiProperty
    protected Boolean capacityRestrictedProductFlag;

    public Boolean getCapacityRestrictedProductFlag() {
        return capacityRestrictedProductFlag;
    }

    public void setCapacityRestrictedProductFlag(Boolean capacityRestrictedProductFlag) {
        this.capacityRestrictedProductFlag = capacityRestrictedProductFlag;
    }

    /**
     * An item's associated item categories.
     */
    @ApiProperty
    protected List categories;

    public List getCategories() {
        if (categories == null) {
            categories = new ArrayList();
        }
        return categories;
    }

    /**
     * Some product items have configuration templates which can be used to during provisioning of that product.
     */
    @ApiProperty
    protected List