<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</a> . <a href="games_v1.snapshotsExtended.html">snapshotsExtended</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#resolveSnapshotHead">resolveSnapshotHead(snapshotName, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Resolves any potential conflicts according to the resolution policy specified in the request and returns the snapshot head after the resolution.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="resolveSnapshotHead">resolveSnapshotHead(snapshotName, body=None, x__xgafv=None)</code>
  <pre>Resolves any potential conflicts according to the resolution policy specified in the request and returns the snapshot head after the resolution.

Args:
  snapshotName: string, Required. Name of the snapshot. (required)
  body: object, The request body.
    The object takes the form of:

{ # Request for ResolveSnapshotHead RPC.
  &quot;maxConflictsPerSnapshot&quot;: 42, # The maximum number of SnapshotRevision resources for `conflictingRevisions` to return per SnapshotExtended resource in the response. For any response, the actual number of resources returned may be less than specified by `maxConflictsPerSnapshot`. The value provided should be greater or equal to 0. If no value is provided, the server will use a sensible default.
  &quot;resolutionPolicy&quot;: &quot;A String&quot;, # Required. The automatic resolution policy. All conflicts are resolved in chronological order, starting from the/ least recent. If the comparison metric is equal for the tentative head and the conflict, the head wins.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for ResolveSnapshotHead RPC.
  &quot;snapshot&quot;: { # A snapshot represents a saved game state referred to using the developer-provided snapshot_name. The set of attributes and binary data for a specific state is called a revision. Each revision is itself immutable, and referred to by a snapshot revision id. At any time, a snapshot has a &quot;head&quot; revision, and updates are made against that revision. If a snapshot update is received that isn&#x27;t against the current head revision, then instead of changing the head revision it will result in a conflicting revision that must be specifically resolved. # The state of the snapshot.
    &quot;conflictingRevisions&quot;: [ # A list of conflicting revisions. Only set if explicitly requested (e.g. using a field mask or a request flag), or if the RPC guarantees that this field is set. The conflicting revisions are sorted chronologically by their server creation time (oldest first). If there are too many conflicting revisions to return all of them in a single request this will only contain the first batch. In such case, the presented conflicting revisions must be resolved first in order to fetch the next batch.
      { # A Snapshot revision resource. Snapshot revisions are immutable.
        &quot;blob&quot;: { # Identifies a snapshot data resource. The data is provided by the game. # Reference to the game provided blob for this revision.
          &quot;contentHash&quot;: &quot;A String&quot;, # Output only. Hash-like weak identifier of the uploaded blob bytes, consistent per player per application. The content hash for a given resource will not change if the binary data hasn&#x27;t changed. Except in very rare circumstances, the content_hash for matching binary data will be the same within a given player and application.
          &quot;downloadUrl&quot;: &quot;A String&quot;, # Output only. A URL that the client can use to download the blob. May vary across requests, and only guaranteed to be valid for a short time after it is returned.
          &quot;resourceId&quot;: &quot;A String&quot;, # The ID of the blob resource. It&#x27;s guaranteed that if two IDs are equal then the contents are equal as well. It&#x27;s not guaranteed that two identical blobs coming from separate uploads have the same resource ID. The resource ID can only be used within the application, user and resource type it was originally returned for. For example, it&#x27;s not possible to use SnapshotDataResource&#x27;s resource ID as the resource_id of a SnapshotCoverImageResource, even if the blob is a valid image file.
          &quot;size&quot;: &quot;A String&quot;, # Output only. Size of the saved game blob in bytes.
        },
        &quot;coverImage&quot;: { # Identifies a snapshot cover image resource. The image is provided by the game. # Reference to the cover image for this revision.
          &quot;contentHash&quot;: &quot;A String&quot;, # Output only. Hash-like weak identifier of the uploaded image bytes, consistent per player per application. The content hash for a given resource will not change if the binary data hasn&#x27;t changed. Except in very rare circumstances, the content_hash for matching binary data will be the same within a given player and application.
          &quot;downloadUrl&quot;: &quot;A String&quot;, # Output only. A URL the client can use to download the image. May vary across requests, and only guaranteed to be valid for a short time after it is returned.
          &quot;height&quot;: 42, # The height of the image in pixels.
          &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The MIME type of the image.
          &quot;resourceId&quot;: &quot;A String&quot;, # The ID of the image resource. It&#x27;s guaranteed that if two IDs are equal then the contents are equal as well. It&#x27;s not guaranteed that two identical blobs coming from separate uploads have the same ID. The resource ID can only be used within the application, user and resource type it was originally returned for. For example, it&#x27;s not possible to use SnapshotDataResource&#x27;s resource ID as the resource_id of a SnapshotCoverImageResource, even if the blob is a valid image file.
          &quot;width&quot;: 42, # The width of the image in pixels.
        },
        &quot;id&quot;: &quot;A String&quot;, # Output only. A server generated identifier of the snapshot revision.
        &quot;metadata&quot;: { # Metadata about a snapshot revision. Snapshot metadata is immutable - a metadata change corresponds to a new snapshot revision. # Metadata for this snapshot revision.
          &quot;description&quot;: &quot;A String&quot;, # The description of this snapshot.
          &quot;deviceName&quot;: &quot;A String&quot;, # The device that created the current revision.
          &quot;gameplayDuration&quot;: &quot;A String&quot;, # The duration associated with this snapshot. Values with sub-millisecond precision can be rounded or trimmed to the closest millisecond.
          &quot;lastModifyTime&quot;: &quot;A String&quot;, # The timestamp of the last modification to this snapshot as provided by the client. Values with sub-millisecond precision can be rounded or trimmed to the closest millisecond.
          &quot;progressValue&quot;: &quot;A String&quot;, # The progress value (64-bit integer set by developer) associated with this snapshot.
        },
      },
    ],
    &quot;hasConflictingRevisions&quot;: True or False, # An indicator whether the snapshot has any conflicting revisions or not. Always set.
    &quot;headRevision&quot;: { # A Snapshot revision resource. Snapshot revisions are immutable. # The current head revision (the canonical revision as understood by the server).
      &quot;blob&quot;: { # Identifies a snapshot data resource. The data is provided by the game. # Reference to the game provided blob for this revision.
        &quot;contentHash&quot;: &quot;A String&quot;, # Output only. Hash-like weak identifier of the uploaded blob bytes, consistent per player per application. The content hash for a given resource will not change if the binary data hasn&#x27;t changed. Except in very rare circumstances, the content_hash for matching binary data will be the same within a given player and application.
        &quot;downloadUrl&quot;: &quot;A String&quot;, # Output only. A URL that the client can use to download the blob. May vary across requests, and only guaranteed to be valid for a short time after it is returned.
        &quot;resourceId&quot;: &quot;A String&quot;, # The ID of the blob resource. It&#x27;s guaranteed that if two IDs are equal then the contents are equal as well. It&#x27;s not guaranteed that two identical blobs coming from separate uploads have the same resource ID. The resource ID can only be used within the application, user and resource type it was originally returned for. For example, it&#x27;s not possible to use SnapshotDataResource&#x27;s resource ID as the resource_id of a SnapshotCoverImageResource, even if the blob is a valid image file.
        &quot;size&quot;: &quot;A String&quot;, # Output only. Size of the saved game blob in bytes.
      },
      &quot;coverImage&quot;: { # Identifies a snapshot cover image resource. The image is provided by the game. # Reference to the cover image for this revision.
        &quot;contentHash&quot;: &quot;A String&quot;, # Output only. Hash-like weak identifier of the uploaded image bytes, consistent per player per application. The content hash for a given resource will not change if the binary data hasn&#x27;t changed. Except in very rare circumstances, the content_hash for matching binary data will be the same within a given player and application.
        &quot;downloadUrl&quot;: &quot;A String&quot;, # Output only. A URL the client can use to download the image. May vary across requests, and only guaranteed to be valid for a short time after it is returned.
        &quot;height&quot;: 42, # The height of the image in pixels.
        &quot;mimeType&quot;: &quot;A String&quot;, # Output only. The MIME type of the image.
        &quot;resourceId&quot;: &quot;A String&quot;, # The ID of the image resource. It&#x27;s guaranteed that if two IDs are equal then the contents are equal as well. It&#x27;s not guaranteed that two identical blobs coming from separate uploads have the same ID. The resource ID can only be used within the application, user and resource type it was originally returned for. For example, it&#x27;s not possible to use SnapshotDataResource&#x27;s resource ID as the resource_id of a SnapshotCoverImageResource, even if the blob is a valid image file.
        &quot;width&quot;: 42, # The width of the image in pixels.
      },
      &quot;id&quot;: &quot;A String&quot;, # Output only. A server generated identifier of the snapshot revision.
      &quot;metadata&quot;: { # Metadata about a snapshot revision. Snapshot metadata is immutable - a metadata change corresponds to a new snapshot revision. # Metadata for this snapshot revision.
        &quot;description&quot;: &quot;A String&quot;, # The description of this snapshot.
        &quot;deviceName&quot;: &quot;A String&quot;, # The device that created the current revision.
        &quot;gameplayDuration&quot;: &quot;A String&quot;, # The duration associated with this snapshot. Values with sub-millisecond precision can be rounded or trimmed to the closest millisecond.
        &quot;lastModifyTime&quot;: &quot;A String&quot;, # The timestamp of the last modification to this snapshot as provided by the client. Values with sub-millisecond precision can be rounded or trimmed to the closest millisecond.
        &quot;progressValue&quot;: &quot;A String&quot;, # The progress value (64-bit integer set by developer) associated with this snapshot.
      },
    },
    &quot;snapshotName&quot;: &quot;A String&quot;, # An identifier of the snapshot, developer-specified. It must match the pattern [0-9a-zA-Z-._~]{1,100}.
  },
}</pre>
</div>

</body></html>