<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="plusDomains_v1.html">Google+ Domains API</a> . <a href="plusDomains_v1.audiences.html">audiences</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(userId, pageToken=None, maxResults=None)</a></code></p>
<p class="firstline">Shut down. See https://developers.google.com/+/api-shutdown for more details.</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="list">list(userId, pageToken=None, maxResults=None)</code>
  <pre>Shut down. See https://developers.google.com/+/api-shutdown for more details.

Args:
  userId: string, The ID of the user to get audiences for. The special value "me" can be used to indicate the authenticated user. (required)
  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of "nextPageToken" from the previous response.
  maxResults: integer, The maximum number of circles to include in the response, which is used for paging. For any response, the actual number returned might be less than the specified maxResults.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
    "items": [ # The audiences in this result.
      {
        "memberCount": 42, # The number of people in this circle. This only applies if entity_type is CIRCLE.
        "item": { # The access control list entry.
          "type": "A String", # The type of entry describing to whom access is granted. Possible values are:
              # - "person" - Access to an individual.
              # - "circle" - Access to members of a circle.
              # - "myCircles" - Access to members of all the person's circles.
              # - "extendedCircles" - Access to members of all the person's circles, plus all of the people in their circles.
              # - "domain" - Access to members of the person's Google Apps domain.
              # - "public" - Access to anyone on the web.
          "displayName": "A String", # A descriptive name for this entry. Suitable for display.
          "id": "A String", # The ID of the entry. For entries of type "person" or "circle", this is the ID of the resource. For other types, this property is not set.
        },
        "kind": "plus#audience", # Identifies this resource as an audience. Value: "plus#audience".
        "etag": "A String", # ETag of this response for caching purposes.
        "visibility": "A String", # The circle members' visibility as chosen by the owner of the circle. This only applies for items with "item.type" equals "circle". Possible values are:
            # - "public" - Members are visible to the public.
            # - "limited" - Members are visible to a limited audience.
            # - "private" - Members are visible to the owner only.
      },
    ],
    "kind": "plus#audiencesFeed", # Identifies this resource as a collection of audiences. Value: "plus#audienceFeed".
    "etag": "A String", # ETag of this response for caching purposes.
    "totalItems": 42, # The total number of ACL entries. The number of entries in this response may be smaller due to paging.
  }</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>

</body></html>