<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, consistencyToken=None)</a></code></p>
<p class="firstline">Cancel a turn-based match.</p>
<p class="toc_element">
  <code><a href="#create">create(body, language=None, consistencyToken=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, consistencyToken=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, consistencyToken=None)</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, language=None, consistencyToken=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, language=None, includeMatchData=None, consistencyToken=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, consistencyToken=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, consistencyToken=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, consistencyToken=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(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None, consistencyToken=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, consistencyToken=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(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None, consistencyToken=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, language=None, consistencyToken=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, consistencyToken=None)</code>
  <pre>Cancel a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
  consistencyToken: string, The last-seen mutation timestamp.
</pre>
</div>

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

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

{ # This is a JSON template for a turn-based match creation request.
    "invitedPlayerIds": [ # The player ids to invite to the match.
      "A String",
    ],
    "kind": "games#turnBasedMatchCreateRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchCreateRequest.
    "autoMatchingCriteria": { # This is a JSON template for an turn-based auto-match criteria object. # Criteria for auto-matching players into this match.
      "kind": "games#turnBasedAutoMatchingCriteria", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedAutoMatchingCriteria.
      "minAutoMatchingPlayers": 42, # The minimum number of players that should be added to the match by auto-matching.
      "exclusiveBitmask": "A String", # 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.
      "maxAutoMatchingPlayers": 42, # The maximum number of players that should be added to the match by auto-matching.
    },
    "variant": 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.
    "requestId": "A String", # A randomly generated numeric ID. This number is used at the server to ensure that the request is handled correctly across retries.
  }

  language: string, The preferred language to use for strings returned by this method.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="decline">decline(matchId, language=None, consistencyToken=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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="dismiss">dismiss(matchId, consistencyToken=None)</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)
  consistencyToken: string, The last-seen mutation timestamp.
</pre>
</div>

<div class="method">
    <code class="details" id="finish">finish(matchId, body, language=None, consistencyToken=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. (required)
    The object takes the form of:

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

  language: string, The preferred language to use for strings returned by this method.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="get">get(matchId, language=None, includeMatchData=None, consistencyToken=None)</code>
  <pre>Get the data for 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.
  includeMatchData: boolean, Get match data along with metadata.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="join">join(matchId, language=None, consistencyToken=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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="leave">leave(matchId, language=None, consistencyToken=None)</code>
  <pre>Leave a turn-based match when it is not the current player'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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="leaveTurn">leaveTurn(matchId, matchVersion, language=None, pendingParticipantId=None, consistencyToken=None)</code>
  <pre>Leave a turn-based match during the current player'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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

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

Args:
  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.
  language: string, The preferred language to use for strings returned by this method.
  pageToken: string, The token returned by the previous request.
  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.
  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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="rematch">rematch(matchId, language=None, requestId=None, consistencyToken=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'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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="sync">sync(maxCompletedMatches=None, language=None, pageToken=None, maxResults=None, includeMatchData=None, consistencyToken=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:
  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.
  language: string, The preferred language to use for strings returned by this method.
  pageToken: string, The token returned by the previous request.
  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.
  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.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

<div class="method">
    <code class="details" id="takeTurn">takeTurn(matchId, body, language=None, consistencyToken=None)</code>
  <pre>Commit the results of a player turn.

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

{ # This is a JSON template for the object representing a turn.
    "kind": "games#turnBasedMatchTurn", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchTurn.
    "results": [ # The match results for the participants in the match.
      { # This is a JSON template for a result for a match participant.
        "kind": "games#participantResult", # Uniquely identifies the type of this resource. Value is always the fixed string games#participantResult.
        "placing": 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.
        "participantId": "A String", # The ID of the participant.
        "result": "A String", # The result of the participant for this match.
            # Possible values are:
            # - "MATCH_RESULT_WIN" - The participant won the match.
            # - "MATCH_RESULT_LOSS" - The participant lost the match.
            # - "MATCH_RESULT_TIE" - The participant tied the match.
            # - "MATCH_RESULT_NONE" - There was no winner for the match (nobody wins or loses this kind of game.)
            # - "MATCH_RESULT_DISCONNECT" - The participant disconnected / left during the match.
            # - "MATCH_RESULT_DISAGREED" - Different clients reported different results for this participant.
      },
    ],
    "data": { # This is a JSON template for sending a turn-based match data object. # The shared game state data after the turn is over.
      "kind": "games#turnBasedMatchDataRequest", # Uniquely identifies the type of this resource. Value is always the fixed string games#turnBasedMatchDataRequest.
      "data": "A String", # The byte representation of the data (limited to 128 kB), as a Base64-encoded string with the URL_SAFE encoding option.
    },
    "matchVersion": 42, # The version of this match: an increasing counter, used to avoid out-of-date updates to the match.
    "pendingParticipantId": "A String", # The ID of the participant who should take their turn next. May be set to the current player'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.
  }

  language: string, The preferred language to use for strings returned by this method.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

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

</body></html>