<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.clients.html">clients</a> . <a href="adexchangebuyer2_v2beta1.accounts.clients.users.html">users</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(accountId, clientAccountId, userId, x__xgafv=None)</a></code></p>
<p class="firstline">Retrieves an existing client user.</p>
<p class="toc_element">
  <code><a href="#list">list(accountId, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Lists all the known client users for a specified</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="#update">update(accountId, clientAccountId, userId, body, x__xgafv=None)</a></code></p>
<p class="firstline">Updates an existing client user.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(accountId, clientAccountId, userId, x__xgafv=None)</code>
  <pre>Retrieves an existing client user.

Args:
  accountId: string, Numerical account ID of the client's sponsor buyer. (required) (required)
  clientAccountId: string, Numerical account ID of the client buyer
that the user to be retrieved is associated with. (required) (required)
  userId: string, Numerical identifier of the user to retrieve. (required) (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A client user is created under a client buyer and has restricted access to
      # the Ad Exchange Marketplace and certain other sections
      # of the Ad Exchange Buyer UI based on the role
      # granted to the associated client buyer.
      #
      # The only way a new client user can be created is via accepting an
      # email invitation
      # (see the
      # accounts.clients.invitations.create
      # method).
      #
      # All fields are required unless otherwise specified.
    "status": "A String", # The status of the client user.
    "clientAccountId": "A String", # Numerical account ID of the client buyer
        # with which the user is associated; the
        # buyer must be a client of the current sponsor buyer.
        # The value of this field is ignored in an update operation.
    "userId": "A String", # The unique numerical ID of the client user
        # that has accepted an invitation.
        # The value of this field is ignored in an update operation.
    "email": "A String", # User's email address. The value of this field
        # is ignored in an update operation.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(accountId, clientAccountId, pageSize=None, pageToken=None, x__xgafv=None)</code>
  <pre>Lists all the known client users for a specified
sponsor buyer account ID.

Args:
  accountId: string, Numerical account ID of the sponsor buyer of the client to list users for.
(required) (required)
  clientAccountId: string, The account ID of the client buyer to list users for. (required)
You must specify either a string representation of a
numerical account identifier or the `-` character
to list all the client users for all the clients
of a given sponsor buyer. (required)
  pageSize: integer, Requested page size. The server may return fewer clients than requested.
If unspecified, the server will pick an appropriate default.
  pageToken: string, A token identifying a page of results the server should return.
Typically, this is the value of
ListClientUsersResponse.nextPageToken
returned from the previous call to the
accounts.clients.users.list method.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # A token to retrieve the next page of results.
        # Pass this value in the
        # ListClientUsersRequest.pageToken
        # field in the subsequent call to the
        # clients.invitations.list
        # method to retrieve the next
        # page of results.
    "users": [ # The returned list of client users.
      { # A client user is created under a client buyer and has restricted access to
          # the Ad Exchange Marketplace and certain other sections
          # of the Ad Exchange Buyer UI based on the role
          # granted to the associated client buyer.
          #
          # The only way a new client user can be created is via accepting an
          # email invitation
          # (see the
          # accounts.clients.invitations.create
          # method).
          #
          # All fields are required unless otherwise specified.
        "status": "A String", # The status of the client user.
        "clientAccountId": "A String", # Numerical account ID of the client buyer
            # with which the user is associated; the
            # buyer must be a client of the current sponsor buyer.
            # The value of this field is ignored in an update operation.
        "userId": "A String", # The unique numerical ID of the client user
            # that has accepted an invitation.
            # The value of this field is ignored in an update operation.
        "email": "A String", # User's email address. The value of this field
            # is ignored in an update operation.
      },
    ],
  }</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 'execute()' 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="update">update(accountId, clientAccountId, userId, body, x__xgafv=None)</code>
  <pre>Updates an existing client user.
Only the user status can be changed on update.

Args:
  accountId: string, Numerical account ID of the client's sponsor buyer. (required) (required)
  clientAccountId: string, Numerical account ID of the client buyer that the user to be retrieved
is associated with. (required) (required)
  userId: string, Numerical identifier of the user to retrieve. (required) (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # A client user is created under a client buyer and has restricted access to
    # the Ad Exchange Marketplace and certain other sections
    # of the Ad Exchange Buyer UI based on the role
    # granted to the associated client buyer.
    # 
    # The only way a new client user can be created is via accepting an
    # email invitation
    # (see the
    # accounts.clients.invitations.create
    # method).
    # 
    # All fields are required unless otherwise specified.
  "status": "A String", # The status of the client user.
  "clientAccountId": "A String", # Numerical account ID of the client buyer
      # with which the user is associated; the
      # buyer must be a client of the current sponsor buyer.
      # The value of this field is ignored in an update operation.
  "userId": "A String", # The unique numerical ID of the client user
      # that has accepted an invitation.
      # The value of this field is ignored in an update operation.
  "email": "A String", # User's email address. The value of this field
      # is ignored in an update operation.
}

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

Returns:
  An object of the form:

    { # A client user is created under a client buyer and has restricted access to
      # the Ad Exchange Marketplace and certain other sections
      # of the Ad Exchange Buyer UI based on the role
      # granted to the associated client buyer.
      #
      # The only way a new client user can be created is via accepting an
      # email invitation
      # (see the
      # accounts.clients.invitations.create
      # method).
      #
      # All fields are required unless otherwise specified.
    "status": "A String", # The status of the client user.
    "clientAccountId": "A String", # Numerical account ID of the client buyer
        # with which the user is associated; the
        # buyer must be a client of the current sponsor buyer.
        # The value of this field is ignored in an update operation.
    "userId": "A String", # The unique numerical ID of the client user
        # that has accepted an invitation.
        # The value of this field is ignored in an update operation.
    "email": "A String", # User's email address. The value of this field
        # is ignored in an update operation.
  }</pre>
</div>

</body></html>