<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="adexchangebuyer2_v2beta1.html">Ad Exchange Buyer API II</a> . <a href="adexchangebuyer2_v2beta1.accounts.html">accounts</a> . <a href="adexchangebuyer2_v2beta1.accounts.finalizedProposals.html">finalizedProposals</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(accountId, filter=None, filterSyntax=None, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">List finalized proposals, regardless if a proposal is being renegotiated. A filter expression (PQL query) may be specified to filter the results. The notes will not be returned.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#pause">pause(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update given deals to pause serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, please call accounts.proposals.pause endpoint. It is a no-op to pause already-paused deals. It is an error to call PauseProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.</p>
<p class="toc_element">
  <code><a href="#resume">resume(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update given deals to resume serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, please call accounts.proposals.resume endpoint. It is a no-op to resume running deals or deals paused by the other party. It is an error to call ResumeProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(accountId, filter=None, filterSyntax=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>List finalized proposals, regardless if a proposal is being renegotiated. A filter expression (PQL query) may be specified to filter the results. The notes will not be returned.

Args:
  accountId: string, Account ID of the buyer. (required)
  filter: string, An optional PQL filter query used to query for proposals. Nested repeated fields, such as proposal.deals.targetingCriterion, cannot be filtered.
  filterSyntax: string, Syntax the filter is written in. Current implementation defaults to PQL but in the future it will be LIST_FILTER.
    Allowed values
      FILTER_SYNTAX_UNSPECIFIED - A placeholder for an undefined filter syntax.
      PQL - PQL query syntax. Visit https://developers.google.com/ad-manager/api/pqlreference for PQL documentation and examples.
      LIST_FILTER - API list filtering syntax. Read about syntax and usage at https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters.
  pageSize: integer, Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.
  pageToken: string, The page token as returned from ListProposalsResponse.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for listing proposals.
  &quot;nextPageToken&quot;: &quot;A String&quot;, # Continuation token for fetching the next page of results.
  &quot;proposals&quot;: [ # The list of proposals.
    { # Represents a proposal in the Marketplace. A proposal is the unit of negotiation between a seller and a buyer and contains deals which are served. Note: You can&#x27;t update, create, or otherwise modify Private Auction deals through the API. Fields are updatable unless noted otherwise.
      &quot;billedBuyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # Output only. Reference to the buyer that will get billed for this proposal.
        &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
      },
      &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # Reference to the buyer on the proposal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
        &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
      },
      &quot;buyerContacts&quot;: [ # Contact information for the buyer.
        { # Contains information on how a buyer or seller can be reached.
          &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
          &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
        },
      ],
      &quot;buyerPrivateData&quot;: { # Buyers are allowed to store certain types of private data in a proposal/deal. # Private data for buyer. (hidden from seller).
        &quot;referenceId&quot;: &quot;A String&quot;, # A buyer or seller specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
      },
      &quot;deals&quot;: [ # The deals associated with this proposal. For Private Auction proposals (whose deals have NonGuaranteedAuctionTerms), there will only be one deal.
        { # A deal represents a segment of inventory for displaying ads on. A proposal can contain multiple deals. A deal contains the terms and targeting information that is used for serving.
          &quot;availableEndTime&quot;: &quot;A String&quot;, # Proposed flight end time of the deal. This will generally be stored in a granularity of a second. A value is not required for Private Auction deals or Preferred Deals.
          &quot;availableStartTime&quot;: &quot;A String&quot;, # Optional. Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (e.g., in milliseconds) will be truncated towards the start of time in seconds.
          &quot;buyerPrivateData&quot;: { # Buyers are allowed to store certain types of private data in a proposal/deal. # Buyer private data (hidden from seller).
            &quot;referenceId&quot;: &quot;A String&quot;, # A buyer or seller specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
          },
          &quot;createProductId&quot;: &quot;A String&quot;, # The product ID from which this deal was created. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
          &quot;createProductRevision&quot;: &quot;A String&quot;, # Optional. Revision number of the product that the deal was created from. If present on create, and the server `product_revision` has advanced since the passed-in `create_product_revision`, an `ABORTED` error will be returned. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
          &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time of the deal creation.
          &quot;creativePreApprovalPolicy&quot;: &quot;A String&quot;, # Output only. Specifies the creative pre-approval policy.
          &quot;creativeRestrictions&quot;: { # Represents creative restrictions associated to Programmatic Guaranteed/ Preferred Deal in Ad Manager. This doesn&#x27;t apply to Private Auction and AdX Preferred Deals. # Output only. Restricitions about the creatives associated with the deal (i.e., size) This is available for Programmatic Guaranteed/Preferred Deals in Ad Manager.
            &quot;creativeFormat&quot;: &quot;A String&quot;, # The format of the environment that the creatives will be displayed in.
            &quot;creativeSpecifications&quot;: [
              { # Represents information for a creative that is associated with a Programmatic Guaranteed/Preferred Deal in Ad Manager.
                &quot;creativeCompanionSizes&quot;: [ # Companion sizes may be filled in only when this is a video creative.
                  { # Represents size of a single ad slot, or a creative.
                    &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                    &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
                    &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                  },
                ],
                &quot;creativeSize&quot;: { # Represents size of a single ad slot, or a creative. # The size of the creative.
                  &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                  &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
                  &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                },
              },
            ],
            &quot;skippableAdType&quot;: &quot;A String&quot;, # Skippable video ads allow viewers to skip ads after 5 seconds.
          },
          &quot;creativeSafeFrameCompatibility&quot;: &quot;A String&quot;, # Output only. Specifies whether the creative is safeFrame compatible.
          &quot;dealId&quot;: &quot;A String&quot;, # Output only. A unique deal ID for the deal (server-assigned).
          &quot;dealServingMetadata&quot;: { # Message captures metadata about the serving status of a deal. # Output only. Metadata about the serving status of this deal.
            &quot;dealPauseStatus&quot;: { # Tracks which parties (if any) have paused a deal. The deal is considered paused if either hasBuyerPaused or hasSellPaused is true. # Output only. Tracks which parties (if any) have paused a deal.
              &quot;buyerPauseReason&quot;: &quot;A String&quot;, # The buyer&#x27;s reason for pausing, if the buyer paused the deal.
              &quot;firstPausedBy&quot;: &quot;A String&quot;, # The role of the person who first paused this deal.
              &quot;hasBuyerPaused&quot;: True or False, # True, if the buyer has paused the deal unilaterally.
              &quot;hasSellerPaused&quot;: True or False, # True, if the seller has paused the deal unilaterally.
              &quot;sellerPauseReason&quot;: &quot;A String&quot;, # The seller&#x27;s reason for pausing, if the seller paused the deal.
            },
          },
          &quot;dealTerms&quot;: { # The deal terms specify the details of a Product/deal. They specify things like price per buyer, the type of pricing model (e.g., fixed price, auction) and expected impressions from the publisher. # The negotiable terms of the deal.
            &quot;brandingType&quot;: &quot;A String&quot;, # Visibility of the URL in bid requests. (default: BRANDED)
            &quot;description&quot;: &quot;A String&quot;, # Publisher provided description for the terms.
            &quot;estimatedGrossSpend&quot;: { # Represents a price and a pricing type for a product / deal. # Non-binding estimate of the estimated gross spend for this deal. Can be set by buyer or seller.
              &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
              },
              &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
            },
            &quot;estimatedImpressionsPerDay&quot;: &quot;A String&quot;, # Non-binding estimate of the impressions served per day. Can be set by buyer or seller.
            &quot;guaranteedFixedPriceTerms&quot;: { # Terms for Programmatic Guaranteed Deals. # The terms for guaranteed fixed price deals.
              &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
                { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                  &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                    &quot;A String&quot;,
                  ],
                  &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
                  },
                  &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                    &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                      &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                      &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                      &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                    },
                    &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
                  },
                },
              ],
              &quot;guaranteedImpressions&quot;: &quot;A String&quot;, # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
              &quot;guaranteedLooks&quot;: &quot;A String&quot;, # Count of guaranteed looks. Required for deal, optional for product.
              &quot;impressionCap&quot;: &quot;A String&quot;, # The lifetime impression cap for CPM sponsorship deals. The deal will stop serving when the cap is reached.
              &quot;minimumDailyLooks&quot;: &quot;A String&quot;, # Daily minimum looks for CPD deal types.
              &quot;percentShareOfVoice&quot;: &quot;A String&quot;, # For sponsorship deals, this is the percentage of the seller&#x27;s eligible impressions that the deal will serve until the cap is reached.
              &quot;reservationType&quot;: &quot;A String&quot;, # The reservation type for a Programmatic Guaranteed deal. This indicates whether the number of impressions is fixed, or a percent of available impressions. If not specified, the default reservation type is STANDARD.
            },
            &quot;nonGuaranteedAuctionTerms&quot;: { # Terms for Private Auctions. Note that Private Auctions can be created only by the seller, but they can be returned in a get or list request. # The terms for non-guaranteed auction deals.
              &quot;autoOptimizePrivateAuction&quot;: True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction.
              &quot;reservePricesPerBuyer&quot;: [ # Reserve price for the specified buyer.
                { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                  &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                    &quot;A String&quot;,
                  ],
                  &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
                  },
                  &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                    &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                      &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                      &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                      &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                    },
                    &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
                  },
                },
              ],
            },
            &quot;nonGuaranteedFixedPriceTerms&quot;: { # Terms for Preferred Deals. # The terms for non-guaranteed fixed price deals.
              &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
                { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
                  &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                    &quot;A String&quot;,
                  ],
                  &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
                  },
                  &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                    &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                      &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                      &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                      &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                    },
                    &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
                  },
                },
              ],
            },
            &quot;sellerTimeZone&quot;: &quot;A String&quot;, # The time zone name. For deals with Cost Per Day billing, defines the time zone used to mark the boundaries of a day. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
          },
          &quot;deliveryControl&quot;: { # Message contains details about how the deals will be paced. # The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher.
            &quot;creativeBlockingLevel&quot;: &quot;A String&quot;, # Output only. Specified the creative blocking levels to be applied.
            &quot;deliveryRateType&quot;: &quot;A String&quot;, # Output only. Specifies how the impression delivery will be paced.
            &quot;frequencyCaps&quot;: [ # Output only. Specifies any frequency caps.
              { # Frequency cap.
                &quot;maxImpressions&quot;: 42, # The maximum number of impressions that can be served to a user within the specified time period.
                &quot;numTimeUnits&quot;: 42, # The amount of time, in the units specified by time_unit_type. Defines the amount of time over which impressions per user are counted and capped.
                &quot;timeUnitType&quot;: &quot;A String&quot;, # The time unit. Along with num_time_units defines the amount of time over which impressions per user are counted and capped.
              },
            ],
          },
          &quot;description&quot;: &quot;A String&quot;, # Description for the deal terms.
          &quot;displayName&quot;: &quot;A String&quot;, # The name of the deal.
          &quot;externalDealId&quot;: &quot;A String&quot;, # Output only. The external deal ID assigned to this deal once the deal is finalized. This is the deal ID that shows up in serving/reporting etc.
          &quot;isSetupComplete&quot;: True or False, # Output only. True, if the buyside inventory setup is complete for this deal.
          &quot;programmaticCreativeSource&quot;: &quot;A String&quot;, # Output only. Specifies the creative source for programmatic deals. PUBLISHER means creative is provided by seller and ADVERTISER means creative is provided by buyer.
          &quot;proposalId&quot;: &quot;A String&quot;, # Output only. ID of the proposal that this deal is part of.
          &quot;sellerContacts&quot;: [ # Output only. Seller contact information for the deal.
            { # Contains information on how a buyer or seller can be reached.
              &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
              &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
            },
          ],
          &quot;syndicationProduct&quot;: &quot;A String&quot;, # The syndication product associated with the deal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
          &quot;targeting&quot;: { # Targeting represents different criteria that can be used by advertisers to target ad inventory. For example, they can choose to target ad requests only if the user is in the US. Multiple types of targeting are always applied as a logical AND, unless noted otherwise. # Output only. Specifies the subset of inventory targeted by the deal.
            &quot;geoTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # Geo criteria IDs to be included/excluded.
              &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                &quot;A String&quot;,
              ],
            },
            &quot;inventorySizeTargeting&quot;: { # Represents the size of an ad unit that can be targeted on an ad request. It only applies to Private Auction, AdX Preferred Deals and Auction Packages. This targeting does not apply to Programmatic Guaranteed and Preferred Deals in Ad Manager. # Inventory sizes to be included/excluded.
              &quot;excludedInventorySizes&quot;: [ # A list of inventory sizes to be excluded.
                { # Represents size of a single ad slot, or a creative.
                  &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                  &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
                  &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                },
              ],
              &quot;targetedInventorySizes&quot;: [ # A list of inventory sizes to be included.
                { # Represents size of a single ad slot, or a creative.
                  &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                  &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
                  &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                },
              ],
            },
            &quot;placementTargeting&quot;: { # Represents targeting about where the ads can appear, e.g., certain sites or mobile applications. Different placement targeting types will be logically OR&#x27;ed. # Placement targeting information, e.g., URL, mobile applications.
              &quot;mobileApplicationTargeting&quot;: { # Mobile application targeting settings. # Mobile application targeting information in a deal. This doesn&#x27;t apply to Auction Packages.
                &quot;firstPartyTargeting&quot;: { # Represents a list of targeted and excluded mobile application IDs that publishers own. Mobile application IDs are from App Store and Google Play Store. Android App ID, for example, com.google.android.apps.maps, can be found in Google Play Store URL. iOS App ID (which is a number) can be found at the end of iTunes store URL. First party mobile applications is either included or excluded. # Publisher owned apps to be targeted or excluded by the publisher to display the ads in.
                  &quot;excludedAppIds&quot;: [ # A list of application IDs to be excluded.
                    &quot;A String&quot;,
                  ],
                  &quot;targetedAppIds&quot;: [ # A list of application IDs to be included.
                    &quot;A String&quot;,
                  ],
                },
              },
              &quot;urlTargeting&quot;: { # Represents a list of targeted and excluded URLs (e.g., google.com). For Private Auction and AdX Preferred Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn&#x27;t apply. # URLs to be included/excluded.
                &quot;excludedUrls&quot;: [ # A list of URLs to be excluded.
                  &quot;A String&quot;,
                ],
                &quot;targetedUrls&quot;: [ # A list of URLs to be included.
                  &quot;A String&quot;,
                ],
              },
            },
            &quot;technologyTargeting&quot;: { # Represents targeting about various types of technology. # Technology targeting information, e.g., operating system, device category.
              &quot;deviceCapabilityTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of device capabilities to be included/excluded.
                &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                  &quot;A String&quot;,
                ],
                &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                  &quot;A String&quot;,
                ],
              },
              &quot;deviceCategoryTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of device categories to be included/excluded.
                &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                  &quot;A String&quot;,
                ],
                &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                  &quot;A String&quot;,
                ],
              },
              &quot;operatingSystemTargeting&quot;: { # Represents targeting information for operating systems. # Operating system related targeting information.
                &quot;operatingSystemCriteria&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of operating systems to be included/excluded.
                  &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                    &quot;A String&quot;,
                  ],
                  &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                    &quot;A String&quot;,
                  ],
                },
                &quot;operatingSystemVersionCriteria&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of operating system versions to be included/excluded.
                  &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                    &quot;A String&quot;,
                  ],
                  &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                    &quot;A String&quot;,
                  ],
                },
              },
            },
            &quot;videoTargeting&quot;: { # Represents targeting information about video. # Video targeting information.
              &quot;excludedPositionTypes&quot;: [ # A list of video positions to be excluded. Position types can either be included or excluded (XOR).
                &quot;A String&quot;,
              ],
              &quot;targetedPositionTypes&quot;: [ # A list of video positions to be included. When the included list is present, the excluded list must be empty. When the excluded list is present, the included list must be empty.
                &quot;A String&quot;,
              ],
            },
          },
          &quot;targetingCriterion&quot;: [ # The shared targeting visible to buyers and sellers. Each shared targeting entity is AND&#x27;d together.
            { # Advertisers can target different attributes of an ad slot. For example, they can choose to show ads only if the user is in the U.S. Such targeting criteria can be specified as part of Shared Targeting.
              &quot;exclusions&quot;: [ # The list of values to exclude from targeting. Each value is AND&#x27;d together.
                { # A polymorphic targeting value used as part of Shared Targeting.
                  &quot;creativeSizeValue&quot;: { # Specifies the size of the creative. # The creative size value to include/exclude. Filled in when key = GOOG_CREATIVE_SIZE
                    &quot;allowedFormats&quot;: [ # What formats are allowed by the publisher. If this repeated field is empty then all formats are allowed. For example, if this field contains AllowedFormatType.AUDIO then the publisher only allows an audio ad (without any video).
                      &quot;A String&quot;,
                    ],
                    &quot;companionSizes&quot;: [ # For video creatives specifies the sizes of companion ads (if present). Companion sizes may be filled in only when creative_size_type = VIDEO
                      { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting.
                        &quot;height&quot;: 42, # The height of the creative.
                        &quot;width&quot;: 42, # The width of the creative
                      },
                    ],
                    &quot;creativeSizeType&quot;: &quot;A String&quot;, # The creative size type.
                    &quot;nativeTemplate&quot;: &quot;A String&quot;, # Output only. The native template for this creative. It will have a value only if creative_size_type = CreativeSizeType.NATIVE.
                    &quot;size&quot;: { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting. # For regular or video creative size type, specifies the size of the creative
                      &quot;height&quot;: 42, # The height of the creative.
                      &quot;width&quot;: 42, # The width of the creative
                    },
                    &quot;skippableAdType&quot;: &quot;A String&quot;, # The type of skippable ad for this creative. It will have a value only if creative_size_type = CreativeSizeType.VIDEO.
                  },
                  &quot;dayPartTargetingValue&quot;: { # Specifies the day part targeting criteria. # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this targeting is derived from the structure used by Ad Manager.
                    &quot;dayParts&quot;: [ # A list of day part targeting criterion.
                      { # Daypart targeting message that specifies if the ad can be shown only during certain parts of a day/week.
                        &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of the week to target. If unspecified, applicable to all days.
                        &quot;endTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The ending time of the day for the ad to show (minute level granularity). The end time is exclusive. This field is not available for filtering in PQL queries.
                          &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                          &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                          &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                          &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                        },
                        &quot;startTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The starting time of day for the ad to show (minute level granularity). The start time is inclusive. This field is not available for filtering in PQL queries.
                          &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                          &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                          &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                          &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                        },
                      },
                    ],
                    &quot;timeZoneType&quot;: &quot;A String&quot;, # The timezone to use for interpreting the day part targeting.
                  },
                  &quot;longValue&quot;: &quot;A String&quot;, # The long value to include/exclude.
                  &quot;stringValue&quot;: &quot;A String&quot;, # The string value to include/exclude.
                },
              ],
              &quot;inclusions&quot;: [ # The list of value to include as part of the targeting. Each value is OR&#x27;d together.
                { # A polymorphic targeting value used as part of Shared Targeting.
                  &quot;creativeSizeValue&quot;: { # Specifies the size of the creative. # The creative size value to include/exclude. Filled in when key = GOOG_CREATIVE_SIZE
                    &quot;allowedFormats&quot;: [ # What formats are allowed by the publisher. If this repeated field is empty then all formats are allowed. For example, if this field contains AllowedFormatType.AUDIO then the publisher only allows an audio ad (without any video).
                      &quot;A String&quot;,
                    ],
                    &quot;companionSizes&quot;: [ # For video creatives specifies the sizes of companion ads (if present). Companion sizes may be filled in only when creative_size_type = VIDEO
                      { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting.
                        &quot;height&quot;: 42, # The height of the creative.
                        &quot;width&quot;: 42, # The width of the creative
                      },
                    ],
                    &quot;creativeSizeType&quot;: &quot;A String&quot;, # The creative size type.
                    &quot;nativeTemplate&quot;: &quot;A String&quot;, # Output only. The native template for this creative. It will have a value only if creative_size_type = CreativeSizeType.NATIVE.
                    &quot;size&quot;: { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting. # For regular or video creative size type, specifies the size of the creative
                      &quot;height&quot;: 42, # The height of the creative.
                      &quot;width&quot;: 42, # The width of the creative
                    },
                    &quot;skippableAdType&quot;: &quot;A String&quot;, # The type of skippable ad for this creative. It will have a value only if creative_size_type = CreativeSizeType.VIDEO.
                  },
                  &quot;dayPartTargetingValue&quot;: { # Specifies the day part targeting criteria. # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this targeting is derived from the structure used by Ad Manager.
                    &quot;dayParts&quot;: [ # A list of day part targeting criterion.
                      { # Daypart targeting message that specifies if the ad can be shown only during certain parts of a day/week.
                        &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of the week to target. If unspecified, applicable to all days.
                        &quot;endTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The ending time of the day for the ad to show (minute level granularity). The end time is exclusive. This field is not available for filtering in PQL queries.
                          &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                          &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                          &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                          &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                        },
                        &quot;startTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The starting time of day for the ad to show (minute level granularity). The start time is inclusive. This field is not available for filtering in PQL queries.
                          &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                          &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                          &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                          &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                        },
                      },
                    ],
                    &quot;timeZoneType&quot;: &quot;A String&quot;, # The timezone to use for interpreting the day part targeting.
                  },
                  &quot;longValue&quot;: &quot;A String&quot;, # The long value to include/exclude.
                  &quot;stringValue&quot;: &quot;A String&quot;, # The string value to include/exclude.
                },
              ],
              &quot;key&quot;: &quot;A String&quot;, # The key representing the shared targeting criterion. Targeting criteria defined by Google ad servers will begin with GOOG_. Third parties may define their own keys. A list of permissible keys along with the acceptable values will be provided as part of the external documentation.
            },
          ],
          &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the deal was last updated.
          &quot;webPropertyCode&quot;: &quot;A String&quot;, # The web property code for the seller copied over from the product.
        },
      ],
      &quot;displayName&quot;: &quot;A String&quot;, # The name for the proposal.
      &quot;isRenegotiating&quot;: True or False, # Output only. True if the proposal is being renegotiated.
      &quot;isSetupComplete&quot;: True or False, # Output only. True, if the buyside inventory setup is complete for this proposal.
      &quot;lastUpdaterOrCommentorRole&quot;: &quot;A String&quot;, # Output only. The role of the last user that either updated the proposal or left a comment.
      &quot;notes&quot;: [ # Output only. The notes associated with this proposal.
        { # A proposal may be associated to several notes.
          &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp for when this note was created.
          &quot;creatorRole&quot;: &quot;A String&quot;, # Output only. The role of the person (buyer/seller) creating the note.
          &quot;note&quot;: &quot;A String&quot;, # The actual note to attach. (max-length: 1024 unicode code units) Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
          &quot;noteId&quot;: &quot;A String&quot;, # Output only. The unique ID for the note.
          &quot;proposalRevision&quot;: &quot;A String&quot;, # Output only. The revision number of the proposal when the note is created.
        },
      ],
      &quot;originatorRole&quot;: &quot;A String&quot;, # Output only. Indicates whether the buyer/seller created the proposal.
      &quot;privateAuctionId&quot;: &quot;A String&quot;, # Output only. Private auction ID if this proposal is a private auction proposal.
      &quot;proposalId&quot;: &quot;A String&quot;, # Output only. The unique ID of the proposal.
      &quot;proposalRevision&quot;: &quot;A String&quot;, # Output only. The revision number for the proposal. Each update to the proposal or the deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.
      &quot;proposalState&quot;: &quot;A String&quot;, # Output only. The current state of the proposal.
      &quot;seller&quot;: { # Represents a seller of inventory. Each seller is identified by a unique Ad Manager account ID. # Reference to the seller on the proposal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
        &quot;accountId&quot;: &quot;A String&quot;, # The unique ID for the seller. The seller fills in this field. The seller account ID is then available to buyer in the product.
        &quot;subAccountId&quot;: &quot;A String&quot;, # Output only. Ad manager network code for the seller.
      },
      &quot;sellerContacts&quot;: [ # Output only. Contact information for the seller.
        { # Contains information on how a buyer or seller can be reached.
          &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
          &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
        },
      ],
      &quot;termsAndConditions&quot;: &quot;A String&quot;, # Output only. The terms and conditions set by the publisher for this proposal.
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the proposal was last revised.
    },
  ],
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call &#x27;execute()&#x27; on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="pause">pause(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Update given deals to pause serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, please call accounts.proposals.pause endpoint. It is a no-op to pause already-paused deals. It is an error to call PauseProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.

