<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.quests.html">quests</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#accept">accept(questId, language=None, consistencyToken=None)</a></code></p>
<p class="firstline">Indicates that the currently authorized user will participate in the quest.</p>
<p class="toc_element">
  <code><a href="#list">list(playerId, language=None, pageToken=None, maxResults=None, consistencyToken=None)</a></code></p>
<p class="firstline">Get a list of quests for your application and the currently authenticated player.</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>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="accept">accept(questId, language=None, consistencyToken=None)</code>
  <pre>Indicates that the currently authorized user will participate in the quest.

Args:
  questId: string, The ID of the quest. (required)
  language: string, The preferred language to use for strings returned by this method.
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

    { # This is a JSON template for a Quest resource.
    "kind": "games#quest", # Uniquely identifies the type of this resource. Value is always the fixed string games#quest.
    "milestones": [ # The quest milestones.
      { # This is a JSON template for a Quest Milestone resource.
        "state": "A String", # The current state of the milestone.
            # Possible values are:
            # - "COMPLETED_NOT_CLAIMED" - The milestone is complete, but has not yet been claimed.
            # - "CLAIMED" - The milestone is complete and has been claimed.
            # - "NOT_COMPLETED" - The milestone has not yet been completed.
            # - "NOT_STARTED" - The milestone is for a quest that has not yet been accepted.
        "kind": "games#questMilestone", # Uniquely identifies the type of this resource. Value is always the fixed string games#questMilestone.
        "criteria": [ # The criteria of the milestone.
          { # This is a JSON template for a Quest Criterion resource.
            "eventId": "A String", # The ID of the event the criterion corresponds to.
            "completionContribution": { # This is a JSON template for a Quest Criterion Contribution resource. # The total number of times the associated event must be incremented for the player to complete this quest.
              "formattedValue": "A String", # The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console.
              "kind": "games#questContribution", # Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.
              "value": "A String", # The value of the contribution.
            },
            "initialPlayerProgress": { # This is a JSON template for a Quest Criterion Contribution resource. # The value of the event associated with this quest at the time that the quest was accepted. This value may change if event increments that took place before the start of quest are uploaded after the quest starts.
                # There will be no initialPlayerProgress until the player has accepted the quest.
              "formattedValue": "A String", # The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console.
              "kind": "games#questContribution", # Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.
              "value": "A String", # The value of the contribution.
            },
            "kind": "games#questCriterion", # Uniquely identifies the type of this resource. Value is always the fixed string games#questCriterion.
            "currentContribution": { # This is a JSON template for a Quest Criterion Contribution resource. # The number of increments the player has made toward the completion count event increments required to complete the quest. This value will not exceed the completion contribution.
                # There will be no currentContribution until the player has accepted the quest.
              "formattedValue": "A String", # The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console.
              "kind": "games#questContribution", # Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.
              "value": "A String", # The value of the contribution.
            },
          },
        ],
        "id": "A String", # The milestone ID.
        "completionRewardData": "A String", # The completion reward data of the milestone, represented as a Base64-encoded string. This is a developer-specified binary blob with size between 0 and 2 KB before encoding.
      },
    ],
    "description": "A String", # The description of the quest.
    "endTimestampMillis": "A String", # The timestamp at which the quest ceases to be active in milliseconds since the epoch in UTC.
    "bannerUrl": "A String", # The banner image URL for the quest.
    "startTimestampMillis": "A String", # The timestamp at which the quest becomes active in milliseconds since the epoch in UTC.
    "lastUpdatedTimestampMillis": "A String", # The timestamp at which the quest was last updated by the user in milliseconds since the epoch in UTC. Only present if the player has accepted the quest.
    "acceptedTimestampMillis": "A String", # The timestamp at which the user accepted the quest in milliseconds since the epoch in UTC. Only present if the player has accepted the quest.
    "iconUrl": "A String", # The icon image URL for the quest.
    "notifyTimestampMillis": "A String", # The timestamp at which the user should be notified that the quest will end soon in milliseconds since the epoch in UTC.
    "state": "A String", # The state of the quest.
        # Possible values are:
        # - "UPCOMING": The quest is upcoming. The user can see the quest, but cannot accept it until it is open.
        # - "OPEN": The quest is currently open and may be accepted at this time.
        # - "ACCEPTED": The user is currently participating in this quest.
        # - "COMPLETED": The user has completed the quest.
        # - "FAILED": The quest was attempted but was not completed before the deadline expired.
        # - "EXPIRED": The quest has expired and was not accepted.
        # - "DELETED": The quest should be deleted from the local database.
    "isDefaultBannerUrl": True or False, # Indicates whether the banner image being returned is a default image, or is game-provided.
    "isDefaultIconUrl": True or False, # Indicates whether the icon image being returned is a default image, or is game-provided.
    "applicationId": "A String", # The ID of the application this quest is part of.
    "id": "A String", # The ID of the quest.
    "name": "A String", # The name of the quest.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(playerId, language=None, pageToken=None, maxResults=None, consistencyToken=None)</code>
  <pre>Get a list of quests for your application and the currently authenticated player.

Args:
  playerId: string, A player ID. A value of me may be used in place of the authenticated player's ID. (required)
  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 quest resources to return in the response, used for paging. For any response, the actual number of quest resources returned may be less than the specified maxResults. Acceptable values are 1 to 50, inclusive. (Default: 50).
  consistencyToken: string, The last-seen mutation timestamp.

Returns:
  An object of the form:

    { # This is a JSON template for a list of quest objects.
    "nextPageToken": "A String", # Token corresponding to the next page of results.
    "items": [ # The quests.
      { # This is a JSON template for a Quest resource.
        "kind": "games#quest", # Uniquely identifies the type of this resource. Value is always the fixed string games#quest.
        "milestones": [ # The quest milestones.
          { # This is a JSON template for a Quest Milestone resource.
            "state": "A String", # The current state of the milestone.
                # Possible values are:
                # - "COMPLETED_NOT_CLAIMED" - The milestone is complete, but has not yet been claimed.
                # - "CLAIMED" - The milestone is complete and has been claimed.
                # - "NOT_COMPLETED" - The milestone has not yet been completed.
                # - "NOT_STARTED" - The milestone is for a quest that has not yet been accepted.
            "kind": "games#questMilestone", # Uniquely identifies the type of this resource. Value is always the fixed string games#questMilestone.
            "criteria": [ # The criteria of the milestone.
              { # This is a JSON template for a Quest Criterion resource.
                "eventId": "A String", # The ID of the event the criterion corresponds to.
                "completionContribution": { # This is a JSON template for a Quest Criterion Contribution resource. # The total number of times the associated event must be incremented for the player to complete this quest.
                  "formattedValue": "A String", # The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console.
                  "kind": "games#questContribution", # Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.
                  "value": "A String", # The value of the contribution.
                },
                "initialPlayerProgress": { # This is a JSON template for a Quest Criterion Contribution resource. # The value of the event associated with this quest at the time that the quest was accepted. This value may change if event increments that took place before the start of quest are uploaded after the quest starts.
                    # There will be no initialPlayerProgress until the player has accepted the quest.
                  "formattedValue": "A String", # The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console.
                  "kind": "games#questContribution", # Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.
                  "value": "A String", # The value of the contribution.
                },
                "kind": "games#questCriterion", # Uniquely identifies the type of this resource. Value is always the fixed string games#questCriterion.
                "currentContribution": { # This is a JSON template for a Quest Criterion Contribution resource. # The number of increments the player has made toward the completion count event increments required to complete the quest. This value will not exceed the completion contribution.
                    # There will be no currentContribution until the player has accepted the quest.
                  "formattedValue": "A String", # The formatted value of the contribution as a string. Format depends on the configuration for the associated event definition in the Play Games Developer Console.
                  "kind": "games#questContribution", # Uniquely identifies the type of this resource. Value is always the fixed string games#questContribution.
                  "value": "A String", # The value of the contribution.
                },
              },
            ],
            "id": "A String", # The milestone ID.
            "completionRewardData": "A String", # The completion reward data of the milestone, represented as a Base64-encoded string. This is a developer-specified binary blob with size between 0 and 2 KB before encoding.
          },
        ],
        "description": "A String", # The description of the quest.
        "endTimestampMillis": "A String", # The timestamp at which the quest ceases to be active in milliseconds since the epoch in UTC.
        "bannerUrl": "A String", # The banner image URL for the quest.
        "startTimestampMillis": "A String", # The timestamp at which the quest becomes active in milliseconds since the epoch in UTC.
        "lastUpdatedTimestampMillis": "A String", # The timestamp at which the quest was last updated by the user in milliseconds since the epoch in UTC. Only present if the player has accepted the quest.
        "acceptedTimestampMillis": "A String", # The timestamp at which the user accepted the quest in milliseconds since the epoch in UTC. Only present if the player has accepted the quest.
        "iconUrl": "A String", # The icon image URL for the quest.
        "notifyTimestampMillis": "A String", # The timestamp at which the user should be notified that the quest will end soon in milliseconds since the epoch in UTC.
        "state": "A String", # The state of the quest.
            # Possible values are:
            # - "UPCOMING": The quest is upcoming. The user can see the quest, but cannot accept it until it is open.
            # - "OPEN": The quest is currently open and may be accepted at this time.
            # - "ACCEPTED": The user is currently participating in this quest.
            # - "COMPLETED": The user has completed the quest.
            # - "FAILED": The quest was attempted but was not completed before the deadline expired.
            # - "EXPIRED": The quest has expired and was not accepted.
            # - "DELETED": The quest should be deleted from the local database.
        "isDefaultBannerUrl": True or False, # Indicates whether the banner image being returned is a default image, or is game-provided.
        "isDefaultIconUrl": True or False, # Indicates whether the icon image being returned is a default image, or is game-provided.
        "applicationId": "A String", # The ID of the application this quest is part of.
        "id": "A String", # The ID of the quest.
        "name": "A String", # The name of the quest.
      },
    ],
    "kind": "games#questListResponse", # Uniquely identifies the type of this resource. Value is always the fixed string games#questListResponse.
  }</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>

</body></html>