<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="games_v1.html">Google Play Game Services API</a> . <a href="games_v1.events.html">events</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#listByPlayer">listByPlayer(pageToken=None, language=None, maxResults=None)</a></code></p>
<p class="firstline">Returns a list showing the current progress on events in this application for the currently authenticated user.</p>
<p class="toc_element">
  <code><a href="#listByPlayer_next">listByPlayer_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="#listDefinitions">listDefinitions(pageToken=None, language=None, maxResults=None)</a></code></p>
<p class="firstline">Returns a list of the event definitions in this application.</p>
<p class="toc_element">
  <code><a href="#listDefinitions_next">listDefinitions_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="#record">record(body, language=None)</a></code></p>
<p class="firstline">Records a batch of changes to the number of times events have occurred for the currently authenticated user of this application.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="listByPlayer">listByPlayer(pageToken=None, language=None, maxResults=None)</code>
  <pre>Returns a list showing the current progress on events in this application for the currently authenticated user.

Args:
  pageToken: string, The token returned by the previous request.
  language: string, The preferred language to use for strings returned by this method.
  maxResults: integer, The maximum number of events to return in the response, used for paging. For any response, the actual number of events to return may be less than the specified maxResults.

Returns:
  An object of the form:

    { # This is a JSON template for a ListByPlayer response.
    "nextPageToken": "A String", # The pagination token for the next page of results.
    "items": [ # The player events.
      { # This is a JSON template for an event status resource.
        "definitionId": "A String", # The ID of the event definition.
        "playerId": "A String", # The ID of the player.
        "kind": "games#playerEvent", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerEvent.
        "numEvents": "A String", # The current number of times this event has occurred.
        "formattedNumEvents": "A String", # The current number of times this event has occurred, as a string. The formatting of this string depends on the configuration of your event in the Play Games Developer Console.
      },
    ],
    "kind": "games#playerEventListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerEventListResponse.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listByPlayer_next">listByPlayer_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="listDefinitions">listDefinitions(pageToken=None, language=None, maxResults=None)</code>
  <pre>Returns a list of the event definitions in this application.

Args:
  pageToken: string, The token returned by the previous request.
  language: string, The preferred language to use for strings returned by this method.
  maxResults: integer, The maximum number of event definitions to return in the response, used for paging. For any response, the actual number of event definitions to return may be less than the specified maxResults.

Returns:
  An object of the form:

    { # This is a JSON template for a ListDefinitions response.
    "nextPageToken": "A String", # The pagination token for the next page of results.
    "items": [ # The event definitions.
      { # This is a JSON template for an event definition resource.
        "isDefaultImageUrl": True or False, # Indicates whether the icon image being returned is a default image, or is game-provided.
        "kind": "games#eventDefinition", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventDefinition.
        "displayName": "A String", # The name to display for the event.
        "description": "A String", # Description of what this event represents.
        "imageUrl": "A String", # The base URL for the image that represents the event.
        "visibility": "A String", # The visibility of event being tracked in this definition.
            # Possible values are:
            # - "REVEALED": This event should be visible to all users.
            # - "HIDDEN": This event should only be shown to users that have recorded this event at least once.
        "childEvents": [ # A list of events that are a child of this event.
          { # This is a JSON template for an event child relationship resource.
            "kind": "games#eventChild", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventChild.
            "childId": "A String", # The ID of the child event.
          },
        ],
        "id": "A String", # The ID of the event.
      },
    ],
    "kind": "games#eventDefinitionListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventDefinitionListResponse.
  }</pre>
</div>

<div class="method">
    <code class="details" id="listDefinitions_next">listDefinitions_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="record">record(body, language=None)</code>
  <pre>Records a batch of changes to the number of times events have occurred for the currently authenticated user of this application.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{ # This is a JSON template for an event period update resource.
    "timePeriods": [ # A list of the time period updates being made in this request.
      { # This is a JSON template for an event period update resource.
        "kind": "games#eventPeriodUpdate", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventPeriodUpdate.
        "timePeriod": { # This is a JSON template for an event period time range. # The time period being covered by this update.
          "kind": "games#eventPeriodRange", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventPeriodRange.
          "periodStartMillis": "A String", # The time when this update period begins, in millis, since 1970 UTC (Unix Epoch).
          "periodEndMillis": "A String", # The time when this update period ends, in millis, since 1970 UTC (Unix Epoch).
        },
        "updates": [ # The updates being made for this time period.
          { # This is a JSON template for an event period update resource.
            "definitionId": "A String", # The ID of the event being modified in this update.
            "kind": "games#eventUpdateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventUpdateRequest.
            "updateCount": "A String", # The number of times this event occurred in this time period.
          },
        ],
      },
    ],
    "kind": "games#eventRecordRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventRecordRequest.
    "requestId": "A String", # The request ID used to identify this attempt to record events.
    "currentTimeMillis": "A String", # The current time when this update was sent, in milliseconds, since 1970 UTC (Unix Epoch).
  }

  language: string, The preferred language to use for strings returned by this method.

Returns:
  An object of the form:

    { # This is a JSON template for an event period update resource.
    "playerEvents": [ # The current status of any updated events
      { # This is a JSON template for an event status resource.
        "definitionId": "A String", # The ID of the event definition.
        "playerId": "A String", # The ID of the player.
        "kind": "games#playerEvent", # Uniquely identifies the type of this resource. Value is always the fixed string games#playerEvent.
        "numEvents": "A String", # The current number of times this event has occurred.
        "formattedNumEvents": "A String", # The current number of times this event has occurred, as a string. The formatting of this string depends on the configuration of your event in the Play Games Developer Console.
      },
    ],
    "eventFailures": [ # Any failures updating a particular event.
      { # This is a JSON template for an event update failure resource.
        "eventId": "A String", # The ID of the event that was not updated.
        "kind": "games#eventRecordFailure", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventRecordFailure.
        "failureCause": "A String", # The cause for the update failure.
            # Possible values are:
            # - "NOT_FOUND" - An attempt was made to set an event that was not defined.
            # - "INVALID_UPDATE_VALUE" - An attempt was made to increment an event by a non-positive value.
      },
    ],
    "kind": "games#eventUpdateResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventUpdateResponse.
    "batchFailures": [ # Any batch-wide failures which occurred applying updates.
      { # This is a JSON template for a batch update failure resource.
        "kind": "games#eventBatchRecordFailure", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventBatchRecordFailure.
        "range": { # This is a JSON template for an event period time range. # The time range which was rejected; empty for a request-wide failure.
          "kind": "games#eventPeriodRange", # Uniquely identifies the type of this resource. Value is always the fixed string games#eventPeriodRange.
          "periodStartMillis": "A String", # The time when this update period begins, in millis, since 1970 UTC (Unix Epoch).
          "periodEndMillis": "A String", # The time when this update period ends, in millis, since 1970 UTC (Unix Epoch).
        },
        "failureCause": "A String", # The cause for the update failure.
            # Possible values are:
            # - "TOO_LARGE": A batch request was issued with more events than are allowed in a single batch.
            # - "TIME_PERIOD_EXPIRED": A batch was sent with data too far in the past to record.
            # - "TIME_PERIOD_SHORT": A batch was sent with a time range that was too short.
            # - "TIME_PERIOD_LONG": A batch was sent with a time range that was too long.
            # - "ALREADY_UPDATED": An attempt was made to record a batch of data which was already seen.
            # - "RECORD_RATE_HIGH": An attempt was made to record data faster than the server will apply updates.
      },
    ],
  }</pre>
</div>

</body></html>