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

com.softlayer.api.service.billing.invoice.Item Maven / Gradle / Ivy

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

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.Location;
import com.softlayer.api.service.billing.Invoice;
import com.softlayer.api.service.product.item.Category;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.concurrent.Future;

/**
 * Each billing invoice item makes up a record within an invoice. This provides you with a detailed record of everything related to an invoice item. When you are billed, our system takes active billing items and creates an invoice. These invoice items are a copy of your active billing items, and make up the contents of your invoice. 
 *
 * @see SoftLayer_Billing_Invoice_Item
 */
@ApiType("SoftLayer_Billing_Invoice_Item")
public class Item extends Entity {

    /**
     * An Invoice Item's associated child invoice items. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
     */
    @ApiProperty
    protected List associatedChildren;

    public List getAssociatedChildren() {
        if (associatedChildren == null) {
            associatedChildren = new ArrayList();
        }
        return associatedChildren;
    }

    /**
     * An Invoice Item's associated invoice item. If this is populated, it means this is an orphaned invoice item, but logically belongs to the associated invoice item.
     */
    @ApiProperty
    protected Item associatedInvoiceItem;

    public Item getAssociatedInvoiceItem() {
        return associatedInvoiceItem;
    }

    public void setAssociatedInvoiceItem(Item associatedInvoiceItem) {
        this.associatedInvoiceItem = associatedInvoiceItem;
    }

    /**
     * An Invoice Item's billing item, from which this item was generated.
     */
    @ApiProperty
    protected com.softlayer.api.service.billing.Item billingItem;

    public com.softlayer.api.service.billing.Item getBillingItem() {
        return billingItem;
    }

    public void setBillingItem(com.softlayer.api.service.billing.Item billingItem) {
        this.billingItem = billingItem;
    }

    /**
     * This invoice item's "item category". 
     */
    @ApiProperty
    protected Category category;

    public Category getCategory() {
        return category;
    }

    public void setCategory(Category category) {
        this.category = category;
    }

    /**
     * An Invoice Item's child invoice items. Only parent invoice items have children. For instance, a server invoice item will have children.
     */
    @ApiProperty
    protected List children;

    public List getChildren() {
        if (children == null) {
            children = new ArrayList();
        }
        return children;
    }

    /**
     * An Invoice Item's associated child invoice items, excluding some items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
     */
    @ApiProperty
    protected List filteredAssociatedChildren;

    public List getFilteredAssociatedChildren() {
        if (filteredAssociatedChildren == null) {
            filteredAssociatedChildren = new ArrayList();
        }
        return filteredAssociatedChildren;
    }

    /**
     * Indicating whether this invoice item is billed on an hourly basis.
     */
    @ApiProperty
    protected Boolean hourlyFlag;

    public Boolean getHourlyFlag() {
        return hourlyFlag;
    }

    public void setHourlyFlag(Boolean hourlyFlag) {
        this.hourlyFlag = hourlyFlag;
    }

    /**
     * The invoice to which this item belongs.
     */
    @ApiProperty
    protected Invoice invoice;

    public Invoice getInvoice() {
        return invoice;
    }

    public void setInvoice(Invoice invoice) {
        this.invoice = invoice;
    }

    /**
     * An invoice item's location, if one exists.'
     */
    @ApiProperty
    protected Location location;

    public Location getLocation() {
        return location;
    }

    public void setLocation(Location location) {
        this.location = location;
    }

    /**
     * An Invoice Item's associated child invoice items, excluding ALL items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
     */
    @ApiProperty
    protected List nonZeroAssociatedChildren;

    public List getNonZeroAssociatedChildren() {
        if (nonZeroAssociatedChildren == null) {
            nonZeroAssociatedChildren = new ArrayList();
        }
        return nonZeroAssociatedChildren;
    }

    /**
     * Every item tied to a server should have a parent invoice item which is the server line item. This is how we associate items to a server.
     */
    @ApiProperty
    protected Item parent;

    public Item getParent() {
        return parent;
    }

    public void setParent(Item parent) {
        this.parent = parent;
    }

    /**
     * The entry in the product catalog that a invoice item is based upon.
     */
    @ApiProperty
    protected com.softlayer.api.service.product.Item product;

    public com.softlayer.api.service.product.Item getProduct() {
        return product;
    }

    public void setProduct(com.softlayer.api.service.product.Item product) {
        this.product = product;
    }

