<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.turnBasedMatches.html">turnBasedMatches</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#cancel">cancel(matchId)</a></code></p>
<p class="firstline">Cancel a turn-based match.</p>
<p class="toc_element">
  <code><a href="#create">create(body=None, language=None)</a></code></p>
<p class="firstline">Create a turn-based match.</p>
<p class="toc_element">
  <code><a href="#decline">decline(matchId, language=None)</a></code></p>
<p class="firstline">Decline an invitation to play a turn-based match.</p>
<p class="toc_element">
  <code><a href="#dismiss">dismiss(matchId)</a></code></p>
<p class="firstline">Dismiss a turn-based match from the match list. The match will no longer show up in the list and will not generate notifications.</p>
<p class="toc_element">
  <code><a href="#finish">finish(matchId, body=None, language=None)</a></code></p>
<p class="firstline">Finish a turn-based match. Each player should make this call once, after all results are in. Only the player whose turn it is may make the first call to Finish, and can pass in the final match state.</p>
<p class="toc_element">
  <code><a href="#get">get(matchId, includeMatchData=None, language=None)</a></code></p>
<p class="firstline">Get the data for a turn-based match.</p>
<p class="toc_element">
  <code><a href="#join">join(matchId, language=None)</a></code></p>
<p class="firstline">Join a turn-based match.</p>
<p class="toc_element">
  <code><a href="#leave">leave(matchId, language=None)</a></code></p>
<p class="firstline">Leave a turn-based match when it is not the current player's turn, without canceling the match.</p>
<p class="toc_element">
  <code><a href="#leaveTurn">leaveTurn(matchId, matchVersion, language=None, pendingParticipantId=None)</a></code></p>
<p class="firstline">Leave a turn-based match during the current player's turn, without canceling the match.</p>
<p class="toc_element">
  <code><a href="#list">list(includeMatchData=None, language=None, maxCompletedMatches=None, maxResults=None, pageToken=None)</a></code></p>
<p class="firstline">Returns turn-based matches the player is or was involved in.</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="#rematch">rematch(matchId, language=None, requestId=None)</a></code></p>
<p class="firstline">Create a rematch of a match that was previously completed, with the same participants. This can be called by only one player on a match still in their list; the player must have called Finish first. Returns the newly created match; it will be the caller's turn.</p>
<p class="toc_element">
  <code><a href="#sync">sync(includeMatchData=None, language=None, maxCompletedMatches=None, maxResults=None, pageToken=None)</a></code></p>
<p class="firstline">Returns turn-based matches the player is or was involved in that changed since the last sync call, with the least recent changes coming first. Matches that should be removed from the local cache will have a status of MATCH_DELETED.</p>
<p class="toc_element">
  <code><a href="#sync_next">sync_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="#takeTurn">takeTurn(matchId, body=None, language=None)</a></code></p>
<p class="firstline">Commit the results of a player turn.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="cancel">cancel(matchId)</code>
  <pre>Cancel a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="create">create(body=None, language=None)</code>
  <pre>Create a turn-based match.

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

{ # This is a JSON template for a turn-based match creation request.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;invitedPlayerIds&quot;: [ # The player ids to invite to the match.
      &quot;A String&quot;,
    ],
    &quot;kind&quot;: &quot;games#turnBasedMatchCreateRequest&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchCreateRequest.
    &quot;requestId&quot;: &quot;A String&quot;, # A randomly generated numeric ID. This number is used at the server to ensure that the request is handled correctly across retries.
    &quot;variant&quot;: 42, # The variant / mode of the application to be played. This can be any integer value, or left blank. You should use a small number of variants to keep the auto-matching pool as large as possible.
  }

  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="decline">decline(matchId, language=None)</code>
  <pre>Decline an invitation to play a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="dismiss">dismiss(matchId)</code>
  <pre>Dismiss a turn-based match from the match list. The match will no longer show up in the list and will not generate notifications.

Args:
  matchId: string, The ID of the match. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="finish">finish(matchId, body=None, language=None)</code>
  <pre>Finish a turn-based match. Each player should make this call once, after all results are in. Only the player whose turn it is may make the first call to Finish, and can pass in the final match state.

