<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="realtimebidding_v1alpha.html">Real-time Bidding API</a> . <a href="realtimebidding_v1alpha.bidders.html">bidders</a> . <a href="realtimebidding_v1alpha.bidders.biddingFunctions.html">biddingFunctions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#activate">activate(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Activates an existing bidding function. An activated function is available for invocation for the server-side TURTLEDOVE simulations.</p>
<p class="toc_element">
  <code><a href="#archive">archive(name, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Archives an existing bidding function. An archived function will not be available for function invocation for the server-side TURTLEDOVE simulations unless it is activated.</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="#create">create(parent, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Creates a new bidding function.</p>
<p class="toc_element">
  <code><a href="#list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists the bidding functions that a bidder currently has registered.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next()</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="activate">activate(name, body=None, x__xgafv=None)</code>
  <pre>Activates an existing bidding function. An activated function is available for invocation for the server-side TURTLEDOVE simulations.

Args:
  name: string, Required. The name of the bidding function to activate. Format: `bidders/{bidder_account_id}/biddingFunction/{bidding_function_name}` (required)
  body: object, The request body.
    The object takes the form of:

{ # The request to activate a bidding function.
}

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

Returns:
  An object of the form:

    { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
  &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the bidding function.
  &quot;type&quot;: &quot;A String&quot;, # The type of the bidding function to be created.
}</pre>
</div>

<div class="method">
    <code class="details" id="archive">archive(name, body=None, x__xgafv=None)</code>
  <pre>Archives an existing bidding function. An archived function will not be available for function invocation for the server-side TURTLEDOVE simulations unless it is activated.

Args:
  name: string, Required. The name of the bidding function to archive. Format: `bidders/{bidder_account_id}/biddingFunction/{bidding_function_name}` (required)
  body: object, The request body.
    The object takes the form of:

{ # A request to archive a bidding function.
}

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

Returns:
  An object of the form:

    { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
  &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the bidding function.
  &quot;type&quot;: &quot;A String&quot;, # The type of the bidding function to be created.
}</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="create">create(parent, body=None, x__xgafv=None)</code>
  <pre>Creates a new bidding function.

Args:
  parent: string, Required. The name of the bidder for which to create the bidding function. Format: `bidders/{bidderAccountId}` (required)
  body: object, The request body.
    The object takes the form of:

{ # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
  &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the bidding function.
  &quot;type&quot;: &quot;A String&quot;, # The type of the bidding function to be created.
}

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

Returns:
  An object of the form:

    { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
  &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
  &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
  &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the bidding function.
  &quot;type&quot;: &quot;A String&quot;, # The type of the bidding function to be created.
}</pre>
</div>

<div class="method">
    <code class="details" id="list">list(parent, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists the bidding functions that a bidder currently has registered.

Args:
  parent: string, Required. Name of the bidder whose bidding functions will be listed. Format: `bidders/{bidder_account_id}` (required)
  pageSize: integer, The maximum number of bidding functions to return.
  pageToken: string, A token identifying a page of results the server should return. This value is received from a previous `ListBiddingFunctions` call in ListBiddingFunctionsResponse.nextPageToken.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A response containing a list of a bidder&#x27;s bidding functions.
  &quot;biddingFunctions&quot;: [ # A list of a bidder&#x27;s bidding functions.
    { # The bidding function to be executed as part of the TURTLEDOVE simulation experiment bidding flow.
      &quot;biddingFunction&quot;: &quot;A String&quot;, # The raw Javascript source code of the bidding function.
      &quot;name&quot;: &quot;A String&quot;, # The name of the bidding function that must follow the pattern: `bidders/{bidder_account_id}/biddingFunctions/{bidding_function_name}`.
      &quot;state&quot;: &quot;A String&quot;, # Output only. The state of the bidding function.
      &quot;type&quot;: &quot;A String&quot;, # The type of the bidding function to be created.
    },
  ],
  &quot;nextPageToken&quot;: &quot;A String&quot;, # A token which can be passed to a subsequent call to the `ListBiddingFunctions` method to retrieve the next page of results in ListBiddingFunctionsRequest.pageToken.
}</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next()</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>