<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

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

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

<div class="method">
    <code class="details" id="create">create(body, language=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.

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)</code>
  <pre>Decline an invitation to play a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
  language: string, The preferred language to use for strings returned by this method.

Returns:
  An object of the form:

    { # This is a JSON template for a turn-based match resource object.
    "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)</code>
  <pre>Dismiss a turn-based match from the match list. The match will no longer show up in the list and will not generate notifications.

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

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

Args:
  matchId: string, The ID of the match. (required)
  body: object, The request body. (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.

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)</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.

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)</code>
  <pre>Join a turn-based match.

Args:
  matchId: string, The ID of the match. (required)
  language: string, The preferred language to use for strings returned by this method.

Returns:
  An object of the form:

    { # This is a JSON template for a turn-based match resource object.
    "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)</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.

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)</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.

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)</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.

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)</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.

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)</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.

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)</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.

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>