<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="gamesManagement_v1management.html">Google Play Game Management</a> . <a href="gamesManagement_v1management.events.html">events</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#reset">reset(eventId, x__xgafv=None)</a></code></p>
<p class="firstline">Resets all player progress on the event with the given ID for the currently</p>
<p class="toc_element">
  <code><a href="#resetAll">resetAll(x__xgafv=None)</a></code></p>
<p class="firstline">Resets all player progress on all events for the currently authenticated</p>
<p class="toc_element">
  <code><a href="#resetAllForAllPlayers">resetAllForAllPlayers(x__xgafv=None)</a></code></p>
<p class="firstline">Resets all draft events for all players. This method is only available to</p>
<p class="toc_element">
  <code><a href="#resetForAllPlayers">resetForAllPlayers(eventId, x__xgafv=None)</a></code></p>
<p class="firstline">Resets the event with the given ID for all players. This method is only</p>
<p class="toc_element">
  <code><a href="#resetMultipleForAllPlayers">resetMultipleForAllPlayers(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Resets events with the given IDs for all players. This method is only</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="reset">reset(eventId, x__xgafv=None)</code>
  <pre>Resets all player progress on the event with the given ID for the currently
authenticated player. This method is only accessible to whitelisted tester
accounts for your application.

Args:
  eventId: string, The ID of the event. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="resetAll">resetAll(x__xgafv=None)</code>
  <pre>Resets all player progress on all events for the currently authenticated
player. This method is only accessible to whitelisted tester accounts for
your application.

Args:
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="resetAllForAllPlayers">resetAllForAllPlayers(x__xgafv=None)</code>
  <pre>Resets all draft events for all players. This method is only available to
user accounts for your developer console.

Args:
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="resetForAllPlayers">resetForAllPlayers(eventId, x__xgafv=None)</code>
  <pre>Resets the event with the given ID for all players. This method is only
available to user accounts for your developer console. Only draft events
can be reset.

Args:
  eventId: string, The ID of the event. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

<div class="method">
    <code class="details" id="resetMultipleForAllPlayers">resetMultipleForAllPlayers(body=None, x__xgafv=None)</code>
  <pre>Resets events with the given IDs for all players. This method is only
available to user accounts for your developer console. Only draft events
may be reset.

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

{ # Multiple events reset all request.
    &quot;event_ids&quot;: [ # The IDs of events to reset.
      &quot;A String&quot;,
    ],
    &quot;kind&quot;: &quot;A String&quot;, # Uniquely identifies the type of this resource. Value is always the fixed
        # string `gamesManagement#eventsResetMultipleForAllRequest`.
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
</pre>
</div>

</body></html>