<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="displayvideo_v1.html">Display & Video 360 API</a> . <a href="displayvideo_v1.inventorySources.html">inventorySources</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#get">get(inventorySourceId, partnerId=None, x__xgafv=None)</a></code></p>
<p class="firstline">Gets an inventory source.</p>
<p class="toc_element">
  <code><a href="#list">list(pageSize=None, advertiserId=None, partnerId=None, pageToken=None, filter=None, orderBy=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists inventory sources that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, inventory sources with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="get">get(inventorySourceId, partnerId=None, x__xgafv=None)</code>
  <pre>Gets an inventory source.

Args:
  inventorySourceId: string, Required. The ID of the inventory source to fetch. (required)
  partnerId: string, Required. The ID of the DV360 partner to which the fetched inventory source is permissioned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # An inventory source.
    &quot;status&quot;: { # The status related settings of the inventory source. # The status settings of the inventory source.
      &quot;entityStatus&quot;: &quot;A String&quot;, # Whether or not the inventory source is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.
      &quot;entityPauseReason&quot;: &quot;A String&quot;, # The user-provided reason for pausing this inventory source. Must not exceed 100 characters. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.
      &quot;sellerPauseReason&quot;: &quot;A String&quot;, # Output only. The seller-provided reason for pausing this inventory source. Only applicable for inventory sources synced directly from the publishers and when seller_status is set to `ENTITY_STATUS_PAUSED`.
      &quot;configStatus&quot;: &quot;A String&quot;, # Output only. The configuration status of the inventory source. Only applicable for guaranteed inventory sources. Acceptable values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve.
      &quot;sellerStatus&quot;: &quot;A String&quot;, # Output only. The status set by the seller for the inventory source. Only applicable for inventory sources synced directly from the publishers. Acceptable values are `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.
    },
    &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the inventory source was last updated. Assigned by the system.
    &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the inventory source.
    &quot;commitment&quot;: &quot;A String&quot;, # Whether the inventory source has a guaranteed or non-guaranteed delivery.
    &quot;timeRange&quot;: { # A time range. # The time range when this inventory source starts and stops serving.
      &quot;endTime&quot;: &quot;A String&quot;, # Required. The upper bound of a time range, inclusive.
      &quot;startTime&quot;: &quot;A String&quot;, # Required. The lower bound of a time range, inclusive.
    },
    &quot;dealId&quot;: &quot;A String&quot;, # The ID in the exchange space that uniquely identifies the inventory source. Must be unique across buyers within each exchange but not necessarily unique across exchanges.
    &quot;displayName&quot;: &quot;A String&quot;, # The display name of the inventory source. Must be UTF-8 encoded with a maximum size of 240 bytes.
    &quot;deliveryMethod&quot;: &quot;A String&quot;, # The delivery method of the inventory source. * For non-guaranteed inventory sources, the only acceptable value is `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed inventory sources, acceptable values are `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.
    &quot;creativeConfigs&quot;: [ # The creative requirements of the inventory source. Not applicable for auction packages.
      { # Creative requirements configuration for the inventory source.
        &quot;videoCreativeConfig&quot;: { # The configuration for video creatives. # The configuration for video creatives. Applicable when creative_type is `CREATIVE_TYPE_VIDEO`.
          &quot;duration&quot;: &quot;A String&quot;, # The duration requirements for the video creatives that can be assigned to the inventory source.
        },
        &quot;displayCreativeConfig&quot;: { # The configuration for display creatives. # The configuration for display creatives. Applicable when creative_type is `CREATIVE_TYPE_STANDARD`.
          &quot;creativeSize&quot;: { # Dimensions. # The size requirements for display creatives that can be assigned to the inventory source.
            &quot;widthPixels&quot;: 42, # The width in pixels.
            &quot;heightPixels&quot;: 42, # The height in pixels.
          },
        },
        &quot;creativeType&quot;: &quot;A String&quot;, # The type of creative that can be assigned to the inventory source.
      },
    ],
    &quot;exchange&quot;: &quot;A String&quot;, # The exchange to which the inventory source belongs.
    &quot;inventorySourceId&quot;: &quot;A String&quot;, # Output only. The unique ID of the inventory source. Assigned by the system.
    &quot;publisherName&quot;: &quot;A String&quot;, # The publisher/seller name of the inventory source.
    &quot;inventorySourceType&quot;: &quot;A String&quot;, # Denotes the type of the inventory source.
    &quot;rateDetails&quot;: { # The rate related settings of the inventory source. # Required. The rate details of the inventory source.
      &quot;inventorySourceRateType&quot;: &quot;A String&quot;, # The rate type. Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and `INVENTORY_SOURCE_RATE_TYPE_CPD`.
      &quot;unitsPurchased&quot;: &quot;A String&quot;, # Required for guaranteed inventory sources. The number of impressions guaranteed by the seller.
      &quot;minimumSpend&quot;: { # Represents an amount of money with its currency type. # Output only. The amount that the buyer has committed to spending on the inventory source up front. Only applicable for guaranteed inventory sources.
        &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;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;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
      },
      &quot;rate&quot;: { # Represents an amount of money with its currency type. # The rate for the inventory source.
        &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;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;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
      },
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(pageSize=None, advertiserId=None, partnerId=None, pageToken=None, filter=None, orderBy=None, x__xgafv=None)</code>
  <pre>Lists inventory sources that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, inventory sources with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.

Args:
  pageSize: integer, Requested page size. Must be between `1` and `100`. If unspecified will default to `100`.
  advertiserId: string, The ID of the advertiser that has access to the inventory source.
  partnerId: string, The ID of the partner that has access to the inventory source.
  pageToken: string, A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.
  filter: string, Allows filtering by inventory source properties. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The operator must be `EQUALS (=)`. * Supported fields: - `status.entityStatus` - `commitment` - `deliveryMethod` - `rateDetails.rateType` - `exchange` Examples: * All active inventory sources: `status.entityStatus=&quot;ENTITY_STATUS_ACTIVE&quot;` * Inventory sources belonging to Google Ad Manager or Rubicon exchanges: `exchange=&quot;EXCHANGE_GOOGLE_AD_MANAGER&quot; OR exchange=&quot;EXCHANGE_RUBICON&quot;` The length of this field should be no more than 500 characters.
  orderBy: string, Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix &quot;desc&quot; should be added to the field name. For example, `displayName desc`.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;inventorySources&quot;: [ # The list of inventory sources. This list will be absent if empty.
      { # An inventory source.
        &quot;status&quot;: { # The status related settings of the inventory source. # The status settings of the inventory source.
          &quot;entityStatus&quot;: &quot;A String&quot;, # Whether or not the inventory source is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.
          &quot;entityPauseReason&quot;: &quot;A String&quot;, # The user-provided reason for pausing this inventory source. Must not exceed 100 characters. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.
          &quot;sellerPauseReason&quot;: &quot;A String&quot;, # Output only. The seller-provided reason for pausing this inventory source. Only applicable for inventory sources synced directly from the publishers and when seller_status is set to `ENTITY_STATUS_PAUSED`.
          &quot;configStatus&quot;: &quot;A String&quot;, # Output only. The configuration status of the inventory source. Only applicable for guaranteed inventory sources. Acceptable values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve.
          &quot;sellerStatus&quot;: &quot;A String&quot;, # Output only. The status set by the seller for the inventory source. Only applicable for inventory sources synced directly from the publishers. Acceptable values are `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.
        },
        &quot;updateTime&quot;: &quot;A String&quot;, # Output only. The timestamp when the inventory source was last updated. Assigned by the system.
        &quot;name&quot;: &quot;A String&quot;, # Output only. The resource name of the inventory source.
        &quot;commitment&quot;: &quot;A String&quot;, # Whether the inventory source has a guaranteed or non-guaranteed delivery.
        &quot;timeRange&quot;: { # A time range. # The time range when this inventory source starts and stops serving.
          &quot;endTime&quot;: &quot;A String&quot;, # Required. The upper bound of a time range, inclusive.
          &quot;startTime&quot;: &quot;A String&quot;, # Required. The lower bound of a time range, inclusive.
        },
        &quot;dealId&quot;: &quot;A String&quot;, # The ID in the exchange space that uniquely identifies the inventory source. Must be unique across buyers within each exchange but not necessarily unique across exchanges.
        &quot;displayName&quot;: &quot;A String&quot;, # The display name of the inventory source. Must be UTF-8 encoded with a maximum size of 240 bytes.
        &quot;deliveryMethod&quot;: &quot;A String&quot;, # The delivery method of the inventory source. * For non-guaranteed inventory sources, the only acceptable value is `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed inventory sources, acceptable values are `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.
        &quot;creativeConfigs&quot;: [ # The creative requirements of the inventory source. Not applicable for auction packages.
          { # Creative requirements configuration for the inventory source.
            &quot;videoCreativeConfig&quot;: { # The configuration for video creatives. # The configuration for video creatives. Applicable when creative_type is `CREATIVE_TYPE_VIDEO`.
              &quot;duration&quot;: &quot;A String&quot;, # The duration requirements for the video creatives that can be assigned to the inventory source.
            },
            &quot;displayCreativeConfig&quot;: { # The configuration for display creatives. # The configuration for display creatives. Applicable when creative_type is `CREATIVE_TYPE_STANDARD`.
              &quot;creativeSize&quot;: { # Dimensions. # The size requirements for display creatives that can be assigned to the inventory source.
                &quot;widthPixels&quot;: 42, # The width in pixels.
                &quot;heightPixels&quot;: 42, # The height in pixels.
              },
            },
            &quot;creativeType&quot;: &quot;A String&quot;, # The type of creative that can be assigned to the inventory source.
          },
        ],
        &quot;exchange&quot;: &quot;A String&quot;, # The exchange to which the inventory source belongs.
        &quot;inventorySourceId&quot;: &quot;A String&quot;, # Output only. The unique ID of the inventory source. Assigned by the system.
        &quot;publisherName&quot;: &quot;A String&quot;, # The publisher/seller name of the inventory source.
        &quot;inventorySourceType&quot;: &quot;A String&quot;, # Denotes the type of the inventory source.
        &quot;rateDetails&quot;: { # The rate related settings of the inventory source. # Required. The rate details of the inventory source.
          &quot;inventorySourceRateType&quot;: &quot;A String&quot;, # The rate type. Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and `INVENTORY_SOURCE_RATE_TYPE_CPD`.
          &quot;unitsPurchased&quot;: &quot;A String&quot;, # Required for guaranteed inventory sources. The number of impressions guaranteed by the seller.
          &quot;minimumSpend&quot;: { # Represents an amount of money with its currency type. # Output only. The amount that the buyer has committed to spending on the inventory source up front. Only applicable for guaranteed inventory sources.
            &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;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;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
          },
          &quot;rate&quot;: { # Represents an amount of money with its currency type. # The rate for the inventory source.
            &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;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;currencyCode&quot;: &quot;A String&quot;, # The 3-letter currency code defined in ISO 4217.
          },
        },
      },
    ],
    &quot;nextPageToken&quot;: &quot;A String&quot;, # A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySources` method to retrieve the next page of results.
  }</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>

</body></html>