Args:
  matchId: string, The ID of the match. (required)
  body: object, The request body.
    The object takes the form of:

{ # This is a JSON template for a turn-based match results object.
    &quot;data&quot;: { # This is a JSON template for sending a turn-based match data object. # The final match data.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;kind&quot;: &quot;games#turnBasedMatchDataRequest&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchDataRequest.
    },
    &quot;kind&quot;: &quot;games#turnBasedMatchResults&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchResults.
    &quot;matchVersion&quot;: 42, # The version of the match being updated.
    &quot;results&quot;: [ # The match results for the participants in the match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
  }

  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(matchId, includeMatchData=None, language=None)</code>
  <pre>Get the data for a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
  includeMatchData: boolean, Get match data along with metadata.
  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="join">join(matchId, language=None)</code>
  <pre>Join a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="leave">leave(matchId, language=None)</code>
  <pre>Leave a turn-based match when it is not the current player&#x27;s turn, without canceling the match.

Args:
  matchId: string, The ID of the match. (required)
  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="leaveTurn">leaveTurn(matchId, matchVersion, language=None, pendingParticipantId=None)</code>
  <pre>Leave a turn-based match during the current player&#x27;s turn, without canceling the match.

Args:
  matchId: string, The ID of the match. (required)
  matchVersion: integer, The version of the match being updated. (required)
  language: string, The preferred language to use for strings returned by this method.
  pendingParticipantId: string, The ID of another participant who should take their turn next. If not set, the match will wait for other player(s) to join via automatching; this is only valid if automatch criteria is set on the match with remaining slots for automatched players.

Returns:
  An object of the form:

    { # This is a JSON template for a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(includeMatchData=None, language=None, maxCompletedMatches=None, maxResults=None, pageToken=None)</code>
  <pre>Returns turn-based matches the player is or was involved in.

Args:
  includeMatchData: boolean, True if match data should be returned in the response. Note that not all data will necessarily be returned if include_match_data is true; the server may decide to only return data for some of the matches to limit download size for the client. The remainder of the data for these matches will be retrievable on request.
  language: string, The preferred language to use for strings returned by this method.
  maxCompletedMatches: integer, The maximum number of completed or canceled matches to return in the response. If not set, all matches returned could be completed or canceled.
  maxResults: integer, The maximum number of matches to return in the response, used for paging. For any response, the actual number of matches to return may be less than the specified maxResults.
  pageToken: string, The token returned by the previous request.

Returns:
  An object of the form:

    { # This is a JSON template for a list of turn-based matches.
    &quot;items&quot;: [ # The matches.
      { # This is a JSON template for a turn-based match resource object.
        &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
        &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
          &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
          &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
          &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
          &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
        },
        &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
          &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
          &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
          &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
        },
        &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
          &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
          &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
          &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
        },
        &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
        &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
        &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
        &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
          &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
          &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
          &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
        },
        &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
        &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
        &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
        &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
          { # This is a JSON template for a participant in a turn-based match.
            &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
            &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
              &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
              &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
              &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
            },
            &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
            &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
            &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
              &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
              &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
              &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
              &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
              &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
                &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
                &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
                  &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                  &quot;level&quot;: 42, # The level for the user.
                  &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                  &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
                },
                &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
                &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
                &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
                  &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                  &quot;level&quot;: 42, # The level for the user.
                  &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                  &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
                },
              },
              &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
              &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
              &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
                &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
                &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
                &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
              },
              &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
                &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
                &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
              },
              &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
              &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
              &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
                &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
                &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
                &quot;profileVisible&quot;: True or False,
              },
              &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
            },
            &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
                # Possible values are:
                # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
                # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
                # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
                # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
                # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
                # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
                # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
          },
        ],
        &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
        &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
          &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
          &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
          &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
        },
        &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
        &quot;results&quot;: [ # The results reported for this match.
          { # This is a JSON template for a result for a match participant.
            &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
            &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
            &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
            &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
                # Possible values are:
                # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
                # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
                # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
                # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
                # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
                # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
          },
        ],
        &quot;status&quot;: &quot;A String&quot;, # The status of the match.
            # Possible values are:
            # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
            # - &quot;MATCH_ACTIVE&quot; - The match has started.
            # - &quot;MATCH_COMPLETE&quot; - The match has finished.
            # - &quot;MATCH_CANCELED&quot; - The match was canceled.
            # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
            # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
        &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
            # Possible values are:
            # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
            # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
            # - &quot;USER_TURN&quot; - The user has an action to take in the match.
            # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
        &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
        &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
      },
    ],
    &quot;kind&quot;: &quot;games#turnBasedMatchList&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchList.
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The pagination token for the next page of results.
  }</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 &#x27;execute()&#x27; 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="rematch">rematch(matchId, language=None, requestId=None)</code>
  <pre>Create a rematch of a match that was previously completed, with the same participants. This can be called by only one player on a match still in their list; the player must have called Finish first. Returns the newly created match; it will be the caller&#x27;s turn.

