// Copyright 2017 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.v201702;
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.XmlElement;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
/**
*
* An {@code AdUnit} represents a chunk of identified inventory for the
* publisher. It contains all the settings that need to be associated with
* inventory in order to serve ads to it. An {@code AdUnit} can also be the
* parent of other ad units in the inventory hierarchy.
*
*
* <p>Java class for AdUnit complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="AdUnit">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="id" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="parentId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="hasChildren" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
* <element name="parentPath" type="{https://www.google.com/apis/ads/publisher/v201702}AdUnitParent" maxOccurs="unbounded" minOccurs="0"/>
* <element name="name" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="description" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="targetWindow" type="{https://www.google.com/apis/ads/publisher/v201702}AdUnit.TargetWindow" minOccurs="0"/>
* <element name="status" type="{https://www.google.com/apis/ads/publisher/v201702}InventoryStatus" minOccurs="0"/>
* <element name="adUnitCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="adUnitSizes" type="{https://www.google.com/apis/ads/publisher/v201702}AdUnitSize" maxOccurs="unbounded" minOccurs="0"/>
* <element name="mobilePlatform" type="{https://www.google.com/apis/ads/publisher/v201702}MobilePlatform" minOccurs="0"/>
* <element name="explicitlyTargeted" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
* <element name="inheritedAdSenseSettings" type="{https://www.google.com/apis/ads/publisher/v201702}AdSenseSettingsInheritedProperty" minOccurs="0"/>
* <element name="partnerId" type="{http://www.w3.org/2001/XMLSchema}long" minOccurs="0"/>
* <element name="appliedLabelFrequencyCaps" type="{https://www.google.com/apis/ads/publisher/v201702}LabelFrequencyCap" maxOccurs="unbounded" minOccurs="0"/>
* <element name="effectiveLabelFrequencyCaps" type="{https://www.google.com/apis/ads/publisher/v201702}LabelFrequencyCap" maxOccurs="unbounded" minOccurs="0"/>
* <element name="appliedLabels" type="{https://www.google.com/apis/ads/publisher/v201702}AppliedLabel" maxOccurs="unbounded" minOccurs="0"/>
* <element name="effectiveAppliedLabels" type="{https://www.google.com/apis/ads/publisher/v201702}AppliedLabel" maxOccurs="unbounded" minOccurs="0"/>
* <element name="effectiveTeamIds" type="{http://www.w3.org/2001/XMLSchema}long" maxOccurs="unbounded" minOccurs="0"/>
* <element name="appliedTeamIds" type="{http://www.w3.org/2001/XMLSchema}long" maxOccurs="unbounded" minOccurs="0"/>
* <element name="lastModifiedDateTime" type="{https://www.google.com/apis/ads/publisher/v201702}DateTime" minOccurs="0"/>
* <element name="smartSizeMode" type="{https://www.google.com/apis/ads/publisher/v201702}SmartSizeMode" minOccurs="0"/>
* <element name="refreshRate" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
* <element name="isSharedByDistributor" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
* <element name="crossSellingDistributor" type="{https://www.google.com/apis/ads/publisher/v201702}CrossSellingDistributor" minOccurs="0"/>
* <element name="externalSetTopBoxChannelId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="isSetTopBoxEnabled" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AdUnit", propOrder = {
"id",
"parentId",
"hasChildren",
"parentPath",
"name",
"description",
"targetWindow",
"status",
"adUnitCode",
"adUnitSizes",
"mobilePlatform",
"explicitlyTargeted",
"inheritedAdSenseSettings",
"partnerId",
"appliedLabelFrequencyCaps",
"effectiveLabelFrequencyCaps",
"appliedLabels",
"effectiveAppliedLabels",
"effectiveTeamIds",
"appliedTeamIds",
"lastModifiedDateTime",
"smartSizeMode",
"refreshRate",
"isSharedByDistributor",
"crossSellingDistributor",
"externalSetTopBoxChannelId",
"isSetTopBoxEnabled"
})
public class AdUnit {
protected String id;
protected String parentId;
protected Boolean hasChildren;
protected List<AdUnitParent> parentPath;
protected String name;
protected String description;
@XmlSchemaType(name = "string")
protected AdUnitTargetWindow targetWindow;
@XmlSchemaType(name = "string")
protected InventoryStatus status;
protected String adUnitCode;
protected List<AdUnitSize> adUnitSizes;
@XmlSchemaType(name = "string")
protected MobilePlatform mobilePlatform;
protected Boolean explicitlyTargeted;
protected AdSenseSettingsInheritedProperty inheritedAdSenseSettings;
protected Long partnerId;
protected List<LabelFrequencyCap> appliedLabelFrequencyCaps;
protected List<LabelFrequencyCap> effectiveLabelFrequencyCaps;
protected List<AppliedLabel> appliedLabels;
protected List<AppliedLabel> effectiveAppliedLabels;
@XmlElement(type = Long.class)
protected List<Long> effectiveTeamIds;
@XmlElement(type = Long.class)
protected List<Long> appliedTeamIds;
protected DateTime lastModifiedDateTime;
@XmlSchemaType(name = "string")
protected SmartSizeMode smartSizeMode;
protected Integer refreshRate;
protected Boolean isSharedByDistributor;
protected CrossSellingDistributor crossSellingDistributor;
protected String externalSetTopBoxChannelId;
protected Boolean isSetTopBoxEnabled;
/**
* Gets the value of the id property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getId() {
return id;
}
/**
* Sets the value of the id property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setId(String value) {
this.id = value;
}
/**
* Gets the value of the parentId property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getParentId() {
return parentId;
}
/**
* Sets the value of the parentId property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setParentId(String value) {
this.parentId = value;
}
/**
* Gets the value of the hasChildren property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isHasChildren() {
return hasChildren;
}
/**
* Sets the value of the hasChildren property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setHasChildren(Boolean value) {
this.hasChildren = value;
}
/**
* Gets the value of the parentPath 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 parentPath property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getParentPath().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link AdUnitParent }
*
*
*/
public List<AdUnitParent> getParentPath() {
if (parentPath == null) {
parentPath = new ArrayList<AdUnitParent>();
}
return this.parentPath;
}
/**
* 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 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 targetWindow property.
*
* @return
* possible object is
* {@link AdUnitTargetWindow }
*
*/
public AdUnitTargetWindow getTargetWindow() {
return targetWindow;
}
/**
* Sets the value of the targetWindow property.
*
* @param value
* allowed object is
* {@link AdUnitTargetWindow }
*
*/
public void setTargetWindow(AdUnitTargetWindow value) {
this.targetWindow = value;
}
/**
* Gets the value of the status property.
*
* @return
* possible object is
* {@link InventoryStatus }
*
*/
public InventoryStatus getStatus() {
return status;
}
/**
* Sets the value of the status property.
*
* @param value
* allowed object is
* {@link InventoryStatus }
*
*/
public void setStatus(InventoryStatus value) {
this.status = value;
}
/**
* Gets the value of the adUnitCode property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getAdUnitCode() {
return adUnitCode;
}
/**
* Sets the value of the adUnitCode property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setAdUnitCode(String value) {
this.adUnitCode = value;
}
/**
* Gets the value of the adUnitSizes 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 adUnitSizes property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAdUnitSizes().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link AdUnitSize }
*
*
*/
public List<AdUnitSize> getAdUnitSizes() {
if (adUnitSizes == null) {
adUnitSizes = new ArrayList<AdUnitSize>();
}
return this.adUnitSizes;
}
/**
* Gets the value of the mobilePlatform property.
*
* @return
* possible object is
* {@link MobilePlatform }
*
*/
public MobilePlatform getMobilePlatform() {
return mobilePlatform;
}
/**
* Sets the value of the mobilePlatform property.
*
* @param value
* allowed object is
* {@link MobilePlatform }
*
*/
public void setMobilePlatform(MobilePlatform value) {
this.mobilePlatform = value;
}
/**
* Gets the value of the explicitlyTargeted property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isExplicitlyTargeted() {
return explicitlyTargeted;
}
/**
* Sets the value of the explicitlyTargeted property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setExplicitlyTargeted(Boolean value) {
this.explicitlyTargeted = value;
}
/**
* Gets the value of the inheritedAdSenseSettings property.
*
* @return
* possible object is
* {@link AdSenseSettingsInheritedProperty }
*
*/
public AdSenseSettingsInheritedProperty getInheritedAdSenseSettings() {
return inheritedAdSenseSettings;
}
/**
* Sets the value of the inheritedAdSenseSettings property.
*
* @param value
* allowed object is
* {@link AdSenseSettingsInheritedProperty }
*
*/
public void setInheritedAdSenseSettings(AdSenseSettingsInheritedProperty value) {
this.inheritedAdSenseSettings = value;
}
/**
* Gets the value of the partnerId property.
*
* @return
* possible object is
* {@link Long }
*
*/
public Long getPartnerId() {
return partnerId;
}
/**
* Sets the value of the partnerId property.
*
* @param value
* allowed object is
* {@link Long }
*
*/
public void setPartnerId(Long value) {
this.partnerId = value;
}
/**
* Gets the value of the appliedLabelFrequencyCaps 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 appliedLabelFrequencyCaps property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAppliedLabelFrequencyCaps().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link LabelFrequencyCap }
*
*
*/
public List<LabelFrequencyCap> getAppliedLabelFrequencyCaps() {
if (appliedLabelFrequencyCaps == null) {
appliedLabelFrequencyCaps = new ArrayList<LabelFrequencyCap>();
}
return this.appliedLabelFrequencyCaps;
}
/**
* Gets the value of the effectiveLabelFrequencyCaps 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 effectiveLabelFrequencyCaps property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getEffectiveLabelFrequencyCaps().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link LabelFrequencyCap }
*
*
*/
public List<LabelFrequencyCap> getEffectiveLabelFrequencyCaps() {
if (effectiveLabelFrequencyCaps == null) {
effectiveLabelFrequencyCaps = new ArrayList<LabelFrequencyCap>();
}
return this.effectiveLabelFrequencyCaps;
}
/**
* Gets the value of the appliedLabels 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 appliedLabels property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAppliedLabels().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link AppliedLabel }
*
*
*/
public List<AppliedLabel> getAppliedLabels() {
if (appliedLabels == null) {
appliedLabels = new ArrayList<AppliedLabel>();
}
return this.appliedLabels;
}
/**
* Gets the value of the effectiveAppliedLabels 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 effectiveAppliedLabels property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getEffectiveAppliedLabels().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link AppliedLabel }
*
*
*/
public List<AppliedLabel> getEffectiveAppliedLabels() {
if (effectiveAppliedLabels == null) {
effectiveAppliedLabels = new ArrayList<AppliedLabel>();
}
return this.effectiveAppliedLabels;
}
/**
* Gets the value of the effectiveTeamIds 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 effectiveTeamIds property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getEffectiveTeamIds().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Long }
*
*
*/
public List<Long> getEffectiveTeamIds() {
if (effectiveTeamIds == null) {
effectiveTeamIds = new ArrayList<Long>();
}
return this.effectiveTeamIds;
}
/**
* Gets the value of the appliedTeamIds 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 appliedTeamIds property.
*
* <p>
* For example, to add a new item, do as follows:
* <pre>
* getAppliedTeamIds().add(newItem);
* </pre>
*
*
* <p>
* Objects of the following type(s) are allowed in the list
* {@link Long }
*
*
*/
public List<Long> getAppliedTeamIds() {
if (appliedTeamIds == null) {
appliedTeamIds = new ArrayList<Long>();
}
return this.appliedTeamIds;
}
/**
* 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 smartSizeMode property.
*
* @return
* possible object is
* {@link SmartSizeMode }
*
*/
public SmartSizeMode getSmartSizeMode() {
return smartSizeMode;
}
/**
* Sets the value of the smartSizeMode property.
*
* @param value
* allowed object is
* {@link SmartSizeMode }
*
*/
public void setSmartSizeMode(SmartSizeMode value) {
this.smartSizeMode = value;
}
/**
* Gets the value of the refreshRate property.
*
* @return
* possible object is
* {@link Integer }
*
*/
public Integer getRefreshRate() {
return refreshRate;
}
/**
* Sets the value of the refreshRate property.
*
* @param value
* allowed object is
* {@link Integer }
*
*/
public void setRefreshRate(Integer value) {
this.refreshRate = value;
}
/**
* Gets the value of the isSharedByDistributor property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isIsSharedByDistributor() {
return isSharedByDistributor;
}
/**
* Sets the value of the isSharedByDistributor property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setIsSharedByDistributor(Boolean value) {
this.isSharedByDistributor = value;
}
/**
* Gets the value of the crossSellingDistributor property.
*
* @return
* possible object is
* {@link CrossSellingDistributor }
*
*/
public CrossSellingDistributor getCrossSellingDistributor() {
return crossSellingDistributor;
}
/**
* Sets the value of the crossSellingDistributor property.
*
* @param value
* allowed object is
* {@link CrossSellingDistributor }
*
*/
public void setCrossSellingDistributor(CrossSellingDistributor value) {
this.crossSellingDistributor = value;
}
/**
* Gets the value of the externalSetTopBoxChannelId property.
*
* @return
* possible object is
* {@link String }
*
*/
public String getExternalSetTopBoxChannelId() {
return externalSetTopBoxChannelId;
}
/**
* Sets the value of the externalSetTopBoxChannelId property.
*
* @param value
* allowed object is
* {@link String }
*
*/
public void setExternalSetTopBoxChannelId(String value) {
this.externalSetTopBoxChannelId = value;
}
/**
* Gets the value of the isSetTopBoxEnabled property.
*
* @return
* possible object is
* {@link Boolean }
*
*/
public Boolean isIsSetTopBoxEnabled() {
return isSetTopBoxEnabled;
}
/**
* Sets the value of the isSetTopBoxEnabled property.
*
* @param value
* allowed object is
* {@link Boolean }
*
*/
public void setIsSetTopBoxEnabled(Boolean value) {
this.isSetTopBoxEnabled = value;
}
}