Args:
  accountId: string, Account ID of the buyer. (required)
  proposalId: string, The proposal_id of the proposal containing the deals. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message to pause serving for finalized deals.
  &quot;externalDealIds&quot;: [ # The external_deal_id&#x27;s of the deals to be paused. If empty, all the deals in the proposal will be paused.
    &quot;A String&quot;,
  ],
  &quot;reason&quot;: &quot;A String&quot;, # The reason why the deals are being paused. This human readable message will be displayed in the seller&#x27;s UI. (Max length: 1000 unicode code units.)
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a proposal in the Marketplace. A proposal is the unit of negotiation between a seller and a buyer and contains deals which are served. Note: You can&#x27;t update, create, or otherwise modify Private Auction deals through the API. Fields are updatable unless noted otherwise.
  &quot;billedBuyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # Output only. Reference to the buyer that will get billed for this proposal.
    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
  },
  &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # Reference to the buyer on the proposal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
  },
  &quot;buyerContacts&quot;: [ # Contact information for the buyer.
    { # Contains information on how a buyer or seller can be reached.
      &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
      &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
    },
  ],
  &quot;buyerPrivateData&quot;: { # Buyers are allowed to store certain types of private data in a proposal/deal. # Private data for buyer. (hidden from seller).
    &quot;referenceId&quot;: &quot;A String&quot;, # A buyer or seller specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
  },
  &quot;deals&quot;: [ # The deals associated with this proposal. For Private Auction proposals (whose deals have NonGuaranteedAuctionTerms), there will only be one deal.
    { # A deal represents a segment of inventory for displaying ads on. A proposal can contain multiple deals. A deal contains the terms and targeting information that is used for serving.
      &quot;availableEndTime&quot;: &quot;A String&quot;, # Proposed flight end time of the deal. This will generally be stored in a granularity of a second. A value is not required for Private Auction deals or Preferred Deals.
      &quot;availableStartTime&quot;: &quot;A String&quot;, # Optional. Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (e.g., in milliseconds) will be truncated towards the start of time in seconds.
      &quot;buyerPrivateData&quot;: { # Buyers are allowed to store certain types of private data in a proposal/deal. # Buyer private data (hidden from seller).
        &quot;referenceId&quot;: &quot;A String&quot;, # A buyer or seller specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
      },
      &quot;createProductId&quot;: &quot;A String&quot;, # The product ID from which this deal was created. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;createProductRevision&quot;: &quot;A String&quot;, # Optional. Revision number of the product that the deal was created from. If present on create, and the server `product_revision` has advanced since the passed-in `create_product_revision`, an `ABORTED` error will be returned. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time of the deal creation.
      &quot;creativePreApprovalPolicy&quot;: &quot;A String&quot;, # Output only. Specifies the creative pre-approval policy.
      &quot;creativeRestrictions&quot;: { # Represents creative restrictions associated to Programmatic Guaranteed/ Preferred Deal in Ad Manager. This doesn&#x27;t apply to Private Auction and AdX Preferred Deals. # Output only. Restricitions about the creatives associated with the deal (i.e., size) This is available for Programmatic Guaranteed/Preferred Deals in Ad Manager.
        &quot;creativeFormat&quot;: &quot;A String&quot;, # The format of the environment that the creatives will be displayed in.
        &quot;creativeSpecifications&quot;: [
          { # Represents information for a creative that is associated with a Programmatic Guaranteed/Preferred Deal in Ad Manager.
            &quot;creativeCompanionSizes&quot;: [ # Companion sizes may be filled in only when this is a video creative.
              { # Represents size of a single ad slot, or a creative.
                &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
                &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              },
            ],
            &quot;creativeSize&quot;: { # Represents size of a single ad slot, or a creative. # The size of the creative.
              &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
              &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
            },
          },
        ],
        &quot;skippableAdType&quot;: &quot;A String&quot;, # Skippable video ads allow viewers to skip ads after 5 seconds.
      },
      &quot;creativeSafeFrameCompatibility&quot;: &quot;A String&quot;, # Output only. Specifies whether the creative is safeFrame compatible.
      &quot;dealId&quot;: &quot;A String&quot;, # Output only. A unique deal ID for the deal (server-assigned).
      &quot;dealServingMetadata&quot;: { # Message captures metadata about the serving status of a deal. # Output only. Metadata about the serving status of this deal.
        &quot;dealPauseStatus&quot;: { # Tracks which parties (if any) have paused a deal. The deal is considered paused if either hasBuyerPaused or hasSellPaused is true. # Output only. Tracks which parties (if any) have paused a deal.
          &quot;buyerPauseReason&quot;: &quot;A String&quot;, # The buyer&#x27;s reason for pausing, if the buyer paused the deal.
          &quot;firstPausedBy&quot;: &quot;A String&quot;, # The role of the person who first paused this deal.
          &quot;hasBuyerPaused&quot;: True or False, # True, if the buyer has paused the deal unilaterally.
          &quot;hasSellerPaused&quot;: True or False, # True, if the seller has paused the deal unilaterally.
          &quot;sellerPauseReason&quot;: &quot;A String&quot;, # The seller&#x27;s reason for pausing, if the seller paused the deal.
        },
      },
      &quot;dealTerms&quot;: { # The deal terms specify the details of a Product/deal. They specify things like price per buyer, the type of pricing model (e.g., fixed price, auction) and expected impressions from the publisher. # The negotiable terms of the deal.
        &quot;brandingType&quot;: &quot;A String&quot;, # Visibility of the URL in bid requests. (default: BRANDED)
        &quot;description&quot;: &quot;A String&quot;, # Publisher provided description for the terms.
        &quot;estimatedGrossSpend&quot;: { # Represents a price and a pricing type for a product / deal. # Non-binding estimate of the estimated gross spend for this deal. Can be set by buyer or seller.
          &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
          },
          &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
        },
        &quot;estimatedImpressionsPerDay&quot;: &quot;A String&quot;, # Non-binding estimate of the impressions served per day. Can be set by buyer or seller.
        &quot;guaranteedFixedPriceTerms&quot;: { # Terms for Programmatic Guaranteed Deals. # The terms for guaranteed fixed price deals.
          &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
            { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
              &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                &quot;A String&quot;,
              ],
              &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
              },
              &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                },
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
              },
            },
          ],
          &quot;guaranteedImpressions&quot;: &quot;A String&quot;, # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
          &quot;guaranteedLooks&quot;: &quot;A String&quot;, # Count of guaranteed looks. Required for deal, optional for product.
          &quot;impressionCap&quot;: &quot;A String&quot;, # The lifetime impression cap for CPM sponsorship deals. The deal will stop serving when the cap is reached.
          &quot;minimumDailyLooks&quot;: &quot;A String&quot;, # Daily minimum looks for CPD deal types.
          &quot;percentShareOfVoice&quot;: &quot;A String&quot;, # For sponsorship deals, this is the percentage of the seller&#x27;s eligible impressions that the deal will serve until the cap is reached.
          &quot;reservationType&quot;: &quot;A String&quot;, # The reservation type for a Programmatic Guaranteed deal. This indicates whether the number of impressions is fixed, or a percent of available impressions. If not specified, the default reservation type is STANDARD.
        },
        &quot;nonGuaranteedAuctionTerms&quot;: { # Terms for Private Auctions. Note that Private Auctions can be created only by the seller, but they can be returned in a get or list request. # The terms for non-guaranteed auction deals.
          &quot;autoOptimizePrivateAuction&quot;: True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction.
          &quot;reservePricesPerBuyer&quot;: [ # Reserve price for the specified buyer.
            { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
              &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                &quot;A String&quot;,
              ],
              &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
              },
              &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                },
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
              },
            },
          ],
        },
        &quot;nonGuaranteedFixedPriceTerms&quot;: { # Terms for Preferred Deals. # The terms for non-guaranteed fixed price deals.
          &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
            { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
              &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                &quot;A String&quot;,
              ],
              &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
              },
              &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                },
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
              },
            },
          ],
        },
        &quot;sellerTimeZone&quot;: &quot;A String&quot;, # The time zone name. For deals with Cost Per Day billing, defines the time zone used to mark the boundaries of a day. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
      },
      &quot;deliveryControl&quot;: { # Message contains details about how the deals will be paced. # The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher.
        &quot;creativeBlockingLevel&quot;: &quot;A String&quot;, # Output only. Specified the creative blocking levels to be applied.
        &quot;deliveryRateType&quot;: &quot;A String&quot;, # Output only. Specifies how the impression delivery will be paced.
        &quot;frequencyCaps&quot;: [ # Output only. Specifies any frequency caps.
          { # Frequency cap.
            &quot;maxImpressions&quot;: 42, # The maximum number of impressions that can be served to a user within the specified time period.
            &quot;numTimeUnits&quot;: 42, # The amount of time, in the units specified by time_unit_type. Defines the amount of time over which impressions per user are counted and capped.
            &quot;timeUnitType&quot;: &quot;A String&quot;, # The time unit. Along with num_time_units defines the amount of time over which impressions per user are counted and capped.
          },
        ],
      },
      &quot;description&quot;: &quot;A String&quot;, # Description for the deal terms.
      &quot;displayName&quot;: &quot;A String&quot;, # The name of the deal.
      &quot;externalDealId&quot;: &quot;A String&quot;, # Output only. The external deal ID assigned to this deal once the deal is finalized. This is the deal ID that shows up in serving/reporting etc.
      &quot;isSetupComplete&quot;: True or False, # Output only. True, if the buyside inventory setup is complete for this deal.
      &quot;programmaticCreativeSource&quot;: &quot;A String&quot;, # Output only. Specifies the creative source for programmatic deals. PUBLISHER means creative is provided by seller and ADVERTISER means creative is provided by buyer.
      &quot;proposalId&quot;: &quot;A String&quot;, # Output only. ID of the proposal that this deal is part of.
      &quot;sellerContacts&quot;: [ # Output only. Seller contact information for the deal.
        { # Contains information on how a buyer or seller can be reached.
          &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
          &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
        },
      ],
      &quot;syndicationProduct&quot;: &quot;A String&quot;, # The syndication product associated with the deal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;targeting&quot;: { # Targeting represents different criteria that can be used by advertisers to target ad inventory. For example, they can choose to target ad requests only if the user is in the US. Multiple types of targeting are always applied as a logical AND, unless noted otherwise. # Output only. Specifies the subset of inventory targeted by the deal.
        &quot;geoTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # Geo criteria IDs to be included/excluded.
          &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
            &quot;A String&quot;,
          ],
          &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
            &quot;A String&quot;,
          ],
        },
        &quot;inventorySizeTargeting&quot;: { # Represents the size of an ad unit that can be targeted on an ad request. It only applies to Private Auction, AdX Preferred Deals and Auction Packages. This targeting does not apply to Programmatic Guaranteed and Preferred Deals in Ad Manager. # Inventory sizes to be included/excluded.
          &quot;excludedInventorySizes&quot;: [ # A list of inventory sizes to be excluded.
            { # Represents size of a single ad slot, or a creative.
              &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
              &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
            },
          ],
          &quot;targetedInventorySizes&quot;: [ # A list of inventory sizes to be included.
            { # Represents size of a single ad slot, or a creative.
              &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
              &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
            },
          ],
        },
        &quot;placementTargeting&quot;: { # Represents targeting about where the ads can appear, e.g., certain sites or mobile applications. Different placement targeting types will be logically OR&#x27;ed. # Placement targeting information, e.g., URL, mobile applications.
          &quot;mobileApplicationTargeting&quot;: { # Mobile application targeting settings. # Mobile application targeting information in a deal. This doesn&#x27;t apply to Auction Packages.
            &quot;firstPartyTargeting&quot;: { # Represents a list of targeted and excluded mobile application IDs that publishers own. Mobile application IDs are from App Store and Google Play Store. Android App ID, for example, com.google.android.apps.maps, can be found in Google Play Store URL. iOS App ID (which is a number) can be found at the end of iTunes store URL. First party mobile applications is either included or excluded. # Publisher owned apps to be targeted or excluded by the publisher to display the ads in.
              &quot;excludedAppIds&quot;: [ # A list of application IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedAppIds&quot;: [ # A list of application IDs to be included.
                &quot;A String&quot;,
              ],
            },
          },
          &quot;urlTargeting&quot;: { # Represents a list of targeted and excluded URLs (e.g., google.com). For Private Auction and AdX Preferred Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn&#x27;t apply. # URLs to be included/excluded.
            &quot;excludedUrls&quot;: [ # A list of URLs to be excluded.
              &quot;A String&quot;,
            ],
            &quot;targetedUrls&quot;: [ # A list of URLs to be included.
              &quot;A String&quot;,
            ],
          },
        },
        &quot;technologyTargeting&quot;: { # Represents targeting about various types of technology. # Technology targeting information, e.g., operating system, device category.
          &quot;deviceCapabilityTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of device capabilities to be included/excluded.
            &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
              &quot;A String&quot;,
            ],
            &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
              &quot;A String&quot;,
            ],
          },
          &quot;deviceCategoryTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of device categories to be included/excluded.
            &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
              &quot;A String&quot;,
            ],
            &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
              &quot;A String&quot;,
            ],
          },
          &quot;operatingSystemTargeting&quot;: { # Represents targeting information for operating systems. # Operating system related targeting information.
            &quot;operatingSystemCriteria&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of operating systems to be included/excluded.
              &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                &quot;A String&quot;,
              ],
            },
            &quot;operatingSystemVersionCriteria&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of operating system versions to be included/excluded.
              &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                &quot;A String&quot;,
              ],
            },
          },
        },
        &quot;videoTargeting&quot;: { # Represents targeting information about video. # Video targeting information.
          &quot;excludedPositionTypes&quot;: [ # A list of video positions to be excluded. Position types can either be included or excluded (XOR).
            &quot;A String&quot;,
          ],
          &quot;targetedPositionTypes&quot;: [ # A list of video positions to be included. When the included list is present, the excluded list must be empty. When the excluded list is present, the included list must be empty.
            &quot;A String&quot;,
          ],
        },
      },
      &quot;targetingCriterion&quot;: [ # The shared targeting visible to buyers and sellers. Each shared targeting entity is AND&#x27;d together.
        { # Advertisers can target different attributes of an ad slot. For example, they can choose to show ads only if the user is in the U.S. Such targeting criteria can be specified as part of Shared Targeting.
          &quot;exclusions&quot;: [ # The list of values to exclude from targeting. Each value is AND&#x27;d together.
            { # A polymorphic targeting value used as part of Shared Targeting.
              &quot;creativeSizeValue&quot;: { # Specifies the size of the creative. # The creative size value to include/exclude. Filled in when key = GOOG_CREATIVE_SIZE
                &quot;allowedFormats&quot;: [ # What formats are allowed by the publisher. If this repeated field is empty then all formats are allowed. For example, if this field contains AllowedFormatType.AUDIO then the publisher only allows an audio ad (without any video).
                  &quot;A String&quot;,
                ],
                &quot;companionSizes&quot;: [ # For video creatives specifies the sizes of companion ads (if present). Companion sizes may be filled in only when creative_size_type = VIDEO
                  { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting.
                    &quot;height&quot;: 42, # The height of the creative.
                    &quot;width&quot;: 42, # The width of the creative
                  },
                ],
                &quot;creativeSizeType&quot;: &quot;A String&quot;, # The creative size type.
                &quot;nativeTemplate&quot;: &quot;A String&quot;, # Output only. The native template for this creative. It will have a value only if creative_size_type = CreativeSizeType.NATIVE.
                &quot;size&quot;: { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting. # For regular or video creative size type, specifies the size of the creative
                  &quot;height&quot;: 42, # The height of the creative.
                  &quot;width&quot;: 42, # The width of the creative
                },
                &quot;skippableAdType&quot;: &quot;A String&quot;, # The type of skippable ad for this creative. It will have a value only if creative_size_type = CreativeSizeType.VIDEO.
              },
              &quot;dayPartTargetingValue&quot;: { # Specifies the day part targeting criteria. # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this targeting is derived from the structure used by Ad Manager.
                &quot;dayParts&quot;: [ # A list of day part targeting criterion.
                  { # Daypart targeting message that specifies if the ad can be shown only during certain parts of a day/week.
                    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of the week to target. If unspecified, applicable to all days.
                    &quot;endTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The ending time of the day for the ad to show (minute level granularity). The end time is exclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                    &quot;startTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The starting time of day for the ad to show (minute level granularity). The start time is inclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                  },
                ],
                &quot;timeZoneType&quot;: &quot;A String&quot;, # The timezone to use for interpreting the day part targeting.
              },
              &quot;longValue&quot;: &quot;A String&quot;, # The long value to include/exclude.
              &quot;stringValue&quot;: &quot;A String&quot;, # The string value to include/exclude.
            },
          ],
          &quot;inclusions&quot;: [ # The list of value to include as part of the targeting. Each value is OR&#x27;d together.
            { # A polymorphic targeting value used as part of Shared Targeting.
              &quot;creativeSizeValue&quot;: { # Specifies the size of the creative. # The creative size value to include/exclude. Filled in when key = GOOG_CREATIVE_SIZE
                &quot;allowedFormats&quot;: [ # What formats are allowed by the publisher. If this repeated field is empty then all formats are allowed. For example, if this field contains AllowedFormatType.AUDIO then the publisher only allows an audio ad (without any video).
                  &quot;A String&quot;,
                ],
                &quot;companionSizes&quot;: [ # For video creatives specifies the sizes of companion ads (if present). Companion sizes may be filled in only when creative_size_type = VIDEO
                  { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting.
                    &quot;height&quot;: 42, # The height of the creative.
                    &quot;width&quot;: 42, # The width of the creative
                  },
                ],
                &quot;creativeSizeType&quot;: &quot;A String&quot;, # The creative size type.
                &quot;nativeTemplate&quot;: &quot;A String&quot;, # Output only. The native template for this creative. It will have a value only if creative_size_type = CreativeSizeType.NATIVE.
                &quot;size&quot;: { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting. # For regular or video creative size type, specifies the size of the creative
                  &quot;height&quot;: 42, # The height of the creative.
                  &quot;width&quot;: 42, # The width of the creative
                },
                &quot;skippableAdType&quot;: &quot;A String&quot;, # The type of skippable ad for this creative. It will have a value only if creative_size_type = CreativeSizeType.VIDEO.
              },
              &quot;dayPartTargetingValue&quot;: { # Specifies the day part targeting criteria. # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this targeting is derived from the structure used by Ad Manager.
                &quot;dayParts&quot;: [ # A list of day part targeting criterion.
                  { # Daypart targeting message that specifies if the ad can be shown only during certain parts of a day/week.
                    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of the week to target. If unspecified, applicable to all days.
                    &quot;endTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The ending time of the day for the ad to show (minute level granularity). The end time is exclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                    &quot;startTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The starting time of day for the ad to show (minute level granularity). The start time is inclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                  },
                ],
                &quot;timeZoneType&quot;: &quot;A String&quot;, # The timezone to use for interpreting the day part targeting.
              },
              &quot;longValue&quot;: &quot;A String&quot;, # The long value to include/exclude.
              &quot;stringValue&quot;: &quot;A String&quot;, # The string value to include/exclude.
            },
          ],
          &quot;key&quot;: &quot;A String&quot;, # The key representing the shared targeting criterion. Targeting criteria defined by Google ad servers will begin with GOOG_. Third parties may define their own keys. A list of permissible keys along with the acceptable values will be provided as part of the external documentation.
        },
      ],
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the deal was last updated.
      &quot;webPropertyCode&quot;: &quot;A String&quot;, # The web property code for the seller copied over from the product.
    },
  ],
  &quot;displayName&quot;: &quot;A String&quot;, # The name for the proposal.
  &quot;isRenegotiating&quot;: True or False, # Output only. True if the proposal is being renegotiated.
  &quot;isSetupComplete&quot;: True or False, # Output only. True, if the buyside inventory setup is complete for this proposal.
  &quot;lastUpdaterOrCommentorRole&quot;: &quot;A String&quot;, # Output only. The role of the last user that either updated the proposal or left a comment.
  &quot;notes&quot;: [ # Output only. The notes associated with this proposal.
    { # A proposal may be associated to several notes.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp for when this note was created.
      &quot;creatorRole&quot;: &quot;A String&quot;, # Output only. The role of the person (buyer/seller) creating the note.
      &quot;note&quot;: &quot;A String&quot;, # The actual note to attach. (max-length: 1024 unicode code units) Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;noteId&quot;: &quot;A String&quot;, # Output only. The unique ID for the note.
      &quot;proposalRevision&quot;: &quot;A String&quot;, # Output only. The revision number of the proposal when the note is created.
    },
  ],
  &quot;originatorRole&quot;: &quot;A String&quot;, # Output only. Indicates whether the buyer/seller created the proposal.
  &quot;privateAuctionId&quot;: &quot;A String&quot;, # Output only. Private auction ID if this proposal is a private auction proposal.
  &quot;proposalId&quot;: &quot;A String&quot;, # Output only. The unique ID of the proposal.
  &quot;proposalRevision&quot;: &quot;A String&quot;, # Output only. The revision number for the proposal. Each update to the proposal or the deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.
  &quot;proposalState&quot;: &quot;A String&quot;, # Output only. The current state of the proposal.
  &quot;seller&quot;: { # Represents a seller of inventory. Each seller is identified by a unique Ad Manager account ID. # Reference to the seller on the proposal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
    &quot;accountId&quot;: &quot;A String&quot;, # The unique ID for the seller. The seller fills in this field. The seller account ID is then available to buyer in the product.
    &quot;subAccountId&quot;: &quot;A String&quot;, # Output only. Ad manager network code for the seller.
  },
  &quot;sellerContacts&quot;: [ # Output only. Contact information for the seller.
    { # Contains information on how a buyer or seller can be reached.
      &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
      &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
    },
  ],
  &quot;termsAndConditions&quot;: &quot;A String&quot;, # Output only. The terms and conditions set by the publisher for this proposal.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the proposal was last revised.
}</pre>
</div>

<div class="method">
    <code class="details" id="resume">resume(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Update given deals to resume serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for all listed deals in the request. Currently, this method only applies to PG and PD deals. For PA deals, please call accounts.proposals.resume endpoint. It is a no-op to resume running deals or deals paused by the other party. It is an error to call ResumeProposalDeals for deals which are not part of the proposal of proposal_id or which are not finalized or renegotiating.

Args:
  accountId: string, Account ID of the buyer. (required)
  proposalId: string, The proposal_id of the proposal containing the deals. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message to resume (unpause) serving for already-finalized deals.
  &quot;externalDealIds&quot;: [ # The external_deal_id&#x27;s of the deals to resume. If empty, all the deals in the proposal will be resumed.
    &quot;A String&quot;,
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Represents a proposal in the Marketplace. A proposal is the unit of negotiation between a seller and a buyer and contains deals which are served. Note: You can&#x27;t update, create, or otherwise modify Private Auction deals through the API. Fields are updatable unless noted otherwise.
  &quot;billedBuyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # Output only. Reference to the buyer that will get billed for this proposal.
    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
  },
  &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # Reference to the buyer on the proposal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
    &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
  },
  &quot;buyerContacts&quot;: [ # Contact information for the buyer.
    { # Contains information on how a buyer or seller can be reached.
      &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
      &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
    },
  ],
  &quot;buyerPrivateData&quot;: { # Buyers are allowed to store certain types of private data in a proposal/deal. # Private data for buyer. (hidden from seller).
    &quot;referenceId&quot;: &quot;A String&quot;, # A buyer or seller specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
  },
  &quot;deals&quot;: [ # The deals associated with this proposal. For Private Auction proposals (whose deals have NonGuaranteedAuctionTerms), there will only be one deal.
    { # A deal represents a segment of inventory for displaying ads on. A proposal can contain multiple deals. A deal contains the terms and targeting information that is used for serving.
      &quot;availableEndTime&quot;: &quot;A String&quot;, # Proposed flight end time of the deal. This will generally be stored in a granularity of a second. A value is not required for Private Auction deals or Preferred Deals.
      &quot;availableStartTime&quot;: &quot;A String&quot;, # Optional. Proposed flight start time of the deal. This will generally be stored in the granularity of one second since deal serving starts at seconds boundary. Any time specified with more granularity (e.g., in milliseconds) will be truncated towards the start of time in seconds.
      &quot;buyerPrivateData&quot;: { # Buyers are allowed to store certain types of private data in a proposal/deal. # Buyer private data (hidden from seller).
        &quot;referenceId&quot;: &quot;A String&quot;, # A buyer or seller specified reference ID. This can be queried in the list operations (max-length: 1024 unicode code units).
      },
      &quot;createProductId&quot;: &quot;A String&quot;, # The product ID from which this deal was created. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;createProductRevision&quot;: &quot;A String&quot;, # Optional. Revision number of the product that the deal was created from. If present on create, and the server `product_revision` has advanced since the passed-in `create_product_revision`, an `ABORTED` error will be returned. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The time of the deal creation.
      &quot;creativePreApprovalPolicy&quot;: &quot;A String&quot;, # Output only. Specifies the creative pre-approval policy.
      &quot;creativeRestrictions&quot;: { # Represents creative restrictions associated to Programmatic Guaranteed/ Preferred Deal in Ad Manager. This doesn&#x27;t apply to Private Auction and AdX Preferred Deals. # Output only. Restricitions about the creatives associated with the deal (i.e., size) This is available for Programmatic Guaranteed/Preferred Deals in Ad Manager.
        &quot;creativeFormat&quot;: &quot;A String&quot;, # The format of the environment that the creatives will be displayed in.
        &quot;creativeSpecifications&quot;: [
          { # Represents information for a creative that is associated with a Programmatic Guaranteed/Preferred Deal in Ad Manager.
            &quot;creativeCompanionSizes&quot;: [ # Companion sizes may be filled in only when this is a video creative.
              { # Represents size of a single ad slot, or a creative.
                &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
                &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
                &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              },
            ],
            &quot;creativeSize&quot;: { # Represents size of a single ad slot, or a creative. # The size of the creative.
              &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
              &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
            },
          },
        ],
        &quot;skippableAdType&quot;: &quot;A String&quot;, # Skippable video ads allow viewers to skip ads after 5 seconds.
      },
      &quot;creativeSafeFrameCompatibility&quot;: &quot;A String&quot;, # Output only. Specifies whether the creative is safeFrame compatible.
      &quot;dealId&quot;: &quot;A String&quot;, # Output only. A unique deal ID for the deal (server-assigned).
      &quot;dealServingMetadata&quot;: { # Message captures metadata about the serving status of a deal. # Output only. Metadata about the serving status of this deal.
        &quot;dealPauseStatus&quot;: { # Tracks which parties (if any) have paused a deal. The deal is considered paused if either hasBuyerPaused or hasSellPaused is true. # Output only. Tracks which parties (if any) have paused a deal.
          &quot;buyerPauseReason&quot;: &quot;A String&quot;, # The buyer&#x27;s reason for pausing, if the buyer paused the deal.
          &quot;firstPausedBy&quot;: &quot;A String&quot;, # The role of the person who first paused this deal.
          &quot;hasBuyerPaused&quot;: True or False, # True, if the buyer has paused the deal unilaterally.
          &quot;hasSellerPaused&quot;: True or False, # True, if the seller has paused the deal unilaterally.
          &quot;sellerPauseReason&quot;: &quot;A String&quot;, # The seller&#x27;s reason for pausing, if the seller paused the deal.
        },
      },
      &quot;dealTerms&quot;: { # The deal terms specify the details of a Product/deal. They specify things like price per buyer, the type of pricing model (e.g., fixed price, auction) and expected impressions from the publisher. # The negotiable terms of the deal.
        &quot;brandingType&quot;: &quot;A String&quot;, # Visibility of the URL in bid requests. (default: BRANDED)
        &quot;description&quot;: &quot;A String&quot;, # Publisher provided description for the terms.
        &quot;estimatedGrossSpend&quot;: { # Represents a price and a pricing type for a product / deal. # Non-binding estimate of the estimated gross spend for this deal. Can be set by buyer or seller.
          &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
            &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
            &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
            &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
          },
          &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
        },
        &quot;estimatedImpressionsPerDay&quot;: &quot;A String&quot;, # Non-binding estimate of the impressions served per day. Can be set by buyer or seller.
        &quot;guaranteedFixedPriceTerms&quot;: { # Terms for Programmatic Guaranteed Deals. # The terms for guaranteed fixed price deals.
          &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
            { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
              &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                &quot;A String&quot;,
              ],
              &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
              },
              &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                },
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
              },
            },
          ],
          &quot;guaranteedImpressions&quot;: &quot;A String&quot;, # Guaranteed impressions as a percentage. This is the percentage of guaranteed looks that the buyer is guaranteeing to buy.
          &quot;guaranteedLooks&quot;: &quot;A String&quot;, # Count of guaranteed looks. Required for deal, optional for product.
          &quot;impressionCap&quot;: &quot;A String&quot;, # The lifetime impression cap for CPM sponsorship deals. The deal will stop serving when the cap is reached.
          &quot;minimumDailyLooks&quot;: &quot;A String&quot;, # Daily minimum looks for CPD deal types.
          &quot;percentShareOfVoice&quot;: &quot;A String&quot;, # For sponsorship deals, this is the percentage of the seller&#x27;s eligible impressions that the deal will serve until the cap is reached.
          &quot;reservationType&quot;: &quot;A String&quot;, # The reservation type for a Programmatic Guaranteed deal. This indicates whether the number of impressions is fixed, or a percent of available impressions. If not specified, the default reservation type is STANDARD.
        },
        &quot;nonGuaranteedAuctionTerms&quot;: { # Terms for Private Auctions. Note that Private Auctions can be created only by the seller, but they can be returned in a get or list request. # The terms for non-guaranteed auction deals.
          &quot;autoOptimizePrivateAuction&quot;: True or False, # True if open auction buyers are allowed to compete with invited buyers in this private auction.
          &quot;reservePricesPerBuyer&quot;: [ # Reserve price for the specified buyer.
            { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
              &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                &quot;A String&quot;,
              ],
              &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
              },
              &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                },
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
              },
            },
          ],
        },
        &quot;nonGuaranteedFixedPriceTerms&quot;: { # Terms for Preferred Deals. # The terms for non-guaranteed fixed price deals.
          &quot;fixedPrices&quot;: [ # Fixed price for the specified buyer.
            { # Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in a product can become 0 or 1 deals. To check if there is a PricePerBuyer for a particular buyer or buyer/advertiser pair, we look for the most specific matching rule - we first look for a rule matching the buyer and advertiser, next a rule with the buyer but an empty advertiser list, and otherwise look for a matching rule where no buyer is set.
              &quot;advertiserIds&quot;: [ # The list of advertisers for this price when associated with this buyer. If empty, all advertisers with this buyer pay this price.
                &quot;A String&quot;,
              ],
              &quot;buyer&quot;: { # Represents a buyer of inventory. Each buyer is identified by a unique Authorized Buyers account ID. # The buyer who will pay this price. If unset, all buyers can pay this price (if the advertisers match, and there&#x27;s no more specific rule matching the buyer).
                &quot;accountId&quot;: &quot;A String&quot;, # Authorized Buyers account ID of the buyer.
              },
              &quot;price&quot;: { # Represents a price and a pricing type for a product / deal. # The specified price.
                &quot;amount&quot;: { # Represents an amount of money with its currency type. # The actual price with currency specified.
                  &quot;currencyCode&quot;: &quot;A String&quot;, # The three-letter currency code defined in ISO 4217.
                  &quot;nanos&quot;: 42, # Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
                  &quot;units&quot;: &quot;A String&quot;, # The whole units of the amount. For example if `currencyCode` is `&quot;USD&quot;`, then 1 unit is one US dollar.
                },
                &quot;pricingType&quot;: &quot;A String&quot;, # The pricing type for the deal/product. (default: CPM)
              },
            },
          ],
        },
        &quot;sellerTimeZone&quot;: &quot;A String&quot;, # The time zone name. For deals with Cost Per Day billing, defines the time zone used to mark the boundaries of a day. It should be an IANA TZ name, such as &quot;America/Los_Angeles&quot;. For more information, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
      },
      &quot;deliveryControl&quot;: { # Message contains details about how the deals will be paced. # The set of fields around delivery control that are interesting for a buyer to see but are non-negotiable. These are set by the publisher.
        &quot;creativeBlockingLevel&quot;: &quot;A String&quot;, # Output only. Specified the creative blocking levels to be applied.
        &quot;deliveryRateType&quot;: &quot;A String&quot;, # Output only. Specifies how the impression delivery will be paced.
        &quot;frequencyCaps&quot;: [ # Output only. Specifies any frequency caps.
          { # Frequency cap.
            &quot;maxImpressions&quot;: 42, # The maximum number of impressions that can be served to a user within the specified time period.
            &quot;numTimeUnits&quot;: 42, # The amount of time, in the units specified by time_unit_type. Defines the amount of time over which impressions per user are counted and capped.
            &quot;timeUnitType&quot;: &quot;A String&quot;, # The time unit. Along with num_time_units defines the amount of time over which impressions per user are counted and capped.
          },
        ],
      },
      &quot;description&quot;: &quot;A String&quot;, # Description for the deal terms.
      &quot;displayName&quot;: &quot;A String&quot;, # The name of the deal.
      &quot;externalDealId&quot;: &quot;A String&quot;, # Output only. The external deal ID assigned to this deal once the deal is finalized. This is the deal ID that shows up in serving/reporting etc.
      &quot;isSetupComplete&quot;: True or False, # Output only. True, if the buyside inventory setup is complete for this deal.
      &quot;programmaticCreativeSource&quot;: &quot;A String&quot;, # Output only. Specifies the creative source for programmatic deals. PUBLISHER means creative is provided by seller and ADVERTISER means creative is provided by buyer.
      &quot;proposalId&quot;: &quot;A String&quot;, # Output only. ID of the proposal that this deal is part of.
      &quot;sellerContacts&quot;: [ # Output only. Seller contact information for the deal.
        { # Contains information on how a buyer or seller can be reached.
          &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
          &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
        },
      ],
      &quot;syndicationProduct&quot;: &quot;A String&quot;, # The syndication product associated with the deal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;targeting&quot;: { # Targeting represents different criteria that can be used by advertisers to target ad inventory. For example, they can choose to target ad requests only if the user is in the US. Multiple types of targeting are always applied as a logical AND, unless noted otherwise. # Output only. Specifies the subset of inventory targeted by the deal.
        &quot;geoTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # Geo criteria IDs to be included/excluded.
          &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
            &quot;A String&quot;,
          ],
          &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
            &quot;A String&quot;,
          ],
        },
        &quot;inventorySizeTargeting&quot;: { # Represents the size of an ad unit that can be targeted on an ad request. It only applies to Private Auction, AdX Preferred Deals and Auction Packages. This targeting does not apply to Programmatic Guaranteed and Preferred Deals in Ad Manager. # Inventory sizes to be included/excluded.
          &quot;excludedInventorySizes&quot;: [ # A list of inventory sizes to be excluded.
            { # Represents size of a single ad slot, or a creative.
              &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
              &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
            },
          ],
          &quot;targetedInventorySizes&quot;: [ # A list of inventory sizes to be included.
            { # Represents size of a single ad slot, or a creative.
              &quot;height&quot;: &quot;A String&quot;, # The height of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
              &quot;sizeType&quot;: &quot;A String&quot;, # The size type of the ad slot.
              &quot;width&quot;: &quot;A String&quot;, # The width of the ad slot in pixels. This field will be present only when size type is `PIXEL`.
            },
          ],
        },
        &quot;placementTargeting&quot;: { # Represents targeting about where the ads can appear, e.g., certain sites or mobile applications. Different placement targeting types will be logically OR&#x27;ed. # Placement targeting information, e.g., URL, mobile applications.
          &quot;mobileApplicationTargeting&quot;: { # Mobile application targeting settings. # Mobile application targeting information in a deal. This doesn&#x27;t apply to Auction Packages.
            &quot;firstPartyTargeting&quot;: { # Represents a list of targeted and excluded mobile application IDs that publishers own. Mobile application IDs are from App Store and Google Play Store. Android App ID, for example, com.google.android.apps.maps, can be found in Google Play Store URL. iOS App ID (which is a number) can be found at the end of iTunes store URL. First party mobile applications is either included or excluded. # Publisher owned apps to be targeted or excluded by the publisher to display the ads in.
              &quot;excludedAppIds&quot;: [ # A list of application IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedAppIds&quot;: [ # A list of application IDs to be included.
                &quot;A String&quot;,
              ],
            },
          },
          &quot;urlTargeting&quot;: { # Represents a list of targeted and excluded URLs (e.g., google.com). For Private Auction and AdX Preferred Deals, URLs are either included or excluded. For Programmatic Guaranteed and Preferred Deals, this doesn&#x27;t apply. # URLs to be included/excluded.
            &quot;excludedUrls&quot;: [ # A list of URLs to be excluded.
              &quot;A String&quot;,
            ],
            &quot;targetedUrls&quot;: [ # A list of URLs to be included.
              &quot;A String&quot;,
            ],
          },
        },
        &quot;technologyTargeting&quot;: { # Represents targeting about various types of technology. # Technology targeting information, e.g., operating system, device category.
          &quot;deviceCapabilityTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of device capabilities to be included/excluded.
            &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
              &quot;A String&quot;,
            ],
            &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
              &quot;A String&quot;,
            ],
          },
          &quot;deviceCategoryTargeting&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of device categories to be included/excluded.
            &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
              &quot;A String&quot;,
            ],
            &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
              &quot;A String&quot;,
            ],
          },
          &quot;operatingSystemTargeting&quot;: { # Represents targeting information for operating systems. # Operating system related targeting information.
            &quot;operatingSystemCriteria&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of operating systems to be included/excluded.
              &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                &quot;A String&quot;,
              ],
            },
            &quot;operatingSystemVersionCriteria&quot;: { # Generic targeting used for targeting dimensions that contains a list of included and excluded numeric IDs. # IDs of operating system versions to be included/excluded.
              &quot;excludedCriteriaIds&quot;: [ # A list of numeric IDs to be excluded.
                &quot;A String&quot;,
              ],
              &quot;targetedCriteriaIds&quot;: [ # A list of numeric IDs to be included.
                &quot;A String&quot;,
              ],
            },
          },
        },
        &quot;videoTargeting&quot;: { # Represents targeting information about video. # Video targeting information.
          &quot;excludedPositionTypes&quot;: [ # A list of video positions to be excluded. Position types can either be included or excluded (XOR).
            &quot;A String&quot;,
          ],
          &quot;targetedPositionTypes&quot;: [ # A list of video positions to be included. When the included list is present, the excluded list must be empty. When the excluded list is present, the included list must be empty.
            &quot;A String&quot;,
          ],
        },
      },
      &quot;targetingCriterion&quot;: [ # The shared targeting visible to buyers and sellers. Each shared targeting entity is AND&#x27;d together.
        { # Advertisers can target different attributes of an ad slot. For example, they can choose to show ads only if the user is in the U.S. Such targeting criteria can be specified as part of Shared Targeting.
          &quot;exclusions&quot;: [ # The list of values to exclude from targeting. Each value is AND&#x27;d together.
            { # A polymorphic targeting value used as part of Shared Targeting.
              &quot;creativeSizeValue&quot;: { # Specifies the size of the creative. # The creative size value to include/exclude. Filled in when key = GOOG_CREATIVE_SIZE
                &quot;allowedFormats&quot;: [ # What formats are allowed by the publisher. If this repeated field is empty then all formats are allowed. For example, if this field contains AllowedFormatType.AUDIO then the publisher only allows an audio ad (without any video).
                  &quot;A String&quot;,
                ],
                &quot;companionSizes&quot;: [ # For video creatives specifies the sizes of companion ads (if present). Companion sizes may be filled in only when creative_size_type = VIDEO
                  { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting.
                    &quot;height&quot;: 42, # The height of the creative.
                    &quot;width&quot;: 42, # The width of the creative
                  },
                ],
                &quot;creativeSizeType&quot;: &quot;A String&quot;, # The creative size type.
                &quot;nativeTemplate&quot;: &quot;A String&quot;, # Output only. The native template for this creative. It will have a value only if creative_size_type = CreativeSizeType.NATIVE.
                &quot;size&quot;: { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting. # For regular or video creative size type, specifies the size of the creative
                  &quot;height&quot;: 42, # The height of the creative.
                  &quot;width&quot;: 42, # The width of the creative
                },
                &quot;skippableAdType&quot;: &quot;A String&quot;, # The type of skippable ad for this creative. It will have a value only if creative_size_type = CreativeSizeType.VIDEO.
              },
              &quot;dayPartTargetingValue&quot;: { # Specifies the day part targeting criteria. # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this targeting is derived from the structure used by Ad Manager.
                &quot;dayParts&quot;: [ # A list of day part targeting criterion.
                  { # Daypart targeting message that specifies if the ad can be shown only during certain parts of a day/week.
                    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of the week to target. If unspecified, applicable to all days.
                    &quot;endTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The ending time of the day for the ad to show (minute level granularity). The end time is exclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                    &quot;startTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The starting time of day for the ad to show (minute level granularity). The start time is inclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                  },
                ],
                &quot;timeZoneType&quot;: &quot;A String&quot;, # The timezone to use for interpreting the day part targeting.
              },
              &quot;longValue&quot;: &quot;A String&quot;, # The long value to include/exclude.
              &quot;stringValue&quot;: &quot;A String&quot;, # The string value to include/exclude.
            },
          ],
          &quot;inclusions&quot;: [ # The list of value to include as part of the targeting. Each value is OR&#x27;d together.
            { # A polymorphic targeting value used as part of Shared Targeting.
              &quot;creativeSizeValue&quot;: { # Specifies the size of the creative. # The creative size value to include/exclude. Filled in when key = GOOG_CREATIVE_SIZE
                &quot;allowedFormats&quot;: [ # What formats are allowed by the publisher. If this repeated field is empty then all formats are allowed. For example, if this field contains AllowedFormatType.AUDIO then the publisher only allows an audio ad (without any video).
                  &quot;A String&quot;,
                ],
                &quot;companionSizes&quot;: [ # For video creatives specifies the sizes of companion ads (if present). Companion sizes may be filled in only when creative_size_type = VIDEO
                  { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting.
                    &quot;height&quot;: 42, # The height of the creative.
                    &quot;width&quot;: 42, # The width of the creative
                  },
                ],
                &quot;creativeSizeType&quot;: &quot;A String&quot;, # The creative size type.
                &quot;nativeTemplate&quot;: &quot;A String&quot;, # Output only. The native template for this creative. It will have a value only if creative_size_type = CreativeSizeType.NATIVE.
                &quot;size&quot;: { # Message depicting the size of the creative. The units of width and height depend on the type of the targeting. # For regular or video creative size type, specifies the size of the creative
                  &quot;height&quot;: 42, # The height of the creative.
                  &quot;width&quot;: 42, # The width of the creative
                },
                &quot;skippableAdType&quot;: &quot;A String&quot;, # The type of skippable ad for this creative. It will have a value only if creative_size_type = CreativeSizeType.VIDEO.
              },
              &quot;dayPartTargetingValue&quot;: { # Specifies the day part targeting criteria. # The daypart targeting to include / exclude. Filled in when the key is GOOG_DAYPART_TARGETING. The definition of this targeting is derived from the structure used by Ad Manager.
                &quot;dayParts&quot;: [ # A list of day part targeting criterion.
                  { # Daypart targeting message that specifies if the ad can be shown only during certain parts of a day/week.
                    &quot;dayOfWeek&quot;: &quot;A String&quot;, # The day of the week to target. If unspecified, applicable to all days.
                    &quot;endTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The ending time of the day for the ad to show (minute level granularity). The end time is exclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                    &quot;startTime&quot;: { # Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`. # The starting time of day for the ad to show (minute level granularity). The start time is inclusive. This field is not available for filtering in PQL queries.
                      &quot;hours&quot;: 42, # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value &quot;24:00:00&quot; for scenarios like business closing time.
                      &quot;minutes&quot;: 42, # Minutes of hour of day. Must be from 0 to 59.
                      &quot;nanos&quot;: 42, # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
                      &quot;seconds&quot;: 42, # Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.
                    },
                  },
                ],
                &quot;timeZoneType&quot;: &quot;A String&quot;, # The timezone to use for interpreting the day part targeting.
              },
              &quot;longValue&quot;: &quot;A String&quot;, # The long value to include/exclude.
              &quot;stringValue&quot;: &quot;A String&quot;, # The string value to include/exclude.
            },
          ],
          &quot;key&quot;: &quot;A String&quot;, # The key representing the shared targeting criterion. Targeting criteria defined by Google ad servers will begin with GOOG_. Third parties may define their own keys. A list of permissible keys along with the acceptable values will be provided as part of the external documentation.
        },
      ],
      &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the deal was last updated.
      &quot;webPropertyCode&quot;: &quot;A String&quot;, # The web property code for the seller copied over from the product.
    },
  ],
  &quot;displayName&quot;: &quot;A String&quot;, # The name for the proposal.
  &quot;isRenegotiating&quot;: True or False, # Output only. True if the proposal is being renegotiated.
  &quot;isSetupComplete&quot;: True or False, # Output only. True, if the buyside inventory setup is complete for this proposal.
  &quot;lastUpdaterOrCommentorRole&quot;: &quot;A String&quot;, # Output only. The role of the last user that either updated the proposal or left a comment.
  &quot;notes&quot;: [ # Output only. The notes associated with this proposal.
    { # A proposal may be associated to several notes.
      &quot;createTime&quot;: &quot;A String&quot;, # Output only. The timestamp for when this note was created.
      &quot;creatorRole&quot;: &quot;A String&quot;, # Output only. The role of the person (buyer/seller) creating the note.
      &quot;note&quot;: &quot;A String&quot;, # The actual note to attach. (max-length: 1024 unicode code units) Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
      &quot;noteId&quot;: &quot;A String&quot;, # Output only. The unique ID for the note.
      &quot;proposalRevision&quot;: &quot;A String&quot;, # Output only. The revision number of the proposal when the note is created.
    },
  ],
  &quot;originatorRole&quot;: &quot;A String&quot;, # Output only. Indicates whether the buyer/seller created the proposal.
  &quot;privateAuctionId&quot;: &quot;A String&quot;, # Output only. Private auction ID if this proposal is a private auction proposal.
  &quot;proposalId&quot;: &quot;A String&quot;, # Output only. The unique ID of the proposal.
  &quot;proposalRevision&quot;: &quot;A String&quot;, # Output only. The revision number for the proposal. Each update to the proposal or the deal causes the proposal revision number to auto-increment. The buyer keeps track of the last revision number they know of and pass it in when making an update. If the head revision number on the server has since incremented, then an ABORTED error is returned during the update operation to let the buyer know that a subsequent update was made.
  &quot;proposalState&quot;: &quot;A String&quot;, # Output only. The current state of the proposal.
  &quot;seller&quot;: { # Represents a seller of inventory. Each seller is identified by a unique Ad Manager account ID. # Reference to the seller on the proposal. Note: This field may be set only when creating the resource. Modifying this field while updating the resource will result in an error.
    &quot;accountId&quot;: &quot;A String&quot;, # The unique ID for the seller. The seller fills in this field. The seller account ID is then available to buyer in the product.
    &quot;subAccountId&quot;: &quot;A String&quot;, # Output only. Ad manager network code for the seller.
  },
  &quot;sellerContacts&quot;: [ # Output only. Contact information for the seller.
    { # Contains information on how a buyer or seller can be reached.
      &quot;email&quot;: &quot;A String&quot;, # Email address for the contact.
      &quot;name&quot;: &quot;A String&quot;, # The name of the contact.
    },
  ],
  &quot;termsAndConditions&quot;: &quot;A String&quot;, # Output only. The terms and conditions set by the publisher for this proposal.
  &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The time when the proposal was last revised.
}</pre>
</div>

</body></html>