Args:
  matchId: string, The ID of the match. (required)
  language: string, The preferred language to use for strings returned by this method.
  requestId: string, A randomly generated numeric ID for each request specified by the caller. This number is used at the server to ensure that the request is handled correctly across retries.

Returns:
  An object of the form:

    { # This is a JSON template for a rematch response.
    &quot;kind&quot;: &quot;games#turnBasedMatchRematch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchRematch.
    &quot;previousMatch&quot;: { # This is a JSON template for a turn-based match resource object. # The old match that the rematch was created from; will be updated such that the rematchId field will point at the new match.
      &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
      &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
        &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
        &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
        &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
        &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
      },
      &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
        &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
        &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
      },
      &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
        &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
        &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
        &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
      },
      &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
      &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
      &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
        &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
        &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
      },
      &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
      &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
      &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
      &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
        { # This is a JSON template for a participant in a turn-based match.
          &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
          &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
            &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
            &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
            &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
          },
          &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
          &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
          &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
            &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
            &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
            &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
            &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
            &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
              &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
              &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
                &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                &quot;level&quot;: 42, # The level for the user.
                &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
              },
              &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
              &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
              &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
                &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                &quot;level&quot;: 42, # The level for the user.
                &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
              },
            },
            &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
            &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
            &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
              &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
              &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
              &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
            },
            &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
              &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
              &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
            },
            &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
            &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
            &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
              &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
              &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
              &quot;profileVisible&quot;: True or False,
            },
            &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
          },
          &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
              # Possible values are:
              # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
              # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
              # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
              # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
              # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
              # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
              # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
        },
      ],
      &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
      &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
        &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
        &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
        &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
      },
      &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
      &quot;results&quot;: [ # The results reported for this match.
        { # This is a JSON template for a result for a match participant.
          &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
          &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
          &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
          &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
              # Possible values are:
              # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
              # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
              # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
              # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
              # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
              # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
        },
      ],
      &quot;status&quot;: &quot;A String&quot;, # The status of the match.
          # Possible values are:
          # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
          # - &quot;MATCH_ACTIVE&quot; - The match has started.
          # - &quot;MATCH_COMPLETE&quot; - The match has finished.
          # - &quot;MATCH_CANCELED&quot; - The match was canceled.
          # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
          # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
      &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
          # Possible values are:
          # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
          # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
          # - &quot;USER_TURN&quot; - The user has an action to take in the match.
          # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
      &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
      &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
    },
    &quot;rematch&quot;: { # This is a JSON template for a turn-based match resource object. # The newly created match; a rematch of the old match with the same participants.
      &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
      &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
        &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
        &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
        &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
        &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
      },
      &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
        &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
        &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
      },
      &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
        &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
        &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
        &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
      },
      &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
      &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
      &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
        &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
        &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
      },
      &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
      &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
      &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
      &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
        { # This is a JSON template for a participant in a turn-based match.
          &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
          &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
            &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
            &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
            &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
          },
          &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
          &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
          &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
            &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
            &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
            &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
            &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
            &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
              &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
              &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
                &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                &quot;level&quot;: 42, # The level for the user.
                &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
              },
              &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
              &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
              &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
                &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                &quot;level&quot;: 42, # The level for the user.
                &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
              },
            },
            &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
            &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
            &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
              &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
              &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
              &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
            },
            &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
              &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
              &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
            },
            &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
            &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
            &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
              &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
              &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
              &quot;profileVisible&quot;: True or False,
            },
            &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
          },
          &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
              # Possible values are:
              # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
              # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
              # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
              # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
              # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
              # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
              # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
        },
      ],
      &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
      &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
        &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
        &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
        &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
      },
      &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
      &quot;results&quot;: [ # The results reported for this match.
        { # This is a JSON template for a result for a match participant.
          &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
          &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
          &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
          &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
              # Possible values are:
              # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
              # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
              # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
              # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
              # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
              # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
        },
      ],
      &quot;status&quot;: &quot;A String&quot;, # The status of the match.
          # Possible values are:
          # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
          # - &quot;MATCH_ACTIVE&quot; - The match has started.
          # - &quot;MATCH_COMPLETE&quot; - The match has finished.
          # - &quot;MATCH_CANCELED&quot; - The match was canceled.
          # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
          # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
      &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
          # Possible values are:
          # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
          # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
          # - &quot;USER_TURN&quot; - The user has an action to take in the match.
          # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
      &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
      &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="sync">sync(includeMatchData=None, language=None, maxCompletedMatches=None, maxResults=None, pageToken=None)</code>
  <pre>Returns turn-based matches the player is or was involved in that changed since the last sync call, with the least recent changes coming first. Matches that should be removed from the local cache will have a status of MATCH_DELETED.

