<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated file, do not edit -->
<!-- Copyright 2024 Google Inc. All Rights Reserved -->
<wsdl:definitions
  targetNamespace="https://www.google.com/apis/ads/publisher/v202405"
  xmlns:tns="https://www.google.com/apis/ads/publisher/v202405"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <wsdl:types>
    <schema elementFormDefault="qualified" jaxb:version="1.0"
      targetNamespace="https://www.google.com/apis/ads/publisher/v202405"
      xmlns="http://www.w3.org/2001/XMLSchema"
      xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:tns="https://www.google.com/apis/ads/publisher/v202405">
      <annotation>
        <appinfo>
          <jaxb:globalBindings typesafeEnumMaxMembers="999999"/>
        </appinfo>
      </annotation>
      <complexType abstract="true" name="ObjectValue">
        <annotation>
          <documentation>
            Contains an object value.
            &lt;p&gt;
            &lt;b&gt;This object is experimental!
            &lt;code&gt;ObjectValue&lt;/code&gt; is an experimental, innovative, and rapidly
            changing new feature for Ad Manager. Unfortunately, being on the bleeding edge means that
            we may make backwards-incompatible changes to
            &lt;code&gt;ObjectValue&lt;/code&gt;. We will inform the community when this feature
            is no longer experimental.&lt;/b&gt;
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="AdUnitTargeting">
        <annotation>
          <documentation>
            Represents targeted or excluded ad units.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="adUnitId" type="xsd:string">
            <annotation>
              <documentation>
                Included or excluded ad unit id.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="includeDescendants" type="xsd:boolean">
            <annotation>
              <documentation>
                Whether or not all descendants are included (or excluded) as part of including (or excluding)
                this ad unit. By default, the value is {@code true} which means targeting this ad unit will
                target all of its descendants.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType abstract="true" name="ApiError">
        <annotation>
          <documentation>
            The API error base class that provides details about an error that occurred
            while processing a service request.
            
            &lt;p&gt;The OGNL field path is provided for parsers to identify the request data
            element that may have caused the error.&lt;/p&gt;
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="fieldPath" type="xsd:string">
            <annotation>
              <documentation>
                The OGNL field path to identify cause of error.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="fieldPathElements" type="tns:FieldPathElement">
            <annotation>
              <documentation>
                A parsed copy of the field path. For example, the field path "operations[1].operand"
                corresponds to this list: {FieldPathElement(field = "operations", index = 1),
                FieldPathElement(field = "operand", index = null)}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="trigger" type="xsd:string">
            <annotation>
              <documentation>
                The data that caused the error.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="errorString" type="xsd:string">
            <annotation>
              <documentation>
                A simple string representation of the error and reason.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="ApiException">
        <annotation>
          <documentation>
            Exception class for holding a list of service errors.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApplicationException">
            <sequence>
              <element maxOccurs="unbounded" minOccurs="0" name="errors" type="tns:ApiError">
                <annotation>
                  <documentation>
                    List of errors.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="TechnologyTargeting">
        <annotation>
          <documentation>
            Provides {@link LineItem} objects the ability to target or exclude technologies.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0"
            name="bandwidthGroupTargeting" type="tns:BandwidthGroupTargeting">
            <annotation>
              <documentation>
                The bandwidth groups being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="browserTargeting" type="tns:BrowserTargeting">
            <annotation>
              <documentation>
                The browsers being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="browserLanguageTargeting" type="tns:BrowserLanguageTargeting">
            <annotation>
              <documentation>
                The languages of browsers being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="deviceCapabilityTargeting" type="tns:DeviceCapabilityTargeting">
            <annotation>
              <documentation>
                The device capabilities being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="deviceCategoryTargeting" type="tns:DeviceCategoryTargeting">
            <annotation>
              <documentation>
                The device categories being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="deviceManufacturerTargeting" type="tns:DeviceManufacturerTargeting">
            <annotation>
              <documentation>
                The device manufacturers being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="mobileCarrierTargeting" type="tns:MobileCarrierTargeting">
            <annotation>
              <documentation>
                The mobile carriers being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="mobileDeviceTargeting" type="tns:MobileDeviceTargeting">
            <annotation>
              <documentation>
                The mobile devices being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="mobileDeviceSubmodelTargeting" type="tns:MobileDeviceSubmodelTargeting">
            <annotation>
              <documentation>
                The mobile device submodels being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="operatingSystemTargeting" type="tns:OperatingSystemTargeting">
            <annotation>
              <documentation>
                The operating systems being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="operatingSystemVersionTargeting" type="tns:OperatingSystemVersionTargeting">
            <annotation>
              <documentation>
                The operating system versions being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="ApiVersionError">
        <annotation>
          <documentation>
            Errors related to the usage of API versions.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:ApiVersionError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="ApplicationException">
        <annotation>
          <documentation>
            Base class for exceptions.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="message" type="xsd:string">
            <annotation>
              <documentation>
                Error message.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="AuthenticationError">
        <annotation>
          <documentation>
            An error for an exception that occurred when authenticating.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:AuthenticationError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="BandwidthGroup">
        <annotation>
          <documentation>
            Represents a group of bandwidths that are logically organized by some well known generic names
            such as 'Cable' or 'DSL'.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="BandwidthGroupTargeting">
        <annotation>
          <documentation>
            Represents bandwidth groups that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether bandwidth groups should be targeted or excluded. This attribute is optional
                and defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="bandwidthGroups" type="tns:Technology">
            <annotation>
              <documentation>
                The bandwidth groups that are being targeted or excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="BooleanValue">
        <annotation>
          <documentation>
            Contains a boolean value.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="value" type="xsd:boolean">
                <annotation>
                  <documentation>
                    The boolean value.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="Browser">
        <annotation>
          <documentation>
            Represents an internet browser.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="majorVersion" type="xsd:string">
                <annotation>
                  <documentation>
                    Browser major version.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="1" minOccurs="0" name="minorVersion" type="xsd:string">
                <annotation>
                  <documentation>
                    Browser minor version.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="BrowserLanguage">
        <annotation>
          <documentation>
            Represents a Browser's language.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="BrowserLanguageTargeting">
        <annotation>
          <documentation>
            Represents browser languages that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether browsers languages should be targeted or excluded. This attribute is optional
                and defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="browserLanguages" type="tns:Technology">
            <annotation>
              <documentation>
                Browser languages that are being targeted or excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="BrowserTargeting">
        <annotation>
          <documentation>
            Represents browsers that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether browsers should be targeted or excluded. This attribute is optional and
                defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="browsers" type="tns:Technology">
            <annotation>
              <documentation>
                Browsers that are being targeted or excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="BuyerUserListTargeting">
        <annotation>
          <documentation>
            The {@code BuyerUserListTargeting} associated with a programmatic {@link LineItem} or {@link
            ProposalLineItem} object.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0"
            name="hasBuyerUserListTargeting" type="xsd:boolean">
            <annotation>
              <documentation>
                Whether the programmatic {@code LineItem} or {@code ProposalLineItem} object has buyer user
                list targeting.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="CollectionSizeError">
        <annotation>
          <documentation>
            Error for the size of the collection being too large
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:CollectionSizeError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="CommonError">
        <annotation>
          <documentation>
            A place for common errors that can be used across services.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:CommonError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="ContentTargeting">
        <annotation>
          <documentation>
            Used to target {@link LineItem}s to specific videos on a publisher's site.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedContentIds" type="xsd:long">
            <annotation>
              <documentation>
                The IDs of content being targeted by the {@code LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedContentIds" type="xsd:long">
            <annotation>
              <documentation>
                The IDs of content being excluded by the {@code LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedVideoContentBundleIds" type="xsd:long">
            <annotation>
              <documentation>
                A list of video content bundles, represented by {@link ContentBundle} IDs, that are being
                targeted by the {@code LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedVideoContentBundleIds" type="xsd:long">
            <annotation>
              <documentation>
                A list of video content bundles, represented by {@link ContentBundle} IDs, that are being
                excluded by the {@code LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="CustomCriteria">
        <annotation>
          <documentation>
            A {@link CustomCriteria} object is used to perform custom criteria targeting on custom targeting
            keys of type {@link CustomTargetingKey.Type#PREDEFINED} or {@link
            CustomTargetingKey.Type#FREEFORM}.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:CustomCriteriaLeaf">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="keyId" type="xsd:long">
                <annotation>
                  <documentation>
                    The {@link CustomTargetingKey#id} of the {@link CustomTargetingKey} object that was created
                    using {@link CustomTargetingService}. This attribute is required.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="unbounded" minOccurs="0"
                name="valueIds" type="xsd:long">
                <annotation>
                  <documentation>
                    The ids of {@link CustomTargetingValue} objects to target the custom targeting key with id
                    {@link CustomCriteria#keyId}. This attribute is required.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="1" minOccurs="0" name="operator" type="tns:CustomCriteria.ComparisonOperator">
                <annotation>
                  <documentation>
                    The comparison operator. This attribute is required.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="CustomCriteriaSet">
        <annotation>
          <documentation>
            A {@link CustomCriteriaSet} comprises of a set of {@link CustomCriteriaNode} objects combined by
            the {@link CustomCriteriaSet.LogicalOperator#logicalOperator}. The custom criteria targeting tree
            is subject to the rules defined on {@link Targeting#customTargeting}.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:CustomCriteriaNode">
            <sequence>
              <element maxOccurs="1" minOccurs="0"
                name="logicalOperator" type="tns:CustomCriteriaSet.LogicalOperator">
                <annotation>
                  <documentation>
                    The logical operator to be applied to {@link CustomCriteriaSet#children}. This attribute is
                    required.
                    &lt;span class="constraint Required"&gt;This attribute is required.&lt;/span&gt;
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="unbounded" minOccurs="0"
                name="children" type="tns:CustomCriteriaNode">
                <annotation>
                  <documentation>
                    The custom criteria. This attribute is required.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="CmsMetadataCriteria">
        <annotation>
          <documentation>
            A {@code CmsMetadataCriteria} object is used to target {@code CmsMetadataValue} objects.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:CustomCriteriaLeaf">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="operator" type="tns:CmsMetadataCriteria.ComparisonOperator">
                <annotation>
                  <documentation>
                    The comparison operator. This attribute is required.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="unbounded" minOccurs="0"
                name="cmsMetadataValueIds" type="xsd:long">
                <annotation>
                  <documentation>
                    The ids of {@link CmsMetadataValue} objects used to target CMS metadata. This attribute is
                    required.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="CustomTargetingError">
        <annotation>
          <documentation>
            Lists all errors related to {@link CustomTargetingKey} and
            {@link CustomTargetingValue} objects.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:CustomTargetingError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType abstract="true" name="CustomCriteriaLeaf">
        <annotation>
          <documentation>
            A {@link CustomCriteriaLeaf} object represents a generic leaf of {@link CustomCriteria} tree
            structure.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:CustomCriteriaNode">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType abstract="true" name="CustomCriteriaNode">
        <annotation>
          <documentation>
            A {@link CustomCriteriaNode} is a node in the custom targeting tree. A custom criteria node can
            either be a {@link CustomCriteriaSet} (a non-leaf node) or a {@link CustomCriteria} (a leaf
            node). The custom criteria targeting tree is subject to the rules defined on {@link
            Targeting#customTargeting}.
          </documentation>
        </annotation>
        <sequence/>
      </complexType>
      <complexType name="AudienceSegmentCriteria">
        <annotation>
          <documentation>
            An {@link AudienceSegmentCriteria} object is used to target {@link AudienceSegment} objects.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:CustomCriteriaLeaf">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="operator" type="tns:AudienceSegmentCriteria.ComparisonOperator">
                <annotation>
                  <documentation>
                    The comparison operator. This attribute is required.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="unbounded" minOccurs="0"
                name="audienceSegmentIds" type="xsd:long">
                <annotation>
                  <documentation>
                    The ids of {@link AudienceSegment} objects used to target audience segments. This attribute is
                    required.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="Date">
        <annotation>
          <documentation>
            Represents a date.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="year" type="xsd:int">
            <annotation>
              <documentation>
                Year (e.g., 2009)
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="month" type="xsd:int">
            <annotation>
              <documentation>
                Month (1..12)
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="day" type="xsd:int">
            <annotation>
              <documentation>
                Day (1..31)
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="DateTime">
        <annotation>
          <documentation>
            Represents a date combined with the time of day.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="date" type="tns:Date"/>
          <element maxOccurs="1" minOccurs="0" name="hour" type="xsd:int"/>
          <element maxOccurs="1" minOccurs="0" name="minute" type="xsd:int"/>
          <element maxOccurs="1" minOccurs="0" name="second" type="xsd:int"/>
          <element maxOccurs="1" minOccurs="0" name="timeZoneId" type="xsd:string"/>
        </sequence>
      </complexType>
      <complexType name="DateTimeRange">
        <annotation>
          <documentation>
            Represents a range of dates (combined with time of day) that has an upper and/or lower bound.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="startDateTime" type="tns:DateTime">
            <annotation>
              <documentation>
                The start date time of this range. This field is optional and if it is not set then there is no
                lower bound on the date time range. If this field is not set then {@code endDateTime} must be
                specified.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="endDateTime" type="tns:DateTime">
            <annotation>
              <documentation>
                The end date time of this range. This field is optional and if it is not set then there is no
                upper bound on the date time range. If this field is not set then {@code startDateTime} must be
                specified.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="DateTimeRangeTargeting">
        <annotation>
          <documentation>
            The date time ranges that the line item is eligible to serve.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedDateTimeRanges" type="tns:DateTimeRange"/>
        </sequence>
      </complexType>
      <complexType name="DateTimeRangeTargetingError">
        <annotation>
          <documentation>
            Lists all date time range errors caused by associating a line item with a targeting
            expression.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:DateTimeRangeTargetingError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DateTimeValue">
        <annotation>
          <documentation>
            Contains a date-time value.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="value" type="tns:DateTime">
                <annotation>
                  <documentation>
                    The {@code DateTime} value.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DateValue">
        <annotation>
          <documentation>
            Contains a date value.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="value" type="tns:Date">
                <annotation>
                  <documentation>
                    The {@code Date} value.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DayPart">
        <annotation>
          <documentation>
            {@code DayPart} represents a time-period within a day of the week which is
            targeted by a {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="dayOfWeek" type="tns:DayOfWeek">
            <annotation>
              <documentation>
                Day of the week the target applies to. This field is required.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="startTime" type="tns:TimeOfDay">
            <annotation>
              <documentation>
                Represents the start time of the targeted period (inclusive).
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="endTime" type="tns:TimeOfDay">
            <annotation>
              <documentation>
                Represents the end time of the targeted period (exclusive).
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="DayPartTargeting">
        <annotation>
          <documentation>
            Modify the delivery times of line items for particular days of the week. By default, line items
            are served at all days and times.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0" name="dayParts" type="tns:DayPart">
            <annotation>
              <documentation>
                Specifies days of the week and times at which a {@code LineItem} will be delivered.
                
                &lt;p&gt;If targeting all days and times, this value will be ignored.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="timeZone" type="tns:DeliveryTimeZone">
            <annotation>
              <documentation>
                Specifies the time zone to be used for delivering {@link LineItem} objects. This attribute is
                optional and defaults to {@link DeliveryTimeZone#BROWSER}.
                
                &lt;p&gt;Setting this has no effect if targeting all days and times.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="DayPartTargetingError">
        <annotation>
          <documentation>
            Lists all errors associated with day-part targeting for a line item.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:DayPartTargetingError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DeviceCapability">
        <annotation>
          <documentation>
            Represents a capability of a physical device.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DeviceCapabilityTargeting">
        <annotation>
          <documentation>
            Represents device capabilities that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedDeviceCapabilities" type="tns:Technology">
            <annotation>
              <documentation>
                Device capabilities that are being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedDeviceCapabilities" type="tns:Technology">
            <annotation>
              <documentation>
                Device capabilities that are being excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="DeviceCategory">
        <annotation>
          <documentation>
            Represents the category of a device.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DeviceCategoryTargeting">
        <annotation>
          <documentation>
            Represents device categories that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedDeviceCategories" type="tns:Technology">
            <annotation>
              <documentation>
                Device categories that are being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedDeviceCategories" type="tns:Technology">
            <annotation>
              <documentation>
                Device categories that are being excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="DeviceManufacturer">
        <annotation>
          <documentation>
            Represents a mobile device's manufacturer.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="DeviceManufacturerTargeting">
        <annotation>
          <documentation>
            Represents device manufacturer that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether device manufacturers should be targeted or excluded. This attribute is
                optional and defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="deviceManufacturers" type="tns:Technology">
            <annotation>
              <documentation>
                Device manufacturers that are being targeted or excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="EntityChildrenLimitReachedError">
        <annotation>
          <documentation>
            Lists errors relating to having too many children on an entity.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:EntityChildrenLimitReachedError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="FeatureError">
        <annotation>
          <documentation>
            Errors related to feature management.  If you attempt using a feature that is not available to
            the current network you'll receive a FeatureError with the missing feature as the trigger.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:FeatureError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="FieldPathElement">
        <annotation>
          <documentation>
            A segment of a field path. Each dot in a field path defines a new segment.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="field" type="xsd:string">
            <annotation>
              <documentation>
                The name of a field in lower camelcase. (e.g. "biddingStrategy")
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="index" type="xsd:int">
            <annotation>
              <documentation>
                For list fields, this is a 0-indexed position in the list. Null for non-list fields.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="GenericTargetingError">
        <annotation>
          <documentation>
            Targeting validation errors that can be used by different targeting types.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:GenericTargetingError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="GeoTargeting">
        <annotation>
          <documentation>
            Provides line items the ability to target geographical locations. By default, line items target
            all countries and their subdivisions. With geographical targeting, you can target line items to
            specific countries, regions, metro areas, and cities. You can also exclude the same.
            
            &lt;p&gt;The following rules apply for geographical targeting:
            
            &lt;ul&gt;
            &lt;li&gt;You cannot target and exclude the same location.
            &lt;li&gt;You cannot target a child whose parent has been excluded. For example, if the state of
            Illinois has been excluded, then you cannot target Chicago.
            &lt;li&gt;You must not target a location if you are also targeting its parent. For example, if you
            are targeting New York City, you must not have the state of New York as one of the targeted
            locations.
            &lt;li&gt;You cannot explicitly define inclusions or exclusions that are already implicit. For
            example, if you explicitly include California, you implicitly exclude all other states. You
            therefore cannot explicitly exclude Florida, because it is already implicitly excluded.
            Conversely if you explicitly exclude Florida, you cannot explicitly include California.
            &lt;/ul&gt;
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedLocations" type="tns:Location">
            <annotation>
              <documentation>
                The geographical locations being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedLocations" type="tns:Location">
            <annotation>
              <documentation>
                The geographical locations being excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="GeoTargetingError">
        <annotation>
          <documentation>
            Lists all errors associated with geographical targeting for a
            {@link LineItem}.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:GeoTargetingError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="InternalApiError">
        <annotation>
          <documentation>
            Indicates that a server-side error has occured. {@code InternalApiError}s
            are generally not the result of an invalid request or message sent by the
            client.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:InternalApiError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="InventorySizeTargeting">
        <annotation>
          <documentation>
            Represents a collection of targeted and excluded inventory sizes. This is currently only
            available on {@link YieldGroup} and {@link TrafficDataRequest}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Whether the inventory sizes should be targeted or excluded.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedSizes" type="tns:TargetedSize">
            <annotation>
              <documentation>
                A list of {@link TargetedSizeDto}s.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="InventoryTargeting">
        <annotation>
          <documentation>
            A collection of targeted and excluded ad units and placements.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedAdUnits" type="tns:AdUnitTargeting">
            <annotation>
              <documentation>
                A list of targeted {@link AdUnitTargeting}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedAdUnits" type="tns:AdUnitTargeting">
            <annotation>
              <documentation>
                A list of excluded {@link AdUnitTargeting}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedPlacementIds" type="xsd:long">
            <annotation>
              <documentation>
                A list of targeted {@link Placement} ids.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="InventoryTargetingError">
        <annotation>
          <documentation>
            Lists all inventory errors caused by associating a line item with a targeting
            expression.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:InventoryTargetingError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="InventoryUrl">
        <annotation>
          <documentation>
            The representation of an inventory Url that is used in targeting.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="id" type="xsd:long"/>
        </sequence>
      </complexType>
      <complexType name="InventoryUrlTargeting">
        <annotation>
          <documentation>
            A collection of targeted inventory urls.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedUrls" type="tns:InventoryUrl"/>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedUrls" type="tns:InventoryUrl"/>
        </sequence>
      </complexType>
      <complexType name="Location">
        <annotation>
          <documentation>
            A {@link Location} represents a geographical entity that can be targeted. If a location type is
            not available because of the API version you are using, the location will be represented as just
            the base class, otherwise it will be sub-classed correctly.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="id" type="xsd:long">
            <annotation>
              <documentation>
                Uniquely identifies each {@code Location}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="type" type="xsd:string">
            <annotation>
              <documentation>
                The location type for this geographical entity (ex. "COUNTRY", "CITY", "STATE", "COUNTY", etc.)
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="canonicalParentId" type="xsd:int">
            <annotation>
              <documentation>
                The nearest location parent's ID for this geographical entity.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="displayName" type="xsd:string">
            <annotation>
              <documentation>
                The localized name of the geographical entity.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="MobileApplicationTargeting">
        <annotation>
          <documentation>
            Provides line items the ability to target or exclude users' mobile applications.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="mobileApplicationIds" type="xsd:long">
            <annotation>
              <documentation>
                The {@link MobileApplication#applicationId IDs} that are being targeted or excluded by the
                {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether mobile apps should be targeted or excluded. This attribute is optional and
                defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="MobileApplicationTargetingError">
        <annotation>
          <documentation>
            Lists all errors related to mobile application targeting for a line item.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:MobileApplicationTargetingError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="MobileCarrier">
        <annotation>
          <documentation>
            Represents a mobile carrier. Carrier targeting is only available to Ad Manager mobile publishers.
            For a list of current mobile carriers, you can use {@link
            PublisherQueryLanguageService#mobile_carrier}.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="MobileCarrierTargeting">
        <annotation>
          <documentation>
            Represents mobile carriers that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether mobile carriers should be targeted or excluded. This attribute is optional
                and defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="mobileCarriers" type="tns:Technology">
            <annotation>
              <documentation>
                Mobile carriers that are being targeted or excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="MobileDevice">
        <annotation>
          <documentation>
            Represents a Mobile Device.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence>
              <element maxOccurs="1" minOccurs="0"
                name="manufacturerCriterionId" type="xsd:long">
                <annotation>
                  <documentation>
                    Manufacturer Id.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="MobileDeviceSubmodel">
        <annotation>
          <documentation>
            Represents a mobile device submodel.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence>
              <element maxOccurs="1" minOccurs="0"
                name="mobileDeviceCriterionId" type="xsd:long">
                <annotation>
                  <documentation>
                    The mobile device id.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="1" minOccurs="0"
                name="deviceManufacturerCriterionId" type="xsd:long">
                <annotation>
                  <documentation>
                    The device manufacturer id.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="MobileDeviceSubmodelTargeting">
        <annotation>
          <documentation>
            Represents mobile devices that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedMobileDeviceSubmodels" type="tns:Technology">
            <annotation>
              <documentation>
                Mobile device submodels that are being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedMobileDeviceSubmodels" type="tns:Technology">
            <annotation>
              <documentation>
                Mobile device submodels that are being excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="MobileDeviceTargeting">
        <annotation>
          <documentation>
            Represents mobile devices that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedMobileDevices" type="tns:Technology">
            <annotation>
              <documentation>
                Mobile devices that are being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedMobileDevices" type="tns:Technology">
            <annotation>
              <documentation>
                Mobile devices that are being excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="NotNullError">
        <annotation>
          <documentation>
            Caused by supplying a null value for an attribute that cannot be null.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:NotNullError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="NumberValue">
        <annotation>
          <documentation>
            Contains a numeric value.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="value" type="xsd:string">
                <annotation>
                  <documentation>
                    The numeric value represented as a string.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="OperatingSystem">
        <annotation>
          <documentation>
            Represents an Operating System, such as Linux, Mac OS or Windows.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="OperatingSystemTargeting">
        <annotation>
          <documentation>
            Represents operating systems that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="isTargeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether operating systems should be targeted or excluded. This attribute is optional
                and defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="operatingSystems" type="tns:Technology">
            <annotation>
              <documentation>
                Operating systems that are being targeted or excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="OperatingSystemVersion">
        <annotation>
          <documentation>
            Represents a specific version of an operating system.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Technology">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="majorVersion" type="xsd:int">
                <annotation>
                  <documentation>
                    The operating system major version.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="1" minOccurs="0" name="minorVersion" type="xsd:int">
                <annotation>
                  <documentation>
                    The operating system minor version.
                  </documentation>
                </annotation>
              </element>
              <element maxOccurs="1" minOccurs="0" name="microVersion" type="xsd:int">
                <annotation>
                  <documentation>
                    The operating system micro version.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="OperatingSystemVersionTargeting">
        <annotation>
          <documentation>
            Represents operating system versions that are being targeted or excluded by the {@link LineItem}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedOperatingSystemVersions" type="tns:Technology">
            <annotation>
              <documentation>
                Operating system versions that are being targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0"
            name="excludedOperatingSystemVersions" type="tns:Technology">
            <annotation>
              <documentation>
                Operating system versions that are being excluded by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="ParseError">
        <annotation>
          <documentation>
            Lists errors related to parsing.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:ParseError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="PermissionError">
        <annotation>
          <documentation>
            Errors related to incorrect permission.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:PermissionError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="PublisherQueryLanguageContextError">
        <annotation>
          <documentation>
            An error that occurs while executing a PQL query contained in
            a {@link Statement} object.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:PublisherQueryLanguageContextError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="PublisherQueryLanguageSyntaxError">
        <annotation>
          <documentation>
            An error that occurs while parsing a PQL query contained in a
            {@link Statement} object.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:PublisherQueryLanguageSyntaxError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="QuotaError">
        <annotation>
          <documentation>
            Describes a client-side error on which a user is attempting
            to perform an action to which they have no quota remaining.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:QuotaError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="RequestPlatformTargeting">
        <annotation>
          <documentation>
            Provides line items the ability to target the platform that requests and renders the ad.
            
            &lt;p&gt;The following rules apply for {@link RequestPlatformTargeting}
            
            &lt;ul&gt;
            &lt;li&gt;{@link RequestPlatformTargeting} must be specified for {@link ProposalLineItem}s.
            &lt;li&gt;{@link RequestPlatformTargeting} must be specified for video line items. Empty values for
            {@link RequestPlatformTargeting#targetedRequestPlatforms} mean that all request platforms
            will be targeted.
            &lt;li&gt;{@link RequestPlatformTargeting} is read-only and assigned by Google for non-video line
            items.
            &lt;li&gt;{@link RequestPlatformTargeting} is read-only and assigned by Google for line items
            generated from proposal line items.
            &lt;/ul&gt;
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedRequestPlatforms" type="tns:RequestPlatform"/>
        </sequence>
      </complexType>
      <complexType name="RequestPlatformTargetingError">
        <annotation>
          <documentation>
            Errors related to request platform targeting.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:RequestPlatformTargetingError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="RequiredCollectionError">
        <annotation>
          <documentation>
            A list of all errors to be used for validating sizes of collections.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:RequiredCollectionError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="RequiredError">
        <annotation>
          <documentation>
            Errors due to missing required field.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:RequiredError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="ServerError">
        <annotation>
          <documentation>
            Errors related to the server.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:ServerError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="SetValue">
        <annotation>
          <documentation>
            Contains a set of {@link Value Values}. May not contain duplicates.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence>
              <element maxOccurs="unbounded" minOccurs="0" name="values" type="tns:Value">
                <annotation>
                  <documentation>
                    The values. They must all be the same type of {@code Value} and not contain duplicates.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="Size">
        <annotation>
          <documentation>
            Represents the dimensions of an {@link AdUnit}, {@link LineItem} or {@link Creative}.
            
            &lt;p&gt;For interstitial size (out-of-page), native, ignored and fluid size, {@link Size} must be 1x1.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="width" type="xsd:int">
            <annotation>
              <documentation>
                The width of the {@link AdUnit}, {@link LineItem} or {@link Creative}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="height" type="xsd:int">
            <annotation>
              <documentation>
                The height of the {@link AdUnit}, {@link LineItem} or {@link Creative}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="isAspectRatio" type="xsd:boolean">
            <annotation>
              <documentation>
                Whether this size represents an aspect ratio.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="SoapRequestHeader">
        <annotation>
          <documentation>
            Represents the SOAP request header used by API requests.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="networkCode" type="xsd:string">
            <annotation>
              <documentation>
                The network code to use in the context of a request.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="applicationName" type="xsd:string">
            <annotation>
              <documentation>
                The name of client library application.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="SoapResponseHeader">
        <annotation>
          <documentation>
            Represents the SOAP request header used by API responses.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="requestId" type="xsd:string"/>
          <element maxOccurs="1" minOccurs="0" name="responseTime" type="xsd:long"/>
        </sequence>
      </complexType>
      <complexType name="Statement">
        <annotation>
          <documentation>
            Captures the {@code WHERE}, {@code ORDER BY} and {@code LIMIT} clauses of a
            PQL query. Statements are typically used to retrieve objects of a predefined
            domain type, which makes SELECT clause unnecessary.
            &lt;p&gt;
            An example query text might be {@code "WHERE status = 'ACTIVE' ORDER BY id
            LIMIT 30"}.
            &lt;/p&gt;
            &lt;p&gt;
            Statements support bind variables. These are substitutes for literals
            and can be thought of as input parameters to a PQL query.
            &lt;/p&gt;
            &lt;p&gt;
            An example of such a query might be {@code "WHERE id = :idValue"}.
            &lt;/p&gt;
            &lt;p&gt;
            Statements also support use of the LIKE keyword. This provides wildcard string matching.
            &lt;/p&gt;
            &lt;p&gt;
            An example of such a query might be {@code "WHERE name LIKE '%searchString%'"}.
            &lt;/p&gt;
            The value for the variable idValue must then be set with an object of type
            {@link Value}, e.g., {@link NumberValue}, {@link TextValue} or
            {@link BooleanValue}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="query" type="xsd:string">
            <annotation>
              <documentation>
                Holds the query in PQL syntax. The syntax is:&lt;br&gt;
                &lt;code&gt;[WHERE &lt;condition&gt; {[AND | OR] &lt;condition&gt; ...}]&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;[ORDER BY &lt;property&gt; [ASC | DESC]]&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;[LIMIT {[&lt;offset&gt;,] &lt;count&gt;} | {&lt;count&gt; OFFSET &lt;offset&gt;}]&lt;/code&gt;&lt;br&gt;
                &lt;p&gt;
                &lt;code&gt;&lt;condition&gt;&lt;/code&gt;&lt;br&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
                &lt;code&gt;:= &lt;property&gt; {&lt; | &lt;= | &gt; | &gt;= | = | != } &lt;value&gt;&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;&lt;condition&gt;&lt;/code&gt;&lt;br&gt;
                &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
                &lt;code&gt;:= &lt;property&gt; {&lt; | &lt;= | &gt; | &gt;= | = | != } &lt;bind variable&gt;&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;&lt;condition&gt; := &lt;property&gt; IN &lt;list&gt;&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;&lt;condition&gt; := &lt;property&gt; IS NULL&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;&lt;condition&gt; := &lt;property&gt; LIKE &lt;wildcard%match&gt;&lt;/code&gt;&lt;br&gt;
                &lt;code&gt;&lt;bind variable&gt; := :&lt;name&gt;&lt;/code&gt;&lt;br&gt;
                &lt;/p&gt;
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="values" type="tns:String_ValueMapEntry">
            <annotation>
              <documentation>
                Holds keys and values for bind variables and their values. The key is the
                name of the bind variable. The value is the literal value of the variable.
                &lt;p&gt;
                In the example {@code "WHERE status = :bindStatus ORDER BY id LIMIT 30"},
                the bind variable, represented by {@code :bindStatus} is named {@code
                bindStatus}, which would also be the parameter map key. The bind variable's
                value would be represented by a parameter map value of type
                {@link TextValue}. The final result, for example, would be an entry of
                {@code "bindStatus" =&gt; StringParam("ACTIVE")}.
                &lt;/p&gt;
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="StatementError">
        <annotation>
          <documentation>
            An error that occurs while parsing {@link Statement} objects.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:StatementError.Reason">
                <annotation>
                  <documentation>
                    The error reason represented by an enum.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="StringFormatError">
        <annotation>
          <documentation>
            A list of error code for reporting invalid content of input strings.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:StringFormatError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="StringLengthError">
        <annotation>
          <documentation>
            Errors for Strings which do not meet given length constraints.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:StringLengthError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="String_ValueMapEntry">
        <annotation>
          <documentation>
            This represents an entry in a map with a key of type String
            and value of type Value.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="key" type="xsd:string"/>
          <element maxOccurs="1" minOccurs="0" name="value" type="tns:Value"/>
        </sequence>
      </complexType>
      <complexType name="TargetedSize">
        <annotation>
          <documentation>
            A size that is targeted on a request.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="size" type="tns:Size"/>
        </sequence>
      </complexType>
      <complexType name="Targeting">
        <annotation>
          <documentation>
            Contains targeting criteria for {@link LineItem} objects. See {@link LineItem#targeting}.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="geoTargeting" type="tns:GeoTargeting">
            <annotation>
              <documentation>
                Specifies what geographical locations are targeted by the {@link LineItem}. This attribute is
                optional.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="inventoryTargeting" type="tns:InventoryTargeting">
            <annotation>
              <documentation>
                Specifies what inventory is targeted by the {@link LineItem}. This attribute is required. The
                line item must target at least one ad unit or placement.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="dayPartTargeting" type="tns:DayPartTargeting">
            <annotation>
              <documentation>
                Specifies the days of the week and times that are targeted by the {@link LineItem}. This
                attribute is optional.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="dateTimeRangeTargeting" type="tns:DateTimeRangeTargeting">
            <annotation>
              <documentation>
                Specifies the dates and time ranges that are targeted by the {@link LineItem}. This attribute
                is optional.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="technologyTargeting" type="tns:TechnologyTargeting">
            <annotation>
              <documentation>
                Specifies the browsing technologies that are targeted by the {@link LineItem}. This attribute
                is optional.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="customTargeting" type="tns:CustomCriteriaSet">
            <annotation>
              <documentation>
                Specifies the collection of custom criteria that is targeted by the {@link LineItem}.
                
                &lt;p&gt;Once the {@link LineItem} is updated or modified with custom targeting, the server may
                return a normalized, but equivalent representation of the custom targeting expression.
                
                &lt;p&gt;{@code customTargeting} will have up to three levels of expressions including itself.
                
                &lt;p&gt;The top level {@code CustomCriteriaSet} i.e. the {@code customTargeting} object can only
                contain a {@link CustomCriteriaSet.LogicalOperator#OR} of all its children.
                
                &lt;p&gt;The second level of {@code CustomCriteriaSet} objects can only contain {@link
                CustomCriteriaSet.LogicalOperator#AND} of all their children. If a {@link CustomCriteria} is
                placed on this level, the server will wrap it in a {@link CustomCriteriaSet}.
                
                &lt;p&gt;The third level can only comprise of {@link CustomCriteria} objects.
                
                &lt;p&gt;The resulting custom targeting tree would be of the form: &lt;br&gt;
                &lt;img
                src="https://chart.apis.google.com/chart?cht=gv&amp;chl=digraph{customTargeting_LogicalOperator_OR-%3ECustomCriteriaSet_LogicalOperator_AND_1-%3ECustomCriteria_1;CustomCriteriaSet_LogicalOperator_AND_1-%3Eellipsis1;customTargeting_LogicalOperator_OR-%3Eellipsis2;ellipsis1[label=%22...%22,shape=none,fontsize=32];ellipsis2[label=%22...%22,shape=none,fontsize=32]}&amp;chs=450x200"/&gt;
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="userDomainTargeting" type="tns:UserDomainTargeting">
            <annotation>
              <documentation>
                Specifies the domains or subdomains that are targeted or excluded by the {@link LineItem}.
                Users visiting from an IP address associated with those domains will be targeted or excluded.
                This attribute is optional.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="contentTargeting" type="tns:ContentTargeting">
            <annotation>
              <documentation>
                Specifies the video categories and individual videos targeted by the {@link LineItem}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="videoPositionTargeting" type="tns:VideoPositionTargeting">
            <annotation>
              <documentation>
                Specifies targeting against video position types.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="mobileApplicationTargeting" type="tns:MobileApplicationTargeting">
            <annotation>
              <documentation>
                Specifies targeting against mobile applications.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="buyerUserListTargeting" type="tns:BuyerUserListTargeting">
            <annotation>
              <documentation>
                Specifies whether buyer user lists are targeted on a programmatic {@link LineItem} or {@link
                ProposalLineItem}. This attribute is readonly and is populated by Google.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="inventoryUrlTargeting" type="tns:InventoryUrlTargeting">
            <annotation>
              <documentation>
                Specifies the URLs that are targeted by the entity. This is currently only supported by {@link
                YieldGroup}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="requestPlatformTargeting" type="tns:RequestPlatformTargeting">
            <annotation>
              <documentation>
                Specifies the request platforms that are targeted by the {@link LineItem}. This attribute is
                required for video line items and for {@link ProposalLineItem}.
                
                &lt;p&gt;This value is modifiable for video line items, but read-only for non-video line items.
                
                &lt;p&gt;This value is read-only for video line items generated from proposal line items.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="inventorySizeTargeting" type="tns:InventorySizeTargeting">
            <annotation>
              <documentation>
                Specifies the sizes that are targeted by the entity. This is currently only supported on {@link
                YieldGroup} and {@link TrafficDataRequest}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="TargetingPreset">
        <annotation>
          <documentation>
            User-defined preset targeting criteria.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="id" type="xsd:long">
            <annotation>
              <documentation>
                The unique ID of the {@code TargetingPreset}. This value is readonly and is assigned by Google.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="name" type="xsd:string">
            <annotation>
              <documentation>
                The name of the {@code TargetingPreset}. This value is required to create a targeting preset
                and has a maximum length of 255 characters.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="targeting" type="tns:Targeting">
            <annotation>
              <documentation>
                Contains the targeting criteria for the {@code TargetingPreset}. This attribute is required.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="TargetingPresetPage">
        <annotation>
          <documentation>
            Captures a paged query of {@link TargetingPresetDto} objects.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="totalResultSetSize" type="xsd:int">
            <annotation>
              <documentation>
                The size of the total result set to which this page belongs.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="startIndex" type="xsd:int">
            <annotation>
              <documentation>
                The absolute index in the total result set on which this page begins.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="unbounded" minOccurs="0" name="results" type="tns:TargetingPreset">
            <annotation>
              <documentation>
                The collection of line items contained within this page.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="Technology">
        <annotation>
          <documentation>
            Represents a technology entity that can be targeted.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="id" type="xsd:long">
            <annotation>
              <documentation>
                The unique ID of the {@code Technology}. This value is required for all forms of {@code
                TechnologyTargeting}.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="name" type="xsd:string">
            <annotation>
              <documentation>
                The name of the technology being targeting. This value is read-only and is assigned by Google.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="TechnologyTargetingError">
        <annotation>
          <documentation>
            Technology targeting validation errors.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:TechnologyTargetingError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="TextValue">
        <annotation>
          <documentation>
            Contains a string value.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:Value">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="value" type="xsd:string">
                <annotation>
                  <documentation>
                    The string value.
                  </documentation>
                </annotation>
              </element>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="TimeOfDay">
        <annotation>
          <documentation>
            Represents a specific time in a day.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="hour" type="xsd:int">
            <annotation>
              <documentation>
                Hour in 24 hour time (0..24). This field must be between 0 and 24,
                inclusive. This field is required.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="minute" type="tns:MinuteOfHour">
            <annotation>
              <documentation>
                Minutes in an hour. Currently, only 0, 15, 30, and 45 are supported. This
                field is required.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="UniqueError">
        <annotation>
          <documentation>
            An error for a field which must satisfy a uniqueness constraint
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence/>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="UserDomainTargeting">
        <annotation>
          <documentation>
            Provides line items the ability to target or exclude users visiting their websites from a list of
            domains or subdomains.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0" name="domains" type="xsd:string">
            <annotation>
              <documentation>
                The domains or subdomains that are being targeted or excluded by the {@link LineItem}. This
                attribute is required and the maximum length of each domain is 67 characters.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="targeted" type="xsd:boolean">
            <annotation>
              <documentation>
                Indicates whether domains should be targeted or excluded. This attribute is optional and
                defaults to {@code true}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="UserDomainTargetingError">
        <annotation>
          <documentation>
            Lists all errors related to user domain targeting for a line item.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:UserDomainTargetingError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType abstract="true" name="Value">
        <annotation>
          <documentation>
            {@code Value} represents a value.
          </documentation>
        </annotation>
        <sequence/>
      </complexType>
      <complexType name="VideoPosition">
        <annotation>
          <documentation>
            Represents a targetable position within a video. A video ad can be targeted
            to a position (pre-roll, all mid-rolls, or post-roll), or to a specific mid-roll index.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="positionType" type="tns:VideoPosition.Type">
            <annotation>
              <documentation>
                The type of video position (pre-roll, mid-roll, or post-roll).
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="midrollIndex" type="xsd:int">
            <annotation>
              <documentation>
                The index of the mid-roll to target.  Only valid if the {@link positionType} is
                {@link VideoPositionType#MIDROLL}, otherwise this field will be ignored.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="VideoPositionTargeting">
        <annotation>
          <documentation>
            Represents positions within and around a video where ads can be targeted to.
            
            &lt;p&gt;Example positions could be {@code pre-roll} (before the video plays), {@code post-roll} (after
            a video has completed playback) and {@code mid-roll} (during video playback).
            
            &lt;p&gt;Empty video position targeting means that all video positions are allowed. If a bumper line
            item has empty video position targeting it will be updated to target all bumper positions.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="unbounded" minOccurs="0"
            name="targetedPositions" type="tns:VideoPositionTarget">
            <annotation>
              <documentation>
                The {@link VideoTargetingPosition} objects being targeted by the video {@link LineItem}.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="VideoPositionTargetingError">
        <annotation>
          <documentation>
            Lists all errors related to {@link VideoPositionTargeting}.
          </documentation>
        </annotation>
        <complexContent>
          <extension base="tns:ApiError">
            <sequence>
              <element maxOccurs="1" minOccurs="0" name="reason" type="tns:VideoPositionTargetingError.Reason"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
      <complexType name="VideoPositionWithinPod">
        <annotation>
          <documentation>
            Represents a targetable position within a pod within a video stream. A video ad can be targeted
            to any position in the pod (first, second, third ... last).  If there is only 1 ad in a pod,
            either first or last will target that position.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="index" type="xsd:int">
            <annotation>
              <documentation>
                The specific index of the pod. The index is defined as:
                &lt;ul&gt;&lt;li&gt;1 = first&lt;/li&gt;
                &lt;li&gt;2 = second&lt;/li&gt;
                &lt;li&gt;3 = third&lt;/li&gt;
                &lt;li&gt;....&lt;/li&gt;
                &lt;li&gt;100 = last&lt;/li&gt;&lt;/ul&gt;
                100 will always be the last position. For example, for a pod with 5 positions, 100 would
                target position 5. Multiple targets against the index 100 can exist.&lt;br&gt;
                Positions over 100 are not supported.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <complexType name="VideoPositionTarget">
        <annotation>
          <documentation>
            Represents the options for targetable positions within a video.
          </documentation>
        </annotation>
        <sequence>
          <element maxOccurs="1" minOccurs="0" name="videoPosition" type="tns:VideoPosition">
            <annotation>
              <documentation>
                The video position to target.  This attribute is required.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="videoBumperType" type="tns:VideoBumperType">
            <annotation>
              <documentation>
                The video bumper type to target. To target a video position or a pod position, this value must
                be null. To target a bumper position this value must be populated and the line item must have a
                bumper type. To target a custom ad spot, this value must be null.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0"
            name="videoPositionWithinPod" type="tns:VideoPositionWithinPod">
            <annotation>
              <documentation>
                The video position within a pod to target. To target a video position or a bumper position,
                this value must be null. To target a position within a pod this value must be populated. To
                target a custom ad spot, this value must be null.
              </documentation>
            </annotation>
          </element>
          <element maxOccurs="1" minOccurs="0" name="adSpotId" type="xsd:long">
            <annotation>
              <documentation>
                A custom spot {@link AdSpot} to target. To target a video position, a bumper type or a video
                position within a pod this value must be null.
              </documentation>
            </annotation>
          </element>
        </sequence>
      </complexType>
      <simpleType name="ApiVersionError.Reason">
        <restriction base="xsd:string">
          <enumeration value="UPDATE_TO_NEWER_VERSION">
            <annotation>
              <documentation>
                Indicates that the operation is not allowed in the version the request
                was made in.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="AuthenticationError.Reason">
        <restriction base="xsd:string">
          <enumeration value="AMBIGUOUS_SOAP_REQUEST_HEADER">
            <annotation>
              <documentation>
                The SOAP message contains a request header with an ambiguous definition of the authentication
                header fields. This means either the {@code authToken} and {@code oAuthToken} fields were
                both null or both were specified. Exactly one value should be specified with each request.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_EMAIL">
            <annotation>
              <documentation>
                The login provided is invalid.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="AUTHENTICATION_FAILED">
            <annotation>
              <documentation>
                Tried to authenticate with provided information, but failed.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_OAUTH_SIGNATURE">
            <annotation>
              <documentation>
                The OAuth provided is invalid.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_SERVICE">
            <annotation>
              <documentation>
                The specified service to use was not recognized.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MISSING_SOAP_REQUEST_HEADER">
            <annotation>
              <documentation>
                The SOAP message is missing a request header with an {@code authToken} and optional {@code
                networkCode}.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MISSING_AUTHENTICATION_HTTP_HEADER">
            <annotation>
              <documentation>
                The HTTP request is missing a request header with an {@code authToken}
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MISSING_AUTHENTICATION">
            <annotation>
              <documentation>
                The request is missing an {@code authToken}
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NETWORK_API_ACCESS_DISABLED">
            <annotation>
              <documentation>
                The network does not have API access enabled.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NO_NETWORKS_TO_ACCESS">
            <annotation>
              <documentation>
                The user is not associated with any network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NETWORK_NOT_FOUND">
            <annotation>
              <documentation>
                No network for the given {@code networkCode} was found.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NETWORK_CODE_REQUIRED">
            <annotation>
              <documentation>
                The user has access to more than one network, but did not provide a {@code networkCode}.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CONNECTION_ERROR">
            <annotation>
              <documentation>
                An error happened on the server side during connection to authentication service.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="GOOGLE_ACCOUNT_ALREADY_ASSOCIATED_WITH_NETWORK">
            <annotation>
              <documentation>
                The user tried to create a test network using an account that already is associated with a
                network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNDER_INVESTIGATION">
            <annotation>
              <documentation>
                The account is blocked and under investigation by the collections team. Please contact Google
                for more information.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="CollectionSizeError.Reason">
        <restriction base="xsd:string">
          <enumeration value="TOO_LARGE"/>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="CommonError.Reason">
        <annotation>
          <documentation>
            Describes reasons for common errors
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="NOT_FOUND">
            <annotation>
              <documentation>
                Indicates that an attempt was made to retrieve an entity that does not
                exist.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="ALREADY_EXISTS">
            <annotation>
              <documentation>
                Indicates that an attempt was made to create an entity that already
                exists.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NOT_APPLICABLE">
            <annotation>
              <documentation>
                Indicates that a value is not applicable for given use case.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="DUPLICATE_OBJECT">
            <annotation>
              <documentation>
                Indicates that two elements in the collection were identical.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_UPDATE">
            <annotation>
              <documentation>
                Indicates that an attempt was made to change an immutable field.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNSUPPORTED_OPERATION">
            <annotation>
              <documentation>
                Indicates that the requested operation is not supported.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CONCURRENT_MODIFICATION">
            <annotation>
              <documentation>
                Indicates that another request attempted to update the same data in the same network
                at about the same time. Please wait and try the request again.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="CustomCriteria.ComparisonOperator">
        <annotation>
          <documentation>
            Specifies the available comparison operators.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="IS"/>
          <enumeration value="IS_NOT"/>
        </restriction>
      </simpleType>
      <simpleType name="CustomCriteriaSet.LogicalOperator">
        <annotation>
          <documentation>
            Specifies the available logical operators.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="AND"/>
          <enumeration value="OR"/>
        </restriction>
      </simpleType>
      <simpleType name="CmsMetadataCriteria.ComparisonOperator">
        <annotation>
          <documentation>
            Specifies the available comparison operators.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="EQUALS"/>
          <enumeration value="NOT_EQUALS"/>
        </restriction>
      </simpleType>
      <simpleType name="CustomTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="KEY_NOT_FOUND">
            <annotation>
              <documentation>
                Requested {@link CustomTargetingKey} is not found.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_COUNT_TOO_LARGE">
            <annotation>
              <documentation>
                Number of {@link CustomTargetingKey} objects created exceeds the limit
                allowed for the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_NAME_DUPLICATE">
            <annotation>
              <documentation>
                {@link CustomTargetingKey} with the same {@link CustomTargetingKey#name}
                already exists.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_NAME_EMPTY">
            <annotation>
              <documentation>
                {@link CustomTargetingKey#name} is empty.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_NAME_INVALID_LENGTH">
            <annotation>
              <documentation>
                {@link CustomTargetingKey#name} is too long.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_NAME_INVALID_CHARS">
            <annotation>
              <documentation>
                {@link CustomTargetingKey#name} contains unsupported or reserved
                characters.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_NAME_RESERVED">
            <annotation>
              <documentation>
                {@link CustomTargetingKey#name} matches one of the reserved custom
                targeting key names.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_DISPLAY_NAME_INVALID_LENGTH">
            <annotation>
              <documentation>
                {@link CustomTargetingKey#displayName} is too long.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_STATUS_NOT_ACTIVE">
            <annotation>
              <documentation>
                Key is not active.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_NOT_FOUND">
            <annotation>
              <documentation>
                Requested {@link CustomTargetingValue} is not found.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="GET_VALUES_BY_STATEMENT_MUST_CONTAIN_KEY_ID">
            <annotation>
              <documentation>
                The {@code WHERE} clause in the {@link Statement#query} must always
                contain {@link CustomTargetingValue#customTargetingKeyId} as one of its
                columns in a way that it is AND'ed with the rest of the query.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_COUNT_FOR_KEY_TOO_LARGE">
            <annotation>
              <documentation>
                The number of {@link CustomTargetingValue} objects associated with a
                {@link CustomTargetingKey} exceeds the network limit. This is only
                applicable for keys of type {@code CustomTargetingKey.Type#PREDEFINED}.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_NAME_DUPLICATE">
            <annotation>
              <documentation>
                {@link CustomTargetingValue} with the same
                {@link CustomTargetingValue#name} already exists.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_NAME_EMPTY">
            <annotation>
              <documentation>
                {@link CustomTargetingValue#name} is empty.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_NAME_INVALID_LENGTH">
            <annotation>
              <documentation>
                {@link CustomTargetingValue#name} is too long.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_NAME_INVALID_CHARS">
            <annotation>
              <documentation>
                {@link CustomTargetingValue#name} contains unsupported or reserved
                characters.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_DISPLAY_NAME_INVALID_LENGTH">
            <annotation>
              <documentation>
                {@link CustomTargetingValue#displayName} is too long.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_MATCH_TYPE_NOT_ALLOWED">
            <annotation>
              <documentation>
                Only Ad Manager 360 networks can have {@link CustomTargetingValue#matchType}
                other than {@link CustomTargetingValue.MatchType#EXACT}.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_MATCH_TYPE_NOT_EXACT_FOR_PREDEFINED_KEY">
            <annotation>
              <documentation>
                You can only create {@link CustomTargetingValue} objects with match type
                {@link CustomTargetingValue.MatchType#EXACT} when associating
                with {@link CustomTargetingKey} objects of type
                {@link CustomTargetingKey.Type#PREDEFINED}
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SUFFIX_MATCH_TYPE_NOT_ALLOWED">
            <annotation>
              <documentation>
                {@link CustomTargetingValue} object cannot have match type of
                {@link CustomTargetingValue.MatchType#SUFFIX} when adding a
                {@link CustomTargetingValue} to a line item.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CONTAINS_MATCH_TYPE_NOT_ALLOWED">
            <annotation>
              <documentation>
                {@link CustomTargetingValue} object cannot have match type of
                {@link CustomTargetingValue.MatchType#CONTAINS} when adding a
                {@link CustomTargetingValue} to targeting expression of a line item.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VALUE_STATUS_NOT_ACTIVE">
            <annotation>
              <documentation>
                Value is not active.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="KEY_WITH_MISSING_VALUES">
            <annotation>
              <documentation>
                The {@link CustomTargetingKey} does not have any
                {@link CustomTargetingValue} associated with it.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_VALUE_FOR_KEY">
            <annotation>
              <documentation>
                The {@link CustomTargetingKey} has a {@link CustomTargetingValue} specified for which the
                value is not a valid child.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_OR_DIFFERENT_KEYS">
            <annotation>
              <documentation>
                {@link CustomCriteriaSet.LogicalOperator#OR} operation cannot be applied
                to values with different keys.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_TARGETING_EXPRESSION">
            <annotation>
              <documentation>
                Targeting expression is invalid. This can happen if the sequence of
                operators is wrong, or a node contains invalid number of children.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="DELETED_KEY_CANNOT_BE_USED_FOR_TARGETING">
            <annotation>
              <documentation>
                The key has been deleted. {@link CustomCriteria} cannot have deleted
                keys.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="DELETED_VALUE_CANNOT_BE_USED_FOR_TARGETING">
            <annotation>
              <documentation>
                The value has been deleted. {@link CustomCriteria} cannot have deleted
                values.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VIDEO_BROWSE_BY_KEY_CANNOT_BE_USED_FOR_CUSTOM_TARGETING">
            <annotation>
              <documentation>
                The key is set as the video browse-by key, which cannot be used for
                custom targeting.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_DELETE_CUSTOM_KEY_USED_IN_PARTNER_ASSIGNMENT_TARGETING">
            <annotation>
              <documentation>
                Cannot delete a custom criteria key that is targeted by an active partner assignment.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_DELETE_CUSTOM_VALUE_USED_IN_PARTNER_ASSIGNMENT_TARGETING">
            <annotation>
              <documentation>
                Cannot delete a custom criteria value that is targeted by an active partner assignment.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_TARGET_AUDIENCE_SEGMENT">
            <annotation>
              <documentation>
                {@link AudienceSegment} object cannot be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_TARGET_THIRD_PARTY_AUDIENCE_SEGMENT">
            <annotation>
              <documentation>
                Third party {@link AudienceSegment} cannot be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_TARGET_INACTIVE_AUDIENCE_SEGMENT">
            <annotation>
              <documentation>
                Inactive {@link AudienceSegment} object cannot be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_AUDIENCE_SEGMENTS">
            <annotation>
              <documentation>
                Targeted {@link AudienceSegment} object is not valid.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CANNOT_TARGET_MAPPED_METADATA">
            <annotation>
              <documentation>
                Mapped metadata key-values are deprecated and cannot be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="ONLY_APPROVED_AUDIENCE_SEGMENTS_CAN_BE_TARGETED">
            <annotation>
              <documentation>
                Targeted {@link AudienceSegment} objects have not been approved.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="AudienceSegmentCriteria.ComparisonOperator">
        <annotation>
          <documentation>
            Specifies the available comparison operators.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="IS"/>
          <enumeration value="IS_NOT"/>
        </restriction>
      </simpleType>
      <simpleType name="DateTimeRangeTargetingError.Reason">
        <annotation>
          <documentation>
            {@link ApiErrorReason} enum for date time range targeting error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="EMPTY_RANGES">
            <annotation>
              <documentation>
                No targeted ranges exists.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NOT_SPONSORSHIP_LINEITEM">
            <annotation>
              <documentation>
                Type of lineitem is not sponsorship.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NOT_SPONSORSHIP_OR_STANDARD_LINEITEM">
            <annotation>
              <documentation>
                Type of lineitem is not sponsorship or standard.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNSUPPORTED_LINEITEM_RESERVATION_TYPE">
            <annotation>
              <documentation>
                Line item must have a reservation type of sponsorship, standard or preferred deal to use date
                time range targeting.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PAST_RANGES_CHANGED">
            <annotation>
              <documentation>
                Past ranges are changed.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="RANGES_OVERLAP">
            <annotation>
              <documentation>
                Targeted date time ranges overlap.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="FIRST_DATE_TIME_DOES_NOT_MATCH_START_TIME">
            <annotation>
              <documentation>
                First date time does not match line item's start time.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="LAST_DATE_TIME_DOES_NOT_MATCH_END_TIME">
            <annotation>
              <documentation>
                Last date time does not match line item's end time.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="RANGES_OUT_OF_LINEITEM_ACTIVE_PERIOD">
            <annotation>
              <documentation>
                Targeted date time ranges fall out the active period of lineitem.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="START_TIME_IS_NOT_START_OF_DAY">
            <annotation>
              <documentation>
                Start time of range (except the earliest range) is not at start of day.
                Start of day is 00:00:00.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="END_TIME_IS_NOT_END_OF_DAY">
            <annotation>
              <documentation>
                End time of range (except the latest range) is not at end of day.
                End of day is 23:59:59.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="START_DATE_TIME_IS_IN_PAST">
            <annotation>
              <documentation>
                Start date time of earliest targeted ranges is in past.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MODIFY_START_DATE_TIME_TO_PAST">
            <annotation>
              <documentation>
                Cannot modify the start date time for date time targeting to the past.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="RANGE_END_TIME_BEFORE_START_TIME">
            <annotation>
              <documentation>
                The end time of range is before the start time.
                Could happen when start type is IMMEDIATE or ONE_HOUR_LATER.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="END_DATE_TIME_IS_TOO_LATE">
            <annotation>
              <documentation>
                End date time of latest targeted ranges is too late.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="LIMITED_RANGES_IN_UNLIMITED_LINEITEM"/>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="DayOfWeek">
        <annotation>
          <documentation>
            Days of the week.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="MONDAY">
            <annotation>
              <documentation>
                The day of week named Monday.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TUESDAY">
            <annotation>
              <documentation>
                The day of week named Tuesday.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="WEDNESDAY">
            <annotation>
              <documentation>
                The day of week named Wednesday.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="THURSDAY">
            <annotation>
              <documentation>
                The day of week named Thursday.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="FRIDAY">
            <annotation>
              <documentation>
                The day of week named Friday.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SATURDAY">
            <annotation>
              <documentation>
                The day of week named Saturday.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SUNDAY">
            <annotation>
              <documentation>
                The day of week named Sunday.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="DayPartTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="INVALID_HOUR">
            <annotation>
              <documentation>
                Hour of day must be between 0 and 24, inclusive.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_MINUTE">
            <annotation>
              <documentation>
                Minute of hour must be one of 0, 15,30, 45.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="END_TIME_NOT_AFTER_START_TIME">
            <annotation>
              <documentation>
                The {@link DayPart#endTime} cannot be after {@link DayPart#startTime}.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TIME_PERIODS_OVERLAP">
            <annotation>
              <documentation>
                Cannot create day-parts that overlap.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="DeliveryTimeZone">
        <annotation>
          <documentation>
            Represents the time zone to be used for {@link DayPartTargeting}.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="PUBLISHER">
            <annotation>
              <documentation>
                Use the time zone of the publisher.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="BROWSER">
            <annotation>
              <documentation>
                Use the time zone of the browser.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="EntityChildrenLimitReachedError.Reason">
        <annotation>
          <documentation>
            The reasons for the entity children limit reached error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="LINE_ITEM_LIMIT_FOR_ORDER_REACHED">
            <annotation>
              <documentation>
                The number of line items on the order exceeds the max number of line items allowed per order
                in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CREATIVE_ASSOCIATION_LIMIT_FOR_LINE_ITEM_REACHED">
            <annotation>
              <documentation>
                The number of creatives associated with the line item exceeds the max number of creatives
                allowed to be associated with a line item in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="AD_UNIT_LIMIT_FOR_PLACEMENT_REACHED">
            <annotation>
              <documentation>
                The number of ad units on the placement exceeds the max number of ad units
                allowed per placement in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TARGETING_EXPRESSION_LIMIT_FOR_LINE_ITEM_REACHED">
            <annotation>
              <documentation>
                The number of targeting expressions on the line item exceeds the max number of targeting
                expressions allowed per line item in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TARGETING_EXPRESSION_SIZE_LIMIT_REACHED">
            <annotation>
              <documentation>
                The size of a single targeting expression tree exceeds the max size allowed by the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CUSTOM_TARGETING_VALUES_FOR_KEY_LIMIT_REACHED">
            <annotation>
              <documentation>
                The number of custom targeting values for the free-form or predefined custom targeting key
                exceeds the max number allowed.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TARGETING_EXPRESSION_LIMIT_FOR_CREATIVES_ON_LINE_ITEM_REACHED">
            <annotation>
              <documentation>
                The total number of targeting expressions on the creatives for the line item exceeds
                the max number allowed per line item in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="ATTACHMENT_LIMIT_FOR_PROPOSAL_REACHED">
            <annotation>
              <documentation>
                The number of attachments added to the proposal exceeds the max number
                allowed per proposal in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PROPOSAL_LINE_ITEM_LIMIT_FOR_PROPOSAL_REACHED">
            <annotation>
              <documentation>
                The number of proposal line items on the proposal exceeds the max number
                allowed per proposal in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PRODUCT_LIMIT_FOR_PRODUCT_PACKAGE_REACHED">
            <annotation>
              <documentation>
                The number of product package items on the product package exceeds the max number
                allowed per product package in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PRODUCT_TEMPLATE_AND_PRODUCT_BASE_RATE_LIMIT_FOR_RATE_CARD_REACHED">
            <annotation>
              <documentation>
                The number of product template and product base rates on the rate card (including excluded
                product base rates) exceeds the max number allowed per rate card in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PRODUCT_PACKAGE_ITEM_BASE_RATE_LIMIT_FOR_RATE_CARD_REACHED">
            <annotation>
              <documentation>
                The number of product package item base rates on the rate card exceeds the max number
                allowed per rate card in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PREMIUM_LIMIT_FOR_RATE_CARD_REACHED">
            <annotation>
              <documentation>
                The number of premiums of the rate card exceeds the max number allowed per rate card
                in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="AD_UNIT_LIMIT_FOR_AD_EXCLUSION_RULE_TARGETING_REACHED">
            <annotation>
              <documentation>
                The number of ad units on {@link AdExclusionRule#inventoryTargeting} exceeds the max number
                of ad units allowed per ad exclusion rule inventory targeting in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="NATIVE_STYLE_LIMIT_FOR_NATIVE_AD_FORMAT_REACHED">
            <annotation>
              <documentation>
                The number of native styles under the native creative template exceeds the
                max number of native styles allowed per native creative template in the
                network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TARGETING_EXPRESSION_LIMIT_FOR_PRESENTATION_ASSIGNMENT_REACHED">
            <annotation>
              <documentation>
                The number of targeting expressions on the native style exceeds the max number of targeting
                expressions allowed per native style in the network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="FeatureError.Reason">
        <restriction base="xsd:string">
          <enumeration value="MISSING_FEATURE">
            <annotation>
              <documentation>
                A feature is being used that is not enabled on the current network.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="GenericTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="CONFLICTING_INCLUSION_OR_EXCLUSION_OF_SIBLINGS">
            <annotation>
              <documentation>
                Both including and excluding sibling criteria is disallowed.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INCLUDING_DESCENDANTS_OF_EXCLUDED_CRITERIA">
            <annotation>
              <documentation>
                Including descendants of excluded criteria is disallowed.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="GeoTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="TARGETED_LOCATIONS_NOT_EXCLUDABLE">
            <annotation>
              <documentation>
                A location that is targeted cannot also be excluded.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="EXCLUDED_LOCATIONS_CANNOT_HAVE_CHILDREN_TARGETED">
            <annotation>
              <documentation>
                Excluded locations cannot have any of their children targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="POSTAL_CODES_CANNOT_BE_EXCLUDED">
            <annotation>
              <documentation>
                Postal codes cannot be excluded.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNTARGETABLE_LOCATION">
            <annotation>
              <documentation>
                Indicates that location targeting is not allowed.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="InternalApiError.Reason">
        <annotation>
          <documentation>
            The single reason for the internal API error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNEXPECTED_INTERNAL_API_ERROR">
            <annotation>
              <documentation>
                API encountered an unexpected internal error.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TRANSIENT_ERROR">
            <annotation>
              <documentation>
                A temporary error occurred during the request. Please retry.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The cause of the error is not known or only defined in newer versions.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="DOWNTIME">
            <annotation>
              <documentation>
                The API is currently unavailable for a planned downtime.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="ERROR_GENERATING_RESPONSE">
            <annotation>
              <documentation>
                Mutate succeeded but server was unable to build response. Client should not retry mutate.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="InventoryTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="AT_LEAST_ONE_PLACEMENT_OR_INVENTORY_UNIT_REQUIRED">
            <annotation>
              <documentation>
                At least one placement or inventory unit is required
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVENTORY_CANNOT_BE_TARGETED_AND_EXCLUDED">
            <annotation>
              <documentation>
                The same inventory unit or placement cannot be targeted and excluded at
                the same time
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVENTORY_UNIT_CANNOT_BE_TARGETED_IF_ANCESTOR_IS_TARGETED">
            <annotation>
              <documentation>
                A child inventory unit cannot be targeted if its ancestor inventory unit
                is also targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVENTORY_UNIT_CANNOT_BE_TARGETED_IF_ANCESTOR_IS_EXCLUDED">
            <annotation>
              <documentation>
                A child inventory unit cannot be targeted if its ancestor inventory unit
                is excluded.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVENTORY_UNIT_CANNOT_BE_EXCLUDED_IF_ANCESTOR_IS_EXCLUDED">
            <annotation>
              <documentation>
                A child inventory unit cannot be excluded if its ancestor inventory unit
                is also excluded.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="EXPLICITLY_TARGETED_INVENTORY_UNIT_CANNOT_BE_TARGETED">
            <annotation>
              <documentation>
                An explicitly targeted inventory unit cannot be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="EXPLICITLY_TARGETED_INVENTORY_UNIT_CANNOT_BE_EXCLUDED">
            <annotation>
              <documentation>
                An explicitly targeted inventory unit cannot be excluded.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SELF_ONLY_INVENTORY_UNIT_NOT_ALLOWED">
            <annotation>
              <documentation>
                A landing page-only ad unit cannot be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SELF_ONLY_INVENTORY_UNIT_WITHOUT_DESCENDANTS">
            <annotation>
              <documentation>
                A landing page-only ad unit cannot be targeted if it doesn't have any
                children.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="YOUTUBE_AUDIENCE_SEGMENTS_CAN_ONLY_BE_TARGETED_WITH_YOUTUBE_SHARED_INVENTORY">
            <annotation>
              <documentation>
                Audience segments shared from YouTube can only be targeted with inventory shared
                from YouTube for cross selling.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="MinuteOfHour">
        <annotation>
          <documentation>
            Minutes in an hour. Currently, only 0, 15, 30, and 45 are supported. This
            field is required.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="ZERO">
            <annotation>
              <documentation>
                Zero minutes past hour.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="FIFTEEN">
            <annotation>
              <documentation>
                Fifteen minutes past hour.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="THIRTY">
            <annotation>
              <documentation>
                Thirty minutes past hour.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="FORTY_FIVE">
            <annotation>
              <documentation>
                Forty-five minutes past hour.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="MobileApplicationTargetingError.Reason">
        <annotation>
          <documentation>
            {@link ApiErrorReason} enum for user domain targeting error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="CANNOT_TARGET_UNLINKED_APPLICATION">
            <annotation>
              <documentation>
                Only applications that are linked to a store entry may be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="NotNullError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="ARG1_NULL">
            <annotation>
              <documentation>
                Assuming that a method will not have more than 3 arguments, if it does,
                return NULL
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="ARG2_NULL"/>
          <enumeration value="ARG3_NULL"/>
          <enumeration value="NULL"/>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="ParseError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNPARSABLE">
            <annotation>
              <documentation>
                Indicates an error in parsing an attribute.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="PermissionError.Reason">
        <annotation>
          <documentation>
            Describes reasons for permission errors.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="PERMISSION_DENIED">
            <annotation>
              <documentation>
                User does not have the required permission for the request.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="PublisherQueryLanguageContextError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNEXECUTABLE">
            <annotation>
              <documentation>
                Indicates that there was an error executing the PQL.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="PublisherQueryLanguageSyntaxError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNPARSABLE">
            <annotation>
              <documentation>
                Indicates that there was a PQL syntax error.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="QuotaError.Reason">
        <restriction base="xsd:string">
          <enumeration value="EXCEEDED_QUOTA">
            <annotation>
              <documentation>
                The number of requests made per second is too high and has exceeded the
                allowable limit. The recommended approach to handle this error is to wait
                about 5 seconds and then retry the request. Note that this does not
                guarantee the request will succeed. If it fails again, try increasing the
                wait time.
                &lt;p&gt;Another way to mitigate this error is to limit requests to 8 per second for Ad Manager
                360 accounts, or 2 per second for Ad Manager accounts. Once again
                this does not guarantee that every request will succeed, but may help
                reduce the number of times you receive this error.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="REPORT_JOB_LIMIT">
            <annotation>
              <documentation>
                This user has exceeded the allowed number of new report requests per hour
                (this includes both reports run via the UI and reports
                run via {@link ReportService#runReportJob}).
                The recommended approach to handle this error is to wait about 10 minutes
                and then retry the request. Note that this does not guarantee the request
                will succeed. If it fails again, try increasing the wait time.
                &lt;p&gt;Another way to mitigate this error is to limit the number of new report
                requests to 250 per hour per user. Once again, this does not guarantee that
                every request will succeed, but may help reduce the number of times you
                receive this error.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SEGMENT_POPULATION_LIMIT">
            <annotation>
              <documentation>
                This network has exceeded the allowed number of identifiers uploaded within a 24 hour period.
                The recommended approach to handle this error is to wait 30 minutes and then retry the
                request. Note that this does not guarantee the request will succeed. If it fails again, try
                increasing the wait time.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="RequestPlatform">
        <annotation>
          <documentation>
            Represents the platform which requests and renders the ad.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="BROWSER">
            <annotation>
              <documentation>
                Represents a request made from a web browser. This includes both desktop and mobile web.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MOBILE_APP">
            <annotation>
              <documentation>
                Represents a request made from a mobile application. This includes mobile app interstitial and
                rewarded video requests.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="VIDEO_PLAYER">
            <annotation>
              <documentation>
                Represents a request made from a video player that is playing publisher content. This includes
                video players embedded in web pages and mobile applications, and connected TV screens.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="RequestPlatformTargetingError.Reason">
        <annotation>
          <documentation>
            {@link ApiErrorReason} enum for the request platform targeting error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="REQUEST_PLATFORM_TYPE_NOT_SUPPORTED_BY_LINE_ITEM_TYPE">
            <annotation>
              <documentation>
                The line item type does not support the targeted request platform type.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="REQUEST_PLATFORM_TYPE_NOT_SUPPORTED_BY_ENVIRONMENT_TYPE">
            <annotation>
              <documentation>
                The line item environment type does not support the targeted request platform type.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="RequiredCollectionError.Reason">
        <restriction base="xsd:string">
          <enumeration value="REQUIRED">
            <annotation>
              <documentation>
                A required collection is missing.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TOO_LARGE">
            <annotation>
              <documentation>
                Collection size is too large.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="TOO_SMALL">
            <annotation>
              <documentation>
                Collection size is too small.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="RequiredError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="REQUIRED">
            <annotation>
              <documentation>
                Missing required field.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="ServerError.Reason">
        <annotation>
          <documentation>
            Describes reasons for server errors
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="SERVER_ERROR">
            <annotation>
              <documentation>
                Indicates that an unexpected error occured.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="SERVER_BUSY">
            <annotation>
              <documentation>
                Indicates that the server is currently experiencing a high load. Please
                wait and try your request again.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="StatementError.Reason">
        <restriction base="xsd:string">
          <enumeration value="VARIABLE_NOT_BOUND_TO_VALUE">
            <annotation>
              <documentation>
                A bind variable has not been bound to a value.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="StringFormatError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNKNOWN"/>
          <enumeration value="ILLEGAL_CHARS">
            <annotation>
              <documentation>
                The input string value contains disallowed characters.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_FORMAT">
            <annotation>
              <documentation>
                The input string value is invalid for the associated field.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="StringLengthError.Reason">
        <restriction base="xsd:string">
          <enumeration value="TOO_LONG"/>
          <enumeration value="TOO_SHORT"/>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="TechnologyTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the target error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="MOBILE_LINE_ITEM_CONTAINS_WEB_TECH_CRITERIA">
            <annotation>
              <documentation>
                Mobile line item cannot target web-only targeting criteria.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="WEB_LINE_ITEM_CONTAINS_MOBILE_TECH_CRITERIA">
            <annotation>
              <documentation>
                Web line item cannot target mobile-only targeting criteria.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MOBILE_CARRIER_TARGETING_FEATURE_NOT_ENABLED">
            <annotation>
              <documentation>
                The mobile carrier targeting feature is not enabled.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="DEVICE_CAPABILITY_TARGETING_FEATURE_NOT_ENABLED">
            <annotation>
              <documentation>
                The device capability targeting feature is not enabled.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="UserDomainTargetingError.Reason">
        <annotation>
          <documentation>
            {@link ApiErrorReason} enum for user domain targeting error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="INVALID_DOMAIN_NAMES">
            <annotation>
              <documentation>
                Invalid domain names. Domain names must be at most 67 characters long.
                And must contain only alphanumeric characters and hyphens.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="VideoBumperType">
        <annotation>
          <documentation>
            Represents the options for targetable bumper positions, surrounding an ad
            pod, within a video stream. This includes before and after the supported ad
            pod positions, {@link VideoPositionType#PREROLL},
            {@link VideoPositionType#MIDROLL}, and {@link VideoPositionType#POSTROLL}.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="BEFORE">
            <annotation>
              <documentation>
                Represents the bumper position before the ad pod.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="AFTER">
            <annotation>
              <documentation>
                Represents the bumper position after the ad pod.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="VideoPosition.Type">
        <annotation>
          <documentation>
            Represents a targetable position within a video.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="ALL">
            <annotation>
              <documentation>
                This position targets all of the above video positions.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="PREROLL">
            <annotation>
              <documentation>
                The position defined as showing before the video starts playing.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="MIDROLL">
            <annotation>
              <documentation>
                The position defined as showing within the middle of the playing video.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="POSTROLL">
            <annotation>
              <documentation>
                The position defined as showing after the video is completed.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <simpleType name="VideoPositionTargetingError.Reason">
        <annotation>
          <documentation>
            The reasons for the video position targeting error.
          </documentation>
        </annotation>
        <restriction base="xsd:string">
          <enumeration value="CANNOT_MIX_BUMPER_AND_NON_BUMPER_TARGETING">
            <annotation>
              <documentation>
                Video position targeting cannot contain both bumper and non-bumper targeting values.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="INVALID_BUMPER_TARGETING">
            <annotation>
              <documentation>
                The bumper video position targeting is invalid.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="CAN_ONLY_TARGET_CUSTOM_AD_SPOTS">
            <annotation>
              <documentation>
                Only custom spot {@link AdSpot} objects can be targeted.
              </documentation>
            </annotation>
          </enumeration>
          <enumeration value="UNKNOWN">
            <annotation>
              <documentation>
                The value returned if the actual value is not exposed by the requested API version.
              </documentation>
            </annotation>
          </enumeration>
        </restriction>
      </simpleType>
      <element name="createTargetingPresets">
        <annotation>
          <documentation>
            Creates new {@link TargetingPreset} objects.
          </documentation>
        </annotation>
        <complexType>
          <sequence>
            <element maxOccurs="unbounded" minOccurs="0"
              name="targetingPresets" type="tns:TargetingPreset"/>
          </sequence>
        </complexType>
      </element>
      <element name="createTargetingPresetsResponse">
        <complexType>
          <sequence>
            <element maxOccurs="unbounded" minOccurs="0" name="rval" type="tns:TargetingPreset"/>
          </sequence>
        </complexType>
      </element>
      <element name="ApiExceptionFault" type="tns:ApiException">
        <annotation>
          <documentation>
            A fault element of type ApiException.
          </documentation>
        </annotation>
      </element>
      <element name="getTargetingPresetsByStatement">
        <annotation>
          <documentation>
            Gets a {@link TargetingPresetPage} of {@link TargetingPreset} objects that satisfy the given
            {@link Statement#query}. The following fields are supported for filtering:
            
            &lt;table&gt;
            &lt;tr&gt;
            &lt;th scope="col"&gt;PQL Property&lt;/th&gt; &lt;th scope="col"&gt;Object Property&lt;/th&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
            &lt;td&gt;{@code id}&lt;/td&gt;
            &lt;td&gt;{@link TargetingPreset#id}&lt;/td&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
            &lt;td&gt;{@code name}&lt;/td&gt;
            &lt;td&gt;{@link TargetingPreset#name}&lt;/td&gt;
            &lt;/tr&gt;
            &lt;/table&gt;
          </documentation>
        </annotation>
        <complexType>
          <sequence>
            <element maxOccurs="1" minOccurs="0" name="filterStatement" type="tns:Statement"/>
          </sequence>
        </complexType>
      </element>
      <element name="getTargetingPresetsByStatementResponse">
        <complexType>
          <sequence>
            <element maxOccurs="1" minOccurs="0" name="rval" type="tns:TargetingPresetPage"/>
          </sequence>
        </complexType>
      </element>
      <element name="updateTargetingPresets">
        <annotation>
          <documentation>
            Updates the specified {@link TargetingPreset} objects.
          </documentation>
        </annotation>
        <complexType>
          <sequence>
            <element maxOccurs="unbounded" minOccurs="0"
              name="targetingPresets" type="tns:TargetingPreset"/>
          </sequence>
        </complexType>
      </element>
      <element name="updateTargetingPresetsResponse">
        <complexType>
          <sequence>
            <element maxOccurs="unbounded" minOccurs="0" name="rval" type="tns:TargetingPreset"/>
          </sequence>
        </complexType>
      </element>
      <element name="RequestHeader" type="tns:SoapRequestHeader"/>
      <element name="ResponseHeader" type="tns:SoapResponseHeader"/>
    </schema>
  </wsdl:types>
  <wsdl:message name="RequestHeader">
    <wsdl:part element="tns:RequestHeader" name="RequestHeader"/>
  </wsdl:message>
  <wsdl:message name="ResponseHeader">
    <wsdl:part element="tns:ResponseHeader" name="ResponseHeader"/>
  </wsdl:message>
  <wsdl:message name="createTargetingPresetsRequest">
    <wsdl:part element="tns:createTargetingPresets" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="createTargetingPresetsResponse">
    <wsdl:part element="tns:createTargetingPresetsResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="ApiException">
    <wsdl:part element="tns:ApiExceptionFault" name="ApiException"/>
  </wsdl:message>
  <wsdl:message name="getTargetingPresetsByStatementRequest">
    <wsdl:part element="tns:getTargetingPresetsByStatement" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="getTargetingPresetsByStatementResponse">
    <wsdl:part element="tns:getTargetingPresetsByStatementResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="updateTargetingPresetsRequest">
    <wsdl:part element="tns:updateTargetingPresets" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="updateTargetingPresetsResponse">
    <wsdl:part element="tns:updateTargetingPresetsResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="TargetingPresetServiceInterface">
    <wsdl:documentation>
      Service for interacting with Targeting Presets.
    </wsdl:documentation>
    <wsdl:operation name="createTargetingPresets">
      <wsdl:documentation>
        Creates new {@link TargetingPreset} objects.
      </wsdl:documentation>
      <wsdl:input message="tns:createTargetingPresetsRequest" name="createTargetingPresetsRequest"/>
      <wsdl:output message="tns:createTargetingPresetsResponse" name="createTargetingPresetsResponse"/>
      <wsdl:fault message="tns:ApiException" name="ApiException"/>
    </wsdl:operation>
    <wsdl:operation name="getTargetingPresetsByStatement">
      <wsdl:documentation>
        Gets a {@link TargetingPresetPage} of {@link TargetingPreset} objects that satisfy the given
        {@link Statement#query}. The following fields are supported for filtering:
        
        &lt;table&gt;
        &lt;tr&gt;
        &lt;th scope="col"&gt;PQL Property&lt;/th&gt; &lt;th scope="col"&gt;Object Property&lt;/th&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
        &lt;td&gt;{@code id}&lt;/td&gt;
        &lt;td&gt;{@link TargetingPreset#id}&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
        &lt;td&gt;{@code name}&lt;/td&gt;
        &lt;td&gt;{@link TargetingPreset#name}&lt;/td&gt;
        &lt;/tr&gt;
        &lt;/table&gt;
      </wsdl:documentation>
      <wsdl:input message="tns:getTargetingPresetsByStatementRequest" name="getTargetingPresetsByStatementRequest"/>
      <wsdl:output message="tns:getTargetingPresetsByStatementResponse" name="getTargetingPresetsByStatementResponse"/>
      <wsdl:fault message="tns:ApiException" name="ApiException"/>
    </wsdl:operation>
    <wsdl:operation name="updateTargetingPresets">
      <wsdl:documentation>
        Updates the specified {@link TargetingPreset} objects.
      </wsdl:documentation>
      <wsdl:input message="tns:updateTargetingPresetsRequest" name="updateTargetingPresetsRequest"/>
      <wsdl:output message="tns:updateTargetingPresetsResponse" name="updateTargetingPresetsResponse"/>
      <wsdl:fault message="tns:ApiException" name="ApiException"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="TargetingPresetServiceSoapBinding" type="tns:TargetingPresetServiceInterface">
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="createTargetingPresets">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="createTargetingPresetsRequest">
        <wsdlsoap:header message="tns:RequestHeader"
          part="RequestHeader" use="literal"/>
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="createTargetingPresetsResponse">
        <wsdlsoap:header message="tns:ResponseHeader"
          part="ResponseHeader" use="literal"/>
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="ApiException">
        <wsdlsoap:fault name="ApiException" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="getTargetingPresetsByStatement">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="getTargetingPresetsByStatementRequest">
        <wsdlsoap:header message="tns:RequestHeader"
          part="RequestHeader" use="literal"/>
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="getTargetingPresetsByStatementResponse">
        <wsdlsoap:header message="tns:ResponseHeader"
          part="ResponseHeader" use="literal"/>
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="ApiException">
        <wsdlsoap:fault name="ApiException" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
    <wsdl:operation name="updateTargetingPresets">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="updateTargetingPresetsRequest">
        <wsdlsoap:header message="tns:RequestHeader"
          part="RequestHeader" use="literal"/>
        <wsdlsoap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="updateTargetingPresetsResponse">
        <wsdlsoap:header message="tns:ResponseHeader"
          part="ResponseHeader" use="literal"/>
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="ApiException">
        <wsdlsoap:fault name="ApiException" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="TargetingPresetService">
    <wsdl:port binding="tns:TargetingPresetServiceSoapBinding" name="TargetingPresetServiceInterfacePort">
      <wsdlsoap:address location="https://ads.google.com/apis/ads/publisher/v202405/TargetingPresetService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