    /**
     * A string representing the name of parent level product group of an invoice item.
     */
    @ApiProperty
    protected String topLevelProductGroupName;

    public String getTopLevelProductGroupName() {
        return topLevelProductGroupName;
    }

    public void setTopLevelProductGroupName(String topLevelProductGroupName) {
        this.topLevelProductGroupName = topLevelProductGroupName;
    }

    /**
     * An invoice Item's total, including any child invoice items if they exist.
     */
    @ApiProperty
    protected BigDecimal totalOneTimeAmount;

    public BigDecimal getTotalOneTimeAmount() {
        return totalOneTimeAmount;
    }

    public void setTotalOneTimeAmount(BigDecimal totalOneTimeAmount) {
        this.totalOneTimeAmount = totalOneTimeAmount;
    }

    /**
     * An invoice Item's total, including any child invoice items if they exist.
     */
    @ApiProperty
    protected BigDecimal totalOneTimeTaxAmount;

    public BigDecimal getTotalOneTimeTaxAmount() {
        return totalOneTimeTaxAmount;
    }

    public void setTotalOneTimeTaxAmount(BigDecimal totalOneTimeTaxAmount) {
        this.totalOneTimeTaxAmount = totalOneTimeTaxAmount;
    }

    /**
     * An invoice Item's total, including any child invoice items if they exist.
     */
    @ApiProperty
    protected BigDecimal totalRecurringAmount;

    public BigDecimal getTotalRecurringAmount() {
        return totalRecurringAmount;
    }

    public void setTotalRecurringAmount(BigDecimal totalRecurringAmount) {
        this.totalRecurringAmount = totalRecurringAmount;
    }

    /**
     * A Billing Item's total, including any child billing items if they exist.'
     */
    @ApiProperty
    protected BigDecimal totalRecurringTaxAmount;

    public BigDecimal getTotalRecurringTaxAmount() {
        return totalRecurringTaxAmount;
    }

    public void setTotalRecurringTaxAmount(BigDecimal totalRecurringTaxAmount) {
        this.totalRecurringTaxAmount = totalRecurringTaxAmount;
    }

    /**
     * Indicating whether this invoice item is for the usage charge.
     */
    @ApiProperty
    protected Boolean usageChargeFlag;

    public Boolean getUsageChargeFlag() {
        return usageChargeFlag;
    }

    public void setUsageChargeFlag(Boolean usageChargeFlag) {
        this.usageChargeFlag = usageChargeFlag;
    }