Args:
  includeMatchData: boolean, True if match data should be returned in the response. Note that not all data will necessarily be returned if include_match_data is true; the server may decide to only return data for some of the matches to limit download size for the client. The remainder of the data for these matches will be retrievable on request.
  language: string, The preferred language to use for strings returned by this method.
  maxCompletedMatches: integer, The maximum number of completed or canceled matches to return in the response. If not set, all matches returned could be completed or canceled.
  maxResults: integer, The maximum number of matches to return in the response, used for paging. For any response, the actual number of matches to return may be less than the specified maxResults.
  pageToken: string, The token returned by the previous request.

Returns:
  An object of the form:

    { # This is a JSON template for a list of turn-based matches returned from a sync.
    &quot;items&quot;: [ # The matches.
      { # This is a JSON template for a turn-based match resource object.
        &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
        &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
          &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
          &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
          &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
          &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
        },
        &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
          &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
          &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
          &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
        },
        &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
          &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
          &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
          &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
        },
        &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
        &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
        &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
        &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
          &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
          &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
          &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
        },
        &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
        &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
        &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
        &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
          { # This is a JSON template for a participant in a turn-based match.
            &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
            &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
              &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
              &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
              &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
            },
            &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
            &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
            &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
              &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
              &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
              &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
              &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
              &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
                &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
                &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
                  &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                  &quot;level&quot;: 42, # The level for the user.
                  &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                  &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
                },
                &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
                &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
                &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
                  &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
                  &quot;level&quot;: 42, # The level for the user.
                  &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
                  &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
                },
              },
              &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
              &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
              &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
                &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
                &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
                &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
              },
              &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
                &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
                &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
              },
              &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
              &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
              &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
                &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
                &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
                &quot;profileVisible&quot;: True or False,
              },
              &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
            },
            &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
                # Possible values are:
                # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
                # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
                # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
                # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
                # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
                # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
                # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
          },
        ],
        &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
        &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
          &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
          &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
          &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
        },
        &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
        &quot;results&quot;: [ # The results reported for this match.
          { # This is a JSON template for a result for a match participant.
            &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
            &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
            &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
            &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
                # Possible values are:
                # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
                # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
                # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
                # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
                # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
                # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
          },
        ],
        &quot;status&quot;: &quot;A String&quot;, # The status of the match.
            # Possible values are:
            # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
            # - &quot;MATCH_ACTIVE&quot; - The match has started.
            # - &quot;MATCH_COMPLETE&quot; - The match has finished.
            # - &quot;MATCH_CANCELED&quot; - The match was canceled.
            # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
            # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
        &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
            # Possible values are:
            # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
            # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
            # - &quot;USER_TURN&quot; - The user has an action to take in the match.
            # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
        &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
        &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
      },
    ],
    &quot;kind&quot;: &quot;games#turnBasedMatchSync&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchSync.
    &quot;moreAvailable&quot;: True or False, # True if there were more matches available to fetch at the time the response was generated (which were not returned due to page size limits.)
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The pagination token for the next page of results.
  }</pre>
</div>

<div class="method">
    <code class="details" id="sync_next">sync_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 &#x27;execute()&#x27; 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="takeTurn">takeTurn(matchId, body=None, language=None)</code>
  <pre>Commit the results of a player turn.

Args:
  matchId: string, The ID of the match. (required)
  body: object, The request body.
    The object takes the form of:

{ # This is a JSON template for the object representing a turn.
    &quot;data&quot;: { # This is a JSON template for sending a turn-based match data object. # The shared game state data after the turn is over.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;kind&quot;: &quot;games#turnBasedMatchDataRequest&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchDataRequest.
    },
    &quot;kind&quot;: &quot;games#turnBasedMatchTurn&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchTurn.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant who should take their turn next. May be set to the current player&#x27;s participant ID to update match state without changing the turn. If not set, the match will wait for other player(s) to join via automatching; this is only valid if automatch criteria is set on the match with remaining slots for automatched players.
    &quot;results&quot;: [ # The match results for the participants in the match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
  }

  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 a turn-based match resource object.
    &quot;applicationId&quot;: &quot;A String&quot;, # The ID of the application being played.
    &quot;autoMatchingCriteria&quot;: { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      &quot;exclusiveBitmask&quot;: &quot;A String&quot;, # A bitmask indicating when auto-matches are valid. When ANDed with other exclusive bitmasks, the result must be zero. Can be used to support exclusive roles within a game.
      &quot;kind&quot;: &quot;games#turnBasedAutoMatchingCriteria&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      &quot;maxAutoMatchingPlayers&quot;: 42, # The maximum number of players that should be added to the match by auto-matching.
      &quot;minAutoMatchingPlayers&quot;: 42, # The minimum number of players that should be added to the match by auto-matching.
    },
    &quot;creationDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the match creation.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;data&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for this match.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;description&quot;: &quot;A String&quot;, # This short description is generated by our servers based on turn state and is localized and worded relative to the player requesting the match. It is intended to be displayed when the match is shown in a list.
    &quot;inviterId&quot;: &quot;A String&quot;, # The ID of the participant that invited the user to the match. Not set if the user was not invited to the match.
    &quot;kind&quot;: &quot;games#turnBasedMatch&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatch.
    &quot;lastUpdateDetails&quot;: { # This is a JSON template for turn-based match modification metadata. # Details about the last update to the match.
      &quot;kind&quot;: &quot;games#turnBasedMatchModification&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchModification.
      &quot;modifiedTimestampMillis&quot;: &quot;A String&quot;, # The timestamp at which they modified the match, in milliseconds since the epoch in UTC.
      &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant that modified the match.
    },
    &quot;matchId&quot;: &quot;A String&quot;, # Globally unique ID for a turn-based match.
    &quot;matchNumber&quot;: 42, # The number of the match in a chain of rematches. Will be set to 1 for the first match and incremented by 1 for each rematch.
    &quot;matchVersion&quot;: 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    &quot;participants&quot;: [ # The participants involved in the match, along with their statuses. Includes participants who have left or declined invitations.
      { # This is a JSON template for a participant in a turn-based match.
        &quot;autoMatched&quot;: True or False, # True if this participant was auto-matched with the requesting player.
        &quot;autoMatchedPlayer&quot;: { # This is a JSON template for an anonymous player # Information about a player that has been anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image to display for the anonymous player.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the anonymous player.
          &quot;kind&quot;: &quot;games#anonymousPlayer&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#anonymousPlayer.
        },
        &quot;id&quot;: &quot;A String&quot;, # An identifier for the participant in the scope of the match. Cannot be used to identify a player across matches or in other contexts.
        &quot;kind&quot;: &quot;games#turnBasedMatchParticipant&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchParticipant.
        &quot;player&quot;: { # This is a JSON template for a Player resource. # Information about the player. Not populated if this player was anonymously auto-matched against the requesting player. (Either player or autoMatchedPlayer will be set.)
          &quot;avatarImageUrl&quot;: &quot;A String&quot;, # The base URL for the image that represents the player.
          &quot;bannerUrlLandscape&quot;: &quot;A String&quot;, # The url to the landscape mode player banner image.
          &quot;bannerUrlPortrait&quot;: &quot;A String&quot;, # The url to the portrait mode player banner image.
          &quot;displayName&quot;: &quot;A String&quot;, # The name to display for the player.
          &quot;experienceInfo&quot;: { # This is a JSON template for 1P/3P metadata about the player&#x27;s experience. # An object to represent Play Game experience information for the player.
            &quot;currentExperiencePoints&quot;: &quot;A String&quot;, # The current number of experience points for the player.
            &quot;currentLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The current level of the player.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
            &quot;kind&quot;: &quot;games#playerExperienceInfo&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerExperienceInfo.
            &quot;lastLevelUpTimestampMillis&quot;: &quot;A String&quot;, # The timestamp when the player was leveled up, in millis since Unix epoch UTC.
            &quot;nextLevel&quot;: { # This is a JSON template for 1P/3P metadata about a user&#x27;s level. # The next level of the player. If the current level is the maximum level, this should be same as the current level.
              &quot;kind&quot;: &quot;games#playerLevel&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#playerLevel.
              &quot;level&quot;: 42, # The level for the user.
              &quot;maxExperiencePoints&quot;: &quot;A String&quot;, # The maximum experience points for this level.
              &quot;minExperiencePoints&quot;: &quot;A String&quot;, # The minimum experience points for this level.
            },
          },
          &quot;friendStatus&quot;: &quot;A String&quot;, # The friend status of the given player, relative to the requester. This is unset if the player is not sharing their friends list with the game.
          &quot;kind&quot;: &quot;games#player&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#player.
          &quot;lastPlayedWith&quot;: { # This is a JSON template for metadata about a player playing a game with the currently authenticated user. # Details about the last time this player played a multiplayer game with the currently authenticated player. Populated for PLAYED_WITH player collection members.
            &quot;autoMatched&quot;: True or False, # True if the player was auto-matched with the currently authenticated user.
            &quot;kind&quot;: &quot;games#played&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#played.
            &quot;timeMillis&quot;: &quot;A String&quot;, # The last time the player played the game in milliseconds since the epoch in UTC.
          },
          &quot;name&quot;: { # An object representation of the individual components of the player&#x27;s name. For some players, these fields may not be present.
            &quot;familyName&quot;: &quot;A String&quot;, # The family name of this player. In some places, this is known as the last name.
            &quot;givenName&quot;: &quot;A String&quot;, # The given name of this player. In some places, this is known as the first name.
          },
          &quot;originalPlayerId&quot;: &quot;A String&quot;, # The player ID that was used for this player the first time they signed into the game in question. This is only populated for calls to player.get for the requesting player, only if the player ID has subsequently changed, and only to clients that support remapping player IDs.
          &quot;playerId&quot;: &quot;A String&quot;, # The ID of the player.
          &quot;profileSettings&quot;: { # This is a JSON template for profile settings # The player&#x27;s profile settings. Controls whether or not the player&#x27;s profile is visible to other players.
            &quot;friendsListVisibility&quot;: &quot;A String&quot;, # Whether the player&#x27;s friends list is visible to the game.
            &quot;kind&quot;: &quot;games#profileSettings&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#profileSettings.
            &quot;profileVisible&quot;: True or False,
          },
          &quot;title&quot;: &quot;A String&quot;, # The player&#x27;s title rewarded for their game activities.
        },
        &quot;status&quot;: &quot;A String&quot;, # The status of the participant with respect to the match.
            # Possible values are:
            # - &quot;PARTICIPANT_NOT_INVITED_YET&quot; - The participant is slated to be invited to the match, but the invitation has not been sent; the invite will be sent when it becomes their turn.
            # - &quot;PARTICIPANT_INVITED&quot; - The participant has been invited to join the match, but has not yet responded.
            # - &quot;PARTICIPANT_JOINED&quot; - The participant has joined the match (either after creating it or accepting an invitation.)
            # - &quot;PARTICIPANT_DECLINED&quot; - The participant declined an invitation to join the match.
            # - &quot;PARTICIPANT_LEFT&quot; - The participant joined the match and then left it.
            # - &quot;PARTICIPANT_FINISHED&quot; - The participant finished playing in the match.
            # - &quot;PARTICIPANT_UNRESPONSIVE&quot; - The participant did not take their turn in the allotted time.
      },
    ],
    &quot;pendingParticipantId&quot;: &quot;A String&quot;, # The ID of the participant that is taking a turn.
    &quot;previousMatchData&quot;: { # This is a JSON template for a turn-based match data object. # The data / game state for the previous match; set for the first turn of rematches only.
      &quot;data&quot;: &quot;A String&quot;, # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
      &quot;dataAvailable&quot;: True or False, # True if this match has data available but it wasn&#x27;t returned in a list response; fetching the match individually will retrieve this data.
      &quot;kind&quot;: &quot;games#turnBasedMatchData&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchData.
    },
    &quot;rematchId&quot;: &quot;A String&quot;, # The ID of a rematch of this match. Only set for completed matches that have been rematched.
    &quot;results&quot;: [ # The results reported for this match.
      { # This is a JSON template for a result for a match participant.
        &quot;kind&quot;: &quot;games#participantResult&quot;, # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        &quot;participantId&quot;: &quot;A String&quot;, # The ID of the participant.
        &quot;placing&quot;: 42, # The placement or ranking of the participant in the match results; a number from one to the number of participants in the match. Multiple participants may have the same placing value in case of a type.
        &quot;result&quot;: &quot;A String&quot;, # The result of the participant for this match.
            # Possible values are:
            # - &quot;MATCH_RESULT_WIN&quot; - The participant won the match.
            # - &quot;MATCH_RESULT_LOSS&quot; - The participant lost the match.
            # - &quot;MATCH_RESULT_TIE&quot; - The participant tied the match.
            # - &quot;MATCH_RESULT_NONE&quot; - There was no winner for the match (nobody wins or loses this kind of game.)
            # - &quot;MATCH_RESULT_DISCONNECT&quot; - The participant disconnected / left during the match.
            # - &quot;MATCH_RESULT_DISAGREED&quot; - Different clients reported different results for this participant.
      },
    ],
    &quot;status&quot;: &quot;A String&quot;, # The status of the match.
        # Possible values are:
        # - &quot;MATCH_AUTO_MATCHING&quot; - One or more slots need to be filled by auto-matching; the match cannot be established until they are filled.
        # - &quot;MATCH_ACTIVE&quot; - The match has started.
        # - &quot;MATCH_COMPLETE&quot; - The match has finished.
        # - &quot;MATCH_CANCELED&quot; - The match was canceled.
        # - &quot;MATCH_EXPIRED&quot; - The match expired due to inactivity.
        # - &quot;MATCH_DELETED&quot; - The match should no longer be shown on the client. Returned only for tombstones for matches when sync is called.
    &quot;userMatchStatus&quot;: &quot;A String&quot;, # The status of the current user in the match. Derived from the match type, match status, the user&#x27;s participant status, and the pending participant for the match.
        # Possible values are:
        # - &quot;USER_INVITED&quot; - The user has been invited to join the match and has not responded yet.
        # - &quot;USER_AWAITING_TURN&quot; - The user is waiting for their turn.
        # - &quot;USER_TURN&quot; - The user has an action to take in the match.
        # - &quot;USER_MATCH_COMPLETED&quot; - The match has ended (it is completed, canceled, or expired.)
    &quot;variant&quot;: 42, # The variant / mode of the application being played; can be any integer value, or left blank.
    &quot;withParticipantId&quot;: &quot;A String&quot;, # The ID of another participant in the match that can be used when describing the participants the user is playing with.
  }</pre>
</div>

</body></html>