// 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.v201605; 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; /** * * {@code ProductTemplate} is used to generate products. All generated products will * inherit all attributes from their {@code ProductTemplate}, except for segmentation, * which will be included in the {@link Product#targeting}. The generated products in turn will be * used to create {@link ProposalLineItem proposal line items} so that almost all attributes * in the product template are properties of the proposal line item. * * * <p>Java class for ProductTemplate complex type. * * <p>The following schema fragment specifies the expected content contained within this class. * * <pre> * <complexType name="ProductTemplate"> * <complexContent> * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType"> * <sequence> * <element name="id" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/> * <element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="creationDateTime" type="{https://www.google.com/apis/ads/publisher/v201605}DateTime" minOccurs="0"/> * <element name="lastModifiedDateTime" type="{https://www.google.com/apis/ads/publisher/v201605}DateTime" minOccurs="0"/> * <element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="nameMacro" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/> * <element name="status" type="{https://www.google.com/apis/ads/publisher/v201605}ProductTemplateStatus" minOccurs="0"/> * <element name="productType" type="{https://www.google.com/apis/ads/publisher/v201605}ProductType" minOccurs="0"/> * <element name="creatorId" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/> * <element name="rateType" type="{https://www.google.com/apis/ads/publisher/v201605}RateType" minOccurs="0"/> * <element name="roadblockingType" type="{https://www.google.com/apis/ads/publisher/v201605}RoadblockingType" minOccurs="0"/> * <element name="deliveryRateType" type="{https://www.google.com/apis/ads/publisher/v201605}DeliveryRateType" minOccurs="0"/> * <element name="creativeRotationType" type="{https://www.google.com/apis/ads/publisher/v201605}CreativeRotationType" minOccurs="0"/> * <element name="companionDeliveryOption" type="{https://www.google.com/apis/ads/publisher/v201605}CompanionDeliveryOption" minOccurs="0"/> * <element name="creativePlaceholders" type="{https://www.google.com/apis/ads/publisher/v201605}CreativePlaceholder" maxOccurs="unbounded" minOccurs="0"/> * <element name="lineItemType" type="{https://www.google.com/apis/ads/publisher/v201605}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/v201605}FrequencyCap" maxOccurs="unbounded" minOccurs="0"/> * <element name="productSegmentation" type="{https://www.google.com/apis/ads/publisher/v201605}ProductSegmentation" minOccurs="0"/> * <element name="builtInTargeting" type="{https://www.google.com/apis/ads/publisher/v201605}Targeting" minOccurs="0"/> * <element name="customizableAttributes" type="{https://www.google.com/apis/ads/publisher/v201605}CustomizableAttributes" minOccurs="0"/> * <element name="customFieldValues" type="{https://www.google.com/apis/ads/publisher/v201605}BaseCustomFieldValue" maxOccurs="unbounded" minOccurs="0"/> * <element name="environmentType" type="{https://www.google.com/apis/ads/publisher/v201605}EnvironmentType" 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 = "ProductTemplate", propOrder = { "id", "name", "creationDateTime", "lastModifiedDateTime", "description", "nameMacro", "status", "productType", "creatorId", "rateType", "roadblockingType", "deliveryRateType", "creativeRotationType", "companionDeliveryOption", "creativePlaceholders", "lineItemType", "priority", "frequencyCaps", "productSegmentation", "builtInTargeting", "customizableAttributes", "customFieldValues", "environmentType", "videoMaxDuration" }) public class ProductTemplate { protected Long id; protected String name; protected DateTime creationDateTime; protected DateTime lastModifiedDateTime; protected String description; protected String nameMacro; @XmlSchemaType(name = "string") protected ProductTemplateStatus status; @XmlSchemaType(name = "string") protected ProductType productType; protected Long creatorId; @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 ProductSegmentation productSegmentation; protected Targeting builtInTargeting; protected CustomizableAttributes customizableAttributes; protected List<BaseCustomFieldValue> customFieldValues; @XmlSchemaType(name = "string") protected EnvironmentType environmentType; protected Long videoMaxDuration; /** * 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 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 creationDateTime property. * * @return * possible object is * {@link DateTime } * */ public DateTime getCreationDateTime() { return creationDateTime; } /** * Sets the value of the creationDateTime property. * * @param value * allowed object is * {@link DateTime } * */ public void setCreationDateTime(DateTime value) { this.creationDateTime = 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 description property. * * @return * possible object is * {@link String } * */ public String getDescription() { return description; } /** * Sets the value of the description property. * * @param value * allowed object is * {@link String } * */ public void setDescription(String value) { this.description = value; } /** * Gets the value of the nameMacro property. * * @return * possible object is * {@link String } * */ public String getNameMacro() { return nameMacro; } /** * Sets the value of the nameMacro property. * * @param value * allowed object is * {@link String } * */ public void setNameMacro(String value) { this.nameMacro = value; } /** * Gets the value of the status property. * * @return * possible object is * {@link ProductTemplateStatus } * */ public ProductTemplateStatus getStatus() { return status; } /** * Sets the value of the status property. * * @param value * allowed object is * {@link ProductTemplateStatus } * */ public void setStatus(ProductTemplateStatus 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 creatorId property. * * @return * possible object is * {@link Long } * */ public Long getCreatorId() { return creatorId; } /** * Sets the value of the creatorId property. * * @param value * allowed object is * {@link Long } * */ public void setCreatorId(Long value) { this.creatorId = 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 productSegmentation property. * * @return * possible object is * {@link ProductSegmentation } * */ public ProductSegmentation getProductSegmentation() { return productSegmentation; } /** * Sets the value of the productSegmentation property. * * @param value * allowed object is * {@link ProductSegmentation } * */ public void setProductSegmentation(ProductSegmentation value) { this.productSegmentation = value; } /** * 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 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; } }