    /**
     * The associated invoice Item ID.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long associatedInvoiceItemId;

    public Long getAssociatedInvoiceItemId() {
        return associatedInvoiceItemId;
    }

    public void setAssociatedInvoiceItemId(Long associatedInvoiceItemId) {
        associatedInvoiceItemIdSpecified = true;
        this.associatedInvoiceItemId = associatedInvoiceItemId;
    }

    protected boolean associatedInvoiceItemIdSpecified;

    public boolean isAssociatedInvoiceItemIdSpecified() {
        return associatedInvoiceItemIdSpecified;
    }

    public void unsetAssociatedInvoiceItemId() {
        associatedInvoiceItemId = null;
        associatedInvoiceItemIdSpecified = false;
    }

    /**
     * The billing item from which this invoice item was generated.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long billingItemId;

    public Long getBillingItemId() {
        return billingItemId;
    }

    public void setBillingItemId(Long billingItemId) {
        billingItemIdSpecified = true;
        this.billingItemId = billingItemId;
    }

    protected boolean billingItemIdSpecified;

    public boolean isBillingItemIdSpecified() {
        return billingItemIdSpecified;
    }

    public void unsetBillingItemId() {
        billingItemId = null;
        billingItemIdSpecified = false;
    }

    /**
     * The item category of the invoice item being invoiced.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String categoryCode;

    public String getCategoryCode() {
        return categoryCode;
    }

    public void setCategoryCode(String categoryCode) {
        categoryCodeSpecified = true;
        this.categoryCode = categoryCode;
    }

    protected boolean categoryCodeSpecified;

    public boolean isCategoryCodeSpecified() {
        return categoryCodeSpecified;
    }

    public void unsetCategoryCode() {
        categoryCode = null;
        categoryCodeSpecified = false;
    }

    /**
     * The date the invoice item 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;
    }

    /**
     * The item description for this invoice item.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String description;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        descriptionSpecified = true;
        this.description = description;
    }

    protected boolean descriptionSpecified;

    public boolean isDescriptionSpecified() {
        return descriptionSpecified;
    }

    public void unsetDescription() {
        description = null;
        descriptionSpecified = false;
    }

    /**
     * The domain name of the invoiced item. This is only used on invoice items whose category is "server".
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String domainName;

    public String getDomainName() {
        return domainName;
    }

    public void setDomainName(String domainName) {
        domainNameSpecified = true;
        this.domainName = domainName;
    }

    protected boolean domainNameSpecified;

    public boolean isDomainNameSpecified() {
        return domainNameSpecified;
    }

    public void unsetDomainName() {
        domainName = null;
        domainNameSpecified = false;
    }

    /**
     * The Host name of the invoiced item. This is only used on invoice items whose category is "server".
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String hostName;

    public String getHostName() {
        return hostName;
    }

    public void setHostName(String hostName) {
        hostNameSpecified = true;
        this.hostName = hostName;
    }

    protected boolean hostNameSpecified;

    public boolean isHostNameSpecified() {
        return hostNameSpecified;
    }

    public void unsetHostName() {
        hostName = null;
        hostNameSpecified = false;
    }

    /**
     * The hourly recurring fee of the invoice item represented by a floating point decimal in US Dollars ($USD)
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal hourlyRecurringFee;

    public BigDecimal getHourlyRecurringFee() {
        return hourlyRecurringFee;
    }

    public void setHourlyRecurringFee(BigDecimal hourlyRecurringFee) {
        hourlyRecurringFeeSpecified = true;
        this.hourlyRecurringFee = hourlyRecurringFee;
    }

    protected boolean hourlyRecurringFeeSpecified;

    public boolean isHourlyRecurringFeeSpecified() {
        return hourlyRecurringFeeSpecified;
    }

    public void unsetHourlyRecurringFee() {
        hourlyRecurringFee = null;
        hourlyRecurringFeeSpecified = false;
    }

    /**
     * The ID of the invoice item.
     */
    @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;
    }

    /**
     * The invoice to which this invoice item belongs.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long invoiceId;

    public Long getInvoiceId() {
        return invoiceId;
    }

    public void setInvoiceId(Long invoiceId) {
        invoiceIdSpecified = true;
        this.invoiceId = invoiceId;
    }

    protected boolean invoiceIdSpecified;

    public boolean isInvoiceIdSpecified() {
        return invoiceIdSpecified;
    }

    public void unsetInvoiceId() {
        invoiceId = null;
        invoiceIdSpecified = false;
    }

    /**
     * An invoice item's labor fee total after taxes. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal laborAfterTaxAmount;

    public BigDecimal getLaborAfterTaxAmount() {
        return laborAfterTaxAmount;
    }

    public void setLaborAfterTaxAmount(BigDecimal laborAfterTaxAmount) {
        laborAfterTaxAmountSpecified = true;
        this.laborAfterTaxAmount = laborAfterTaxAmount;
    }

    protected boolean laborAfterTaxAmountSpecified;

    public boolean isLaborAfterTaxAmountSpecified() {
        return laborAfterTaxAmountSpecified;
    }

    public void unsetLaborAfterTaxAmount() {
        laborAfterTaxAmount = null;
        laborAfterTaxAmountSpecified = false;
    }

    /**
     * This also a one-time fee of a special type.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal laborFee;

    public BigDecimal getLaborFee() {
        return laborFee;
    }

    public void setLaborFee(BigDecimal laborFee) {
        laborFeeSpecified = true;
        this.laborFee = laborFee;
    }

    protected boolean laborFeeSpecified;

    public boolean isLaborFeeSpecified() {
        return laborFeeSpecified;
    }

    public void unsetLaborFee() {
        laborFee = null;
        laborFeeSpecified = false;
    }

    /**
     * The tax rate at which the labor fee is taxed.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal laborFeeTaxRate;

    public BigDecimal getLaborFeeTaxRate() {
        return laborFeeTaxRate;
    }

    public void setLaborFeeTaxRate(BigDecimal laborFeeTaxRate) {
        laborFeeTaxRateSpecified = true;
        this.laborFeeTaxRate = laborFeeTaxRate;
    }

    protected boolean laborFeeTaxRateSpecified;

    public boolean isLaborFeeTaxRateSpecified() {
        return laborFeeTaxRateSpecified;
    }

    public void unsetLaborFeeTaxRate() {
        laborFeeTaxRate = null;
        laborFeeTaxRateSpecified = false;
    }

    /**
     * An invoice item's labor tax amount. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal laborTaxAmount;

    public BigDecimal getLaborTaxAmount() {
        return laborTaxAmount;
    }

    public void setLaborTaxAmount(BigDecimal laborTaxAmount) {
        laborTaxAmountSpecified = true;
        this.laborTaxAmount = laborTaxAmount;
    }

    protected boolean laborTaxAmountSpecified;

    public boolean isLaborTaxAmountSpecified() {
        return laborTaxAmountSpecified;
    }

    public void unsetLaborTaxAmount() {
        laborTaxAmount = null;
        laborTaxAmountSpecified = false;
    }

    /**
     * A note to help describe more about the item. This normally holds usernames, or some other bit of extra information.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected String notes;

    public String getNotes() {
        return notes;
    }

    public void setNotes(String notes) {
        notesSpecified = true;
        this.notes = notes;
    }

    protected boolean notesSpecified;

    public boolean isNotesSpecified() {
        return notesSpecified;
    }

    public void unsetNotes() {
        notes = null;
        notesSpecified = false;
    }

    /**
     * An invoice item's one-time fee total after taxes. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal oneTimeAfterTaxAmount;

    public BigDecimal getOneTimeAfterTaxAmount() {
        return oneTimeAfterTaxAmount;
    }

    public void setOneTimeAfterTaxAmount(BigDecimal oneTimeAfterTaxAmount) {
        oneTimeAfterTaxAmountSpecified = true;
        this.oneTimeAfterTaxAmount = oneTimeAfterTaxAmount;
    }

    protected boolean oneTimeAfterTaxAmountSpecified;

    public boolean isOneTimeAfterTaxAmountSpecified() {
        return oneTimeAfterTaxAmountSpecified;
    }

    public void unsetOneTimeAfterTaxAmount() {
        oneTimeAfterTaxAmount = null;
        oneTimeAfterTaxAmountSpecified = false;
    }

    /**
     * If there are any one-time charges assessed, it will show up here represented by a floating point decimal in US Dollars ($USD)
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal oneTimeFee;

    public BigDecimal getOneTimeFee() {
        return oneTimeFee;
    }

    public void setOneTimeFee(BigDecimal oneTimeFee) {
        oneTimeFeeSpecified = true;
        this.oneTimeFee = oneTimeFee;
    }

    protected boolean oneTimeFeeSpecified;

    public boolean isOneTimeFeeSpecified() {
        return oneTimeFeeSpecified;
    }

    public void unsetOneTimeFee() {
        oneTimeFee = null;
        oneTimeFeeSpecified = false;
    }

    /**
     * The rate at which the one-time fee is taxed.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal oneTimeFeeTaxRate;

    public BigDecimal getOneTimeFeeTaxRate() {
        return oneTimeFeeTaxRate;
    }

    public void setOneTimeFeeTaxRate(BigDecimal oneTimeFeeTaxRate) {
        oneTimeFeeTaxRateSpecified = true;
        this.oneTimeFeeTaxRate = oneTimeFeeTaxRate;
    }

    protected boolean oneTimeFeeTaxRateSpecified;

    public boolean isOneTimeFeeTaxRateSpecified() {
        return oneTimeFeeTaxRateSpecified;
    }

    public void unsetOneTimeFeeTaxRate() {
        oneTimeFeeTaxRate = null;
        oneTimeFeeTaxRateSpecified = false;
    }

    /**
     * An invoice item's one-time tax amount. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal oneTimeTaxAmount;

    public BigDecimal getOneTimeTaxAmount() {
        return oneTimeTaxAmount;
    }

    public void setOneTimeTaxAmount(BigDecimal oneTimeTaxAmount) {
        oneTimeTaxAmountSpecified = true;
        this.oneTimeTaxAmount = oneTimeTaxAmount;
    }

    protected boolean oneTimeTaxAmountSpecified;

    public boolean isOneTimeTaxAmountSpecified() {
        return oneTimeTaxAmountSpecified;
    }

    public void unsetOneTimeTaxAmount() {
        oneTimeTaxAmount = null;
        oneTimeTaxAmountSpecified = false;
    }

    /**
     * The parent invoice item, usually the server invoice item.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long parentId;

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        parentIdSpecified = true;
        this.parentId = parentId;
    }

    protected boolean parentIdSpecified;

    public boolean isParentIdSpecified() {
        return parentIdSpecified;
    }

    public void unsetParentId() {
        parentId = null;
        parentIdSpecified = false;
    }

    /**
     * The entry in the product catalog that a invoice item is based upon.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long productItemId;

    public Long getProductItemId() {
        return productItemId;
    }

    public void setProductItemId(Long productItemId) {
        productItemIdSpecified = true;
        this.productItemId = productItemId;
    }

    protected boolean productItemIdSpecified;

    public boolean isProductItemIdSpecified() {
        return productItemIdSpecified;
    }

    public void unsetProductItemId() {
        productItemId = null;
        productItemIdSpecified = false;
    }

    /**
     * An invoice item's recurring fee total after taxes. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal recurringAfterTaxAmount;

    public BigDecimal getRecurringAfterTaxAmount() {
        return recurringAfterTaxAmount;
    }

    public void setRecurringAfterTaxAmount(BigDecimal recurringAfterTaxAmount) {
        recurringAfterTaxAmountSpecified = true;
        this.recurringAfterTaxAmount = recurringAfterTaxAmount;
    }

    protected boolean recurringAfterTaxAmountSpecified;

    public boolean isRecurringAfterTaxAmountSpecified() {
        return recurringAfterTaxAmountSpecified;
    }

    public void unsetRecurringAfterTaxAmount() {
        recurringAfterTaxAmount = null;
        recurringAfterTaxAmountSpecified = false;
    }

    /**
     * The recurring fee of the invoice item represented by a floating point decimal in US Dollars ($USD)
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal recurringFee;

    public BigDecimal getRecurringFee() {
        return recurringFee;
    }

    public void setRecurringFee(BigDecimal recurringFee) {
        recurringFeeSpecified = true;
        this.recurringFee = recurringFee;
    }

    protected boolean recurringFeeSpecified;

    public boolean isRecurringFeeSpecified() {
        return recurringFeeSpecified;
    }

    public void unsetRecurringFee() {
        recurringFee = null;
        recurringFeeSpecified = false;
    }

    /**
     * the rate at which the recurring fee is taxed.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal recurringFeeTaxRate;

    public BigDecimal getRecurringFeeTaxRate() {
        return recurringFeeTaxRate;
    }

    public void setRecurringFeeTaxRate(BigDecimal recurringFeeTaxRate) {
        recurringFeeTaxRateSpecified = true;
        this.recurringFeeTaxRate = recurringFeeTaxRate;
    }

    protected boolean recurringFeeTaxRateSpecified;

    public boolean isRecurringFeeTaxRateSpecified() {
        return recurringFeeTaxRateSpecified;
    }

    public void unsetRecurringFeeTaxRate() {
        recurringFeeTaxRate = null;
        recurringFeeTaxRateSpecified = false;
    }

    /**
     * An invoice item's recurring tax amount. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal recurringTaxAmount;

    public BigDecimal getRecurringTaxAmount() {
        return recurringTaxAmount;
    }

    public void setRecurringTaxAmount(BigDecimal recurringTaxAmount) {
        recurringTaxAmountSpecified = true;
        this.recurringTaxAmount = recurringTaxAmount;
    }

    protected boolean recurringTaxAmountSpecified;

    public boolean isRecurringTaxAmountSpecified() {
        return recurringTaxAmountSpecified;
    }

    public void unsetRecurringTaxAmount() {
        recurringTaxAmount = null;
        recurringTaxAmountSpecified = false;
    }

    /**
     * A unique identifier for a SoftLayer Service that is associated to an invoice item.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long resourceTableId;

    public Long getResourceTableId() {
        return resourceTableId;
    }

    public void setResourceTableId(Long resourceTableId) {
        resourceTableIdSpecified = true;
        this.resourceTableId = resourceTableId;
    }

    protected boolean resourceTableIdSpecified;

    public boolean isResourceTableIdSpecified() {
        return resourceTableIdSpecified;
    }

    public void unsetResourceTableId() {
        resourceTableId = null;
        resourceTableIdSpecified = false;
    }

    /**
     * The service provider for the invoice item.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long serviceProviderId;

    public Long getServiceProviderId() {
        return serviceProviderId;
    }

    public void setServiceProviderId(Long serviceProviderId) {
        serviceProviderIdSpecified = true;
        this.serviceProviderId = serviceProviderId;
    }

    protected boolean serviceProviderIdSpecified;

    public boolean isServiceProviderIdSpecified() {
        return serviceProviderIdSpecified;
    }

    public void unsetServiceProviderId() {
        serviceProviderId = null;
        serviceProviderIdSpecified = false;
    }

    /**
     * An invoice item's setup fee total after taxes. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal setupAfterTaxAmount;

    public BigDecimal getSetupAfterTaxAmount() {
        return setupAfterTaxAmount;
    }

    public void setSetupAfterTaxAmount(BigDecimal setupAfterTaxAmount) {
        setupAfterTaxAmountSpecified = true;
        this.setupAfterTaxAmount = setupAfterTaxAmount;
    }

    protected boolean setupAfterTaxAmountSpecified;

    public boolean isSetupAfterTaxAmountSpecified() {
        return setupAfterTaxAmountSpecified;
    }

    public void unsetSetupAfterTaxAmount() {
        setupAfterTaxAmount = null;
        setupAfterTaxAmountSpecified = false;
    }

    /**
     * If there were any setup fees they will show up here. These are normally a one-time fee.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal setupFee;

    public BigDecimal getSetupFee() {
        return setupFee;
    }

    public void setSetupFee(BigDecimal setupFee) {
        setupFeeSpecified = true;
        this.setupFee = setupFee;
    }

    protected boolean setupFeeSpecified;

    public boolean isSetupFeeSpecified() {
        return setupFeeSpecified;
    }

    public void unsetSetupFee() {
        setupFee = null;
        setupFeeSpecified = false;
    }

    /**
     * The number of months the setup fee is being deferred.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected Long setupFeeDeferralMonths;

    public Long getSetupFeeDeferralMonths() {
        return setupFeeDeferralMonths;
    }

    public void setSetupFeeDeferralMonths(Long setupFeeDeferralMonths) {
        setupFeeDeferralMonthsSpecified = true;
        this.setupFeeDeferralMonths = setupFeeDeferralMonths;
    }

    protected boolean setupFeeDeferralMonthsSpecified;

    public boolean isSetupFeeDeferralMonthsSpecified() {
        return setupFeeDeferralMonthsSpecified;
    }

    public void unsetSetupFeeDeferralMonths() {
        setupFeeDeferralMonths = null;
        setupFeeDeferralMonthsSpecified = false;
    }

    /**
     * The tax rate at which the setup fee is taxed.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal setupFeeTaxRate;

    public BigDecimal getSetupFeeTaxRate() {
        return setupFeeTaxRate;
    }

    public void setSetupFeeTaxRate(BigDecimal setupFeeTaxRate) {
        setupFeeTaxRateSpecified = true;
        this.setupFeeTaxRate = setupFeeTaxRate;
    }

    protected boolean setupFeeTaxRateSpecified;

    public boolean isSetupFeeTaxRateSpecified() {
        return setupFeeTaxRateSpecified;
    }

    public void unsetSetupFeeTaxRate() {
        setupFeeTaxRate = null;
        setupFeeTaxRateSpecified = false;
    }

    /**
     * An invoice item's setup tax amount. This does not include any child invoice items.
     */
    @ApiProperty(canBeNullOrNotSet = true)
    protected BigDecimal setupTaxAmount;

    public BigDecimal getSetupTaxAmount() {
        return setupTaxAmount;
    }

    public void setSetupTaxAmount(BigDecimal setupTaxAmount) {
        setupTaxAmountSpecified = true;
        this.setupTaxAmount = setupTaxAmount;
    }

    protected boolean setupTaxAmountSpecified;

    public boolean isSetupTaxAmountSpecified() {
        return setupTaxAmountSpecified;
    }

    public void unsetSetupTaxAmount() {
        setupTaxAmount = null;
        setupTaxAmountSpecified = false;
    }

    /**
     * A count of an Invoice Item's associated child invoice items. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
     */
    @ApiProperty
    protected Long associatedChildrenCount;

    public Long getAssociatedChildrenCount() {
        return associatedChildrenCount;
    }

    public void setAssociatedChildrenCount(Long associatedChildrenCount) {
        this.associatedChildrenCount = associatedChildrenCount;
    }

    /**
     * A count of an Invoice Item's child invoice items. Only parent invoice items have children. For instance, a server invoice item will have children.
     */
    @ApiProperty
    protected Long childrenCount;

    public Long getChildrenCount() {
        return childrenCount;
    }

    public void setChildrenCount(Long childrenCount) {
        this.childrenCount = childrenCount;
    }

    /**
     * A count of an Invoice Item's associated child invoice items, excluding some items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
     */
    @ApiProperty
    protected Long filteredAssociatedChildrenCount;

    public Long getFilteredAssociatedChildrenCount() {
        return filteredAssociatedChildrenCount;
    }

    public void setFilteredAssociatedChildrenCount(Long filteredAssociatedChildrenCount) {
        this.filteredAssociatedChildrenCount = filteredAssociatedChildrenCount;
    }

    /**
     * A count of an Invoice Item's associated child invoice items, excluding ALL items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
     */
    @ApiProperty
    protected Long nonZeroAssociatedChildrenCount;

    public Long getNonZeroAssociatedChildrenCount() {
        return nonZeroAssociatedChildrenCount;
    }

    public void setNonZeroAssociatedChildrenCount(Long nonZeroAssociatedChildrenCount) {
        this.nonZeroAssociatedChildrenCount = nonZeroAssociatedChildrenCount;
    }

    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());
    }

    /**
     * Every invoice item is defined in the SoftLayer_Billing_Invoice_Item service. Softlayer billing invoice items have details about the items that reside within an invoice. These items detail, for instance, the recurring and one time charges for each item billed. 
     *
     * @see SoftLayer_Billing_Invoice_Item
     */
    @com.softlayer.api.annotation.ApiService("SoftLayer_Billing_Invoice_Item")
    public static interface Service extends com.softlayer.api.Service {

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

        /**
         * getObject retrieves the SoftLayer_Billing_Invoice_Item object whose ID number corresponds to the ID number of the init parameter passed to the SoftLayer_Billing_Invoice_Item service. You can only retrieve the items tied to the account that your portal user is assigned to. 
         *
         * @see SoftLayer_Billing_Invoice_Item::getObject
         */
        @ApiMethod(instanceRequired = true)
        public Item getObject();

        /**
         * An Invoice Item's associated child invoice items. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
         *
         * @see SoftLayer_Billing_Invoice_Item::getAssociatedChildren
         */
        @ApiMethod(instanceRequired = true)
        public List getAssociatedChildren();

        /**
         * An Invoice Item's associated invoice item. If this is populated, it means this is an orphaned invoice item, but logically belongs to the associated invoice item.
         *
         * @see SoftLayer_Billing_Invoice_Item::getAssociatedInvoiceItem
         */
        @ApiMethod(instanceRequired = true)
        public Item getAssociatedInvoiceItem();

        /**
         * An Invoice Item's billing item, from which this item was generated.
         *
         * @see SoftLayer_Billing_Invoice_Item::getBillingItem
         */
        @ApiMethod(instanceRequired = true)
        public com.softlayer.api.service.billing.Item getBillingItem();

        /**
         * This invoice item's "item category". 
         *
         * @see SoftLayer_Billing_Invoice_Item::getCategory
         */
        @ApiMethod(instanceRequired = true)
        public Category getCategory();

        /**
         * An Invoice Item's child invoice items. Only parent invoice items have children. For instance, a server invoice item will have children.
         *
         * @see SoftLayer_Billing_Invoice_Item::getChildren
         */
        @ApiMethod(instanceRequired = true)
        public List getChildren();

        /**
         * An Invoice Item's associated child invoice items, excluding some items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
         *
         * @see SoftLayer_Billing_Invoice_Item::getFilteredAssociatedChildren
         */
        @ApiMethod(instanceRequired = true)
        public List getFilteredAssociatedChildren();

        /**
         * Indicating whether this invoice item is billed on an hourly basis.
         *
         * @see SoftLayer_Billing_Invoice_Item::getHourlyFlag
         */
        @ApiMethod(instanceRequired = true)
        public Boolean getHourlyFlag();

        /**
         * The invoice to which this item belongs.
         *
         * @see SoftLayer_Billing_Invoice_Item::getInvoice
         */
        @ApiMethod(instanceRequired = true)
        public Invoice getInvoice();

        /**
         * An invoice item's location, if one exists.'
         *
         * @see SoftLayer_Billing_Invoice_Item::getLocation
         */
        @ApiMethod(instanceRequired = true)
        public Location getLocation();

        /**
         * An Invoice Item's associated child invoice items, excluding ALL items with a $0.00 recurring fee. Only parent invoice items have associated children. For instance, a server invoice item may have associated children.
         *
         * @see SoftLayer_Billing_Invoice_Item::getNonZeroAssociatedChildren
         */
        @ApiMethod(instanceRequired = true)
        public List getNonZeroAssociatedChildren();

        /**
         * Every item tied to a server should have a parent invoice item which is the server line item. This is how we associate items to a server.
         *
         * @see SoftLayer_Billing_Invoice_Item::getParent
         */
        @ApiMethod(instanceRequired = true)
        public Item getParent();

        /**
         * The entry in the product catalog that a invoice item is based upon.
         *
         * @see SoftLayer_Billing_Invoice_Item::getProduct
         */
        @ApiMethod(instanceRequired = true)
        public com.softlayer.api.service.product.Item getProduct();

        /**
         * A string representing the name of parent level product group of an invoice item.
         *
         * @see SoftLayer_Billing_Invoice_Item::getTopLevelProductGroupName
         */
        @ApiMethod(instanceRequired = true)
        public String getTopLevelProductGroupName();

        /**
         * An invoice Item's total, including any child invoice items if they exist.
         *
         * @see SoftLayer_Billing_Invoice_Item::getTotalOneTimeAmount
         */
        @ApiMethod(instanceRequired = true)
        public BigDecimal getTotalOneTimeAmount();

        /**
         * An invoice Item's total, including any child invoice items if they exist.
         *
         * @see SoftLayer_Billing_Invoice_Item::getTotalOneTimeTaxAmount
         */
        @ApiMethod(instanceRequired = true)
        public BigDecimal getTotalOneTimeTaxAmount();

        /**
         * An invoice Item's total, including any child invoice items if they exist.
         *
         * @see SoftLayer_Billing_Invoice_Item::getTotalRecurringAmount
         */
        @ApiMethod(instanceRequired = true)
        public BigDecimal getTotalRecurringAmount();

        /**
         * A Billing Item's total, including any child billing items if they exist.'
         *
         * @see SoftLayer_Billing_Invoice_Item::getTotalRecurringTaxAmount
         */
        @ApiMethod(instanceRequired = true)
        public BigDecimal getTotalRecurringTaxAmount();

        /**
         * Indicating whether this invoice item is for the usage charge.
         *
         * @see SoftLayer_Billing_Invoice_Item::getUsageChargeFlag
         */
        @ApiMethod(instanceRequired = true)
        public Boolean getUsageChargeFlag();

    }

    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#getObject}
         */
        public Future getObject();

        public Future getObject(ResponseHandler callback);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    }

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

        public Item.Mask associatedChildren() {
            return withSubMask("associatedChildren", Item.Mask.class);
        }

        public Item.Mask associatedInvoiceItem() {
            return withSubMask("associatedInvoiceItem", Item.Mask.class);
        }

        public com.softlayer.api.service.billing.Item.Mask billingItem() {
            return withSubMask("billingItem", com.softlayer.api.service.billing.Item.Mask.class);
        }

        public com.softlayer.api.service.product.item.Category.Mask category() {
            return withSubMask("category", com.softlayer.api.service.product.item.Category.Mask.class);
        }

        public Item.Mask children() {
            return withSubMask("children", Item.Mask.class);
        }

        public Item.Mask filteredAssociatedChildren() {
            return withSubMask("filteredAssociatedChildren", Item.Mask.class);
        }

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

        public com.softlayer.api.service.billing.Invoice.Mask invoice() {
            return withSubMask("invoice", com.softlayer.api.service.billing.Invoice.Mask.class);
        }

        public com.softlayer.api.service.Location.Mask location() {
            return withSubMask("location", com.softlayer.api.service.Location.Mask.class);
        }

        public Item.Mask nonZeroAssociatedChildren() {
            return withSubMask("nonZeroAssociatedChildren", Item.Mask.class);
        }

        public Item.Mask parent() {
            return withSubMask("parent", Item.Mask.class);
        }

        public com.softlayer.api.service.product.Item.Mask product() {
            return withSubMask("product", com.softlayer.api.service.product.Item.Mask.class);
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy