<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.proposals.html">proposals</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#accept">accept(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Mark the proposal as accepted at the given revision number. If the number does not match the server's revision number an `ABORTED` error message will be returned. This call updates the proposal_state from `PROPOSED` to `BUYER_ACCEPTED`, or from `SELLER_ACCEPTED` to `FINALIZED`. Upon calling this endpoint, the buyer implicitly agrees to the terms and conditions optionally set within the proposal by the publisher.</p>
<p class="toc_element">
  <code><a href="#addNote">addNote(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Create a new note and attach it to the proposal. The note is assigned a unique ID by the server. The proposal revision number will not increase when associated with a new note.</p>
<p class="toc_element">
  <code><a href="#cancelNegotiation">cancelNegotiation(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Cancel an ongoing negotiation on a proposal. This does not cancel or end serving for the deals if the proposal has been finalized, but only cancels a negotiation unilaterally.</p>
<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="#completeSetup">completeSetup(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update the given proposal to indicate that setup has been completed. This method is called by the buyer when the line items have been created on their end for a finalized proposal and all the required creatives have been uploaded using the creatives API. This call updates the `is_setup_completed` bit on the proposal and also notifies the seller. The server will advance the revision number of the most recent proposal.</p>
<p class="toc_element">
  <code><a href="#create">create(accountId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Create the given proposal. Each created proposal and any deals it contains are assigned a unique ID by the server.</p>
<p class="toc_element">
  <code><a href="#get">get(accountId, proposalId, x__xgafv=None)</a></code></p>
<p class="firstline">Gets a proposal given its ID. The proposal is returned at its head revision.</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 proposals. A filter expression (PQL query) may be specified to filter the results. To retrieve all finalized proposals, regardless if a proposal is being renegotiated, see the FinalizedProposals resource. Note that Bidder/ChildSeat relationships differ from the usual behavior. A Bidder account can only see its child seats' proposals by specifying the ChildSeat's accountId in the request path.</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 the given proposal to pause serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all deals in the proposal. It is a no-op to pause an already-paused proposal. It is an error to call PauseProposal for a proposal that is 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 the given proposal to resume serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for all deals in the proposal. Note that if the `has_seller_paused` bit is also set, serving will not resume until the seller also resumes. It is a no-op to resume an already-running proposal. It is an error to call ResumeProposal for a proposal that is not finalized or renegotiating.</p>
<p class="toc_element">
  <code><a href="#update">update(accountId, proposalId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Update the given proposal at the client known revision number. If the server revision has advanced since the passed-in `proposal.proposal_revision`, an `ABORTED` error message will be returned. Only the buyer-modifiable fields of the proposal will be updated. Note that the deals in the proposal will be updated to match the passed-in copy. If a passed-in deal does not have a `deal_id`, the server will assign a new unique ID and create the deal. If passed-in deal has a `deal_id`, it will be updated to match the passed-in copy. Any existing deals not present in the passed-in proposal will be deleted. It is an error to pass in a deal with a `deal_id` not present at head.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="accept">accept(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Mark the proposal as accepted at the given revision number. If the number does not match the server&#x27;s revision number an `ABORTED` error message will be returned. This call updates the proposal_state from `PROPOSED` to `BUYER_ACCEPTED`, or from `SELLER_ACCEPTED` to `FINALIZED`. Upon calling this endpoint, the buyer implicitly agrees to the terms and conditions optionally set within the proposal by the publisher.

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

{ # Request to accept a proposal.
  &quot;proposalRevision&quot;: &quot;A String&quot;, # The last known client revision number of the proposal.
}

  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="addNote">addNote(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Create a new note and attach it to the proposal. The note is assigned a unique ID by the server. The proposal revision number will not increase when associated with a new note.

Args:
  accountId: string, Account ID of the buyer. (required)
  proposalId: string, The ID of the proposal to attach the note to. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for adding a note to a given proposal.
  &quot;note&quot;: { # A proposal may be associated to several notes. # Details of the note to add.
    &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.
  },
}

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

Returns:
  An object of the form:

    { # 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.
}</pre>
</div>

<div class="method">
    <code class="details" id="cancelNegotiation">cancelNegotiation(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Cancel an ongoing negotiation on a proposal. This does not cancel or end serving for the deals if the proposal has been finalized, but only cancels a negotiation unilaterally.

Args:
  accountId: string, Account ID of the buyer. (required)
  proposalId: string, The ID of the proposal to cancel negotiation for. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request to cancel an ongoing negotiation.
}

  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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="completeSetup">completeSetup(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Update the given proposal to indicate that setup has been completed. This method is called by the buyer when the line items have been created on their end for a finalized proposal and all the required creatives have been uploaded using the creatives API. This call updates the `is_setup_completed` bit on the proposal and also notifies the seller. The server will advance the revision number of the most recent proposal.

Args:
  accountId: string, Account ID of the buyer. (required)
  proposalId: string, The ID of the proposal to mark as setup completed. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request message for indicating that the proposal&#x27;s setup step is complete.
}

  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="create">create(accountId, body=None, x__xgafv=None)</code>
  <pre>Create the given proposal. Each created proposal and any deals it contains are assigned a unique ID by the server.

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

{ # 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.
}

  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="get">get(accountId, proposalId, x__xgafv=None)</code>
  <pre>Gets a proposal given its ID. The proposal is returned at its head revision.

Args:
  accountId: string, Account ID of the buyer. (required)
  proposalId: string, The unique ID of the proposal (required)
  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="list">list(accountId, filter=None, filterSyntax=None, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>List proposals. A filter expression (PQL query) may be specified to filter the results. To retrieve all finalized proposals, regardless if a proposal is being renegotiated, see the FinalizedProposals resource. Note that Bidder/ChildSeat relationships differ from the usual behavior. A Bidder account can only see its child seats&#x27; proposals by specifying the ChildSeat&#x27;s accountId in the request path.

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 the given proposal to pause serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all deals in the proposal. It is a no-op to pause an already-paused proposal. It is an error to call PauseProposal for a proposal that is not finalized or renegotiating.

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

{ # Request message to pause serving for an already-finalized proposal.
  &quot;reason&quot;: &quot;A String&quot;, # The reason why the proposal is 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 the given proposal to resume serving. This method will set the `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for all deals in the proposal. Note that if the `has_seller_paused` bit is also set, serving will not resume until the seller also resumes. It is a no-op to resume an already-running proposal. It is an error to call ResumeProposal for a proposal that is not finalized or renegotiating.

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

{ # Request message to resume (unpause) serving for an already-finalized proposal.
}

  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="update">update(accountId, proposalId, body=None, x__xgafv=None)</code>
  <pre>Update the given proposal at the client known revision number. If the server revision has advanced since the passed-in `proposal.proposal_revision`, an `ABORTED` error message will be returned. Only the buyer-modifiable fields of the proposal will be updated. Note that the deals in the proposal will be updated to match the passed-in copy. If a passed-in deal does not have a `deal_id`, the server will assign a new unique ID and create the deal. If passed-in deal has a `deal_id`, it will be updated to match the passed-in copy. Any existing deals not present in the passed-in proposal will be deleted. It is an error to pass in a deal with a `deal_id` not present at head.

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

{ # 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.
}

  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>