// Copyright 2016 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.api.ads.dfp.jaxws.v201608;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
/**
*
* {@link ProposalLineItem Proposal line items} are created from products,
* from which their properties are copied.
*
*
* <p>Java class for Product complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="Product">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="nameSource" type="{https://www.google.com/apis/ads/publisher/v201608}ValueSourceType" minOccurs="0"/>
* <element name="status" type="{https://www.google.com/apis/ads/publisher/v201608}ProductStatus" minOccurs="0"/>
* <element name="productType" type="{https://www.google.com/apis/ads/publisher/v201608}ProductType" minOccurs="0"/>
* <element name="productTemplateId" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
* <element name="id" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
* <element name="notes" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="productTemplateDescription" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="lastModifiedDateTime" type="{https://www.google.com/apis/ads/publisher/v201608}DateTime" minOccurs="0"/>
* <element name="rateType" type="{https://www.google.com/apis/ads/publisher/v201608}RateType" minOccurs="0"/>
* <element name="roadblockingType" type="{https://www.google.com/apis/ads/publisher/v201608}RoadblockingType" minOccurs="0"/>
* <element name="deliveryRateType" type="{https://www.google.com/apis/ads/publisher/v201608}DeliveryRateType" minOccurs="0"/>
* <element name="creativeRotationType" type="{https://www.google.com/apis/ads/publisher/v201608}CreativeRotationType" minOccurs="0"/>
* <element name="companionDeliveryOption" type="{https://www.google.com/apis/ads/publisher/v201608}CompanionDeliveryOption" minOccurs="0"/>
* <element name="creativePlaceholders" type="{https://www.google.com/apis/ads/publisher/v201608}CreativePlaceholder" maxOccurs="unbounded" minOccurs="0"/>
* <element name="lineItemType" type="{https://www.google.com/apis/ads/publisher/v201608}LineItemType" minOccurs="0"/>
* <element name="priority" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
* <element name="frequencyCaps" type="{https://www.google.com/apis/ads/publisher/v201608}FrequencyCap" maxOccurs="unbounded" minOccurs="0"/>
* <element name="builtInTargeting" type="{https://www.google.com/apis/ads/publisher/v201608}Targeting" minOccurs="0"/>
* <element name="customizableAttributes" type="{https://www.google.com/apis/ads/publisher/v201608}CustomizableAttributes" minOccurs="0"/>
* <element name="customFieldValues" type="{https://www.google.com/apis/ads/publisher/v201608}BaseCustomFieldValue" maxOccurs="unbounded" minOccurs="0"/>
* <element name="environmentType" type="{https://www.google.com/apis/ads/publisher/v201608}EnvironmentType" minOccurs="0"/>
* <element name="rate" type="{https://www.google.com/apis/ads/publisher/v201608}Money" minOccurs="0"/>
* <element name="productMarketplaceInfo" type="{https://www.google.com/apis/ads/publisher/v201608}ProductMarketplaceInfo" minOccurs="0"/>
* <element name="videoMaxDuration" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Product", propOrder = {
"name",
"nameSource",
"status",
"productType",
"productTemplateId",
"id",
"notes",
"productTemplateDescription",
"lastModifiedDateTime",
"rateType",
"roadblockingType",
"deliveryRateType",
"creativeRotationType",
"companionDeliveryOption",
"creativePlaceholders",
"lineItemType",
"priority",
"frequencyCaps",
"builtInTargeting",
"customizableAttributes",
"customFieldValues",
"environmentType",
"rate",
"productMarketplaceInfo",
"videoMaxDuration"
})
public class Product {
protected String name;
@XmlSchemaType(name = "string")
protected ValueSourceType nameSource;
@XmlSchemaType(name = "string")
protected ProductStatus status;
@XmlSchemaType(name = "string")
protected ProductType productType;
protected Long productTemplateId;
protected Long id;
protected String notes;
protected String productTemplateDescription;
protected DateTime lastModifiedDateTime;
@XmlSchemaType(name = "string")
protected RateType rateType;
@XmlSchemaType(name = "string")
protected RoadblockingType roadblockingType;
@XmlSchemaType(name = "string")
protected DeliveryRateType deliveryRateType;
@XmlSchemaType(name = "string")
protected CreativeRotationType creativeRotationType;
@XmlSchemaType(name = "string")
protected CompanionDeliveryOption companionDeliveryOption;
protected List<CreativePlaceholder> creativePlaceholders;
@XmlSchemaType(name = "string")
protected LineItemType lineItemType;
protected Integer priority;
protected List<FrequencyCap> frequencyCaps;
protected Targeting builtInTargeting;
protected CustomizableAttributes customizableAttributes;
protected List<BaseCustomFieldValue> customFieldValues;
@XmlSchemaType(name = "string")
protected EnvironmentType environmentType;
protected Money rate;
protected ProductMarketplaceInfo productMarketplaceInfo;
protected Long videoMaxDuration;
/**
* Gets the value of the name property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getName() {
return name;
}
/**
* Sets the value of the name property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setName(String value) {
this.name = value;
}
/**
* Gets the value of the nameSource property.
*
* @return
* possible object is
* {@link ValueSourceType }
*
*/
public ValueSourceType getNameSource() {
return nameSource;
}
/**
* Sets the value of the nameSource property.
*
* @param value
* allowed object is
* {@link ValueSourceType }
*
*/
public void setNameSource(ValueSourceType value) {
this.nameSource = value;
}
/**
* Gets the value of the status property.
*
* @return
* possible object is
* {@link ProductStatus }
*
*/
public ProductStatus getStatus() {
return status;
}
/**
* Sets the value of the status property.
*
* @param value
* allowed object is
* {@link ProductStatus }
*
*/
public void setStatus(ProductStatus value) {
this.status = value;
}
/**
* Gets the value of the productType property.
*
* @return
* possible object is
* {@link ProductType }
*
*/
public ProductType getProductType() {
return productType;
}
/**
* Sets the value of the productType property.
*
* @param value
* allowed object is
* {@link ProductType }
*
*/
public void setProductType(ProductType value) {
this.productType = value;
}
/**
* Gets the value of the productTemplateId property.
*
* @return
* possible object is
* {@link Long }
*
*/
public Long getProductTemplateId() {
return productTemplateId;
}
/**
* Sets the value of the productTemplateId property.
*
* @param value
* allowed object is
* {@link Long }
*
*/
public void setProductTemplateId(Long value) {
this.productTemplateId = value;
}
/**
* Gets the value of the id property.
*
* @return
* possible object is
* {@link Long }
*
*/
public Long getId() {
return id;
}
/**
* Sets the value of the id property.
*
* @param value
* allowed object is
* {@link Long }
*
*/
public void setId(Long value) {
this.id = value;
}
/**
* Gets the value of the notes property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getNotes() {
return notes;
}
/**
* Sets the value of the notes property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setNotes(String value) {
this.notes = value;
}
/**
* Gets the value of the productTemplateDescription property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getProductTemplateDescription() {
return productTemplateDescription;
}
/**
* Sets the value of the productTemplateDescription property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setProductTemplateDescription(String value) {
this.productTemplateDescription = value;
}
/**
* Gets the value of the lastModifiedDateTime property.
*
* @return
* possible object is
* {@link DateTime }
*
*/
public DateTime getLastModifiedDateTime() {
return lastModifiedDateTime;
}
/**
* Sets the value of the lastModifiedDateTime property.
*
* @param value
* allowed object is
* {@link DateTime }
*
*/
public void setLastModifiedDateTime(DateTime value) {
this.lastModifiedDateTime = value;
}
/**
* Gets the value of the rateType property.
*
* @return
* possible object is
* {@link RateType }
*
*/
public RateType getRateType() {
return rateType;
}
/**
* Sets the value of the rateType property.
*
* @param value
* allowed object is
* {@link RateType }
*
*/
public void setRateType(RateType value) {
this.rateType = value;
}
/**
* Gets the value of the roadblockingType property.
*
* @return
* possible object is
* {@link RoadblockingType }
*
*/
public RoadblockingType getRoadblockingType() {
return roadblockingType;
}
/**
* Sets the value of the roadblockingType property.
*
* @param value
* allowed object is
* {@link RoadblockingType }
*
*/
public void setRoadblockingType(RoadblockingType value) {
this.roadblockingType = value;
}
/**
* Gets the value of the deliveryRateType property.
*
* @return
* possible object is
* {@link DeliveryRateType }
*
*/
public DeliveryRateType getDeliveryRateType() {
return deliveryRateType;
}
/**
* Sets the value of the deliveryRateType property.
*
* @param value
* allowed object is
* {@link DeliveryRateType }
*
*/
public void setDeliveryRateType(DeliveryRateType value) {
this.deliveryRateType = value;
}
/**
* Gets the value of the creativeRotationType property.
*
* @return
* possible object is
* {@link CreativeRotationType }
*
*/
public CreativeRotationType getCreativeRotationType() {
return creativeRotationType;
}
/**
* Sets the value of the creativeRotationType property.
*
* @param value
* allowed object is
* {@link CreativeRotationType }
*
*/
public void setCreativeRotationType(CreativeRotationType value) {
this.creativeRotationType = value;
}
/**
* Gets the value of the companionDeliveryOption property.
*
* @return
* possible object is
* {@link CompanionDeliveryOption }
*
*/
public CompanionDeliveryOption getCompanionDeliveryOption() {
return companionDeliveryOption;
}
/**
* Sets the value of the companionDeliveryOption property.
*
* @param value
* allowed object is
* {@link CompanionDeliveryOption }
*
*/
public void setCompanionDeliveryOption(CompanionDeliveryOption value) {
this.companionDeliveryOption = value;
}
/**
* Gets the value of the creativePlaceholders property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the creativePlaceholders property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getCreativePlaceholders().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link CreativePlaceholder }
*
*
*/
public List<CreativePlaceholder> getCreativePlaceholders() {
if (creativePlaceholders == null) {
creativePlaceholders = new ArrayList<CreativePlaceholder>();
}
return this.creativePlaceholders;
}
/**
* Gets the value of the lineItemType property.
*
* @return
* possible object is
* {@link LineItemType }
*
*/
public LineItemType getLineItemType() {
return lineItemType;
}
/**
* Sets the value of the lineItemType property.
*
* @param value
* allowed object is
* {@link LineItemType }
*
*/
public void setLineItemType(LineItemType value) {
this.lineItemType = value;
}
/**
* Gets the value of the priority property.
*
* @return
* possible object is
* {@link Integer }
*
*/
public Integer getPriority() {
return priority;
}
/**
* Sets the value of the priority property.
*
* @param value
* allowed object is
* {@link Integer }
*
*/
public void setPriority(Integer value) {
this.priority = value;
}
/**
* Gets the value of the frequencyCaps property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the frequencyCaps property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getFrequencyCaps().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link FrequencyCap }
*
*
*/
public List<FrequencyCap> getFrequencyCaps() {
if (frequencyCaps == null) {
frequencyCaps = new ArrayList<FrequencyCap>();
}
return this.frequencyCaps;
}
/**
* Gets the value of the builtInTargeting property.
*
* @return
* possible object is
* {@link Targeting }
*
*/
public Targeting getBuiltInTargeting() {
return builtInTargeting;
}
/**
* Sets the value of the builtInTargeting property.
*
* @param value
* allowed object is
* {@link Targeting }
*
*/
public void setBuiltInTargeting(Targeting value) {
this.builtInTargeting = value;
}
/**
* Gets the value of the customizableAttributes property.
*
* @return
* possible object is
* {@link CustomizableAttributes }
*
*/
public CustomizableAttributes getCustomizableAttributes() {
return customizableAttributes;
}
/**
* Sets the value of the customizableAttributes property.
*
* @param value
* allowed object is
* {@link CustomizableAttributes }
*
*/
public void setCustomizableAttributes(CustomizableAttributes value) {
this.customizableAttributes = value;
}
/**
* Gets the value of the customFieldValues property.
*
* <p>
* This accessor method returns a reference to the live list,
* not a snapshot. Therefore any modification you make to the
* returned list will be present inside the JAXB object.
* This is why there is not a <CODE>set</CODE> method for the customFieldValues property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getCustomFieldValues().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link BaseCustomFieldValue }
*
*
*/
public List<BaseCustomFieldValue> getCustomFieldValues() {
if (customFieldValues == null) {
customFieldValues = new ArrayList<BaseCustomFieldValue>();
}
return this.customFieldValues;
}
/**
* Gets the value of the environmentType property.
*
* @return
* possible object is
* {@link EnvironmentType }
*
*/
public EnvironmentType getEnvironmentType() {
return environmentType;
}
/**
* Sets the value of the environmentType property.
*
* @param value
* allowed object is
* {@link EnvironmentType }
*
*/
public void setEnvironmentType(EnvironmentType value) {
this.environmentType = value;
}
/**
* Gets the value of the rate property.
*
* @return
* possible object is
* {@link Money }
*
*/
public Money getRate() {
return rate;
}
/**
* Sets the value of the rate property.
*
* @param value
* allowed object is
* {@link Money }
*
*/
public void setRate(Money value) {
this.rate = value;
}
/**
* Gets the value of the productMarketplaceInfo property.
*
* @return
* possible object is
* {@link ProductMarketplaceInfo }
*
*/
public ProductMarketplaceInfo getProductMarketplaceInfo() {
return productMarketplaceInfo;
}
/**
* Sets the value of the productMarketplaceInfo property.
*
* @param value
* allowed object is
* {@link ProductMarketplaceInfo }
*
*/
public void setProductMarketplaceInfo(ProductMarketplaceInfo value) {
this.productMarketplaceInfo = value;
}
/**
* Gets the value of the videoMaxDuration property.
*
* @return
* possible object is
* {@link Long }
*
*/
public Long getVideoMaxDuration() {
return videoMaxDuration;
}
/**
* Sets the value of the videoMaxDuration property.
*
* @param value
* allowed object is
* {@link Long }
*
*/
public void setVideoMaxDuration(Long value) {
this.videoMaxDuration = value;
}
}