<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="fitness_v1.html">Fitness API</a> . <a href="fitness_v1.users.html">users</a> . <a href="fitness_v1.users.dataSources.html">dataSources</a> . <a href="fitness_v1.users.dataSources.dataPointChanges.html">dataPointChanges</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="#list">list(userId, dataSourceId, limit=None, pageToken=None, x__xgafv=None)</a></code></p>
<p class="firstline">Queries for user's data point changes for a particular data source.</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="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(userId, dataSourceId, limit=None, pageToken=None, x__xgafv=None)</code>
  <pre>Queries for user&#x27;s data point changes for a particular data source.

Args:
  userId: string, List data points for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
  dataSourceId: string, The data stream ID of the data source that created the dataset. (required)
  limit: integer, If specified, no more than this many data point changes will be included in the response.
  pageToken: string, The continuation token, which is used to page through large result sets. To get the next page of results, set this parameter to the value of nextPageToken from the previous response.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;deletedDataPoint&quot;: [ # Deleted data points for the user. Note, for modifications this should be parsed before handling insertions.
      { # Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type. A data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type. Data points always contain one value for each field of the data type.
        &quot;rawTimestampNanos&quot;: &quot;A String&quot;, # The raw timestamp from the original SensorEvent.
        &quot;dataTypeName&quot;: &quot;A String&quot;, # The data type defining the format of the values in this data point.
        &quot;modifiedTimeMillis&quot;: &quot;A String&quot;, # Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.
        &quot;startTimeNanos&quot;: &quot;A String&quot;, # The start time of the interval represented by this data point, in nanoseconds since epoch.
        &quot;endTimeNanos&quot;: &quot;A String&quot;, # The end time of the interval represented by this data point, in nanoseconds since epoch.
        &quot;computationTimeMillis&quot;: &quot;A String&quot;, # DO NOT USE THIS FIELD. It is ignored, and not stored.
        &quot;value&quot;: [ # Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source. Only one of integer and floating point fields will be populated, depending on the format enum value within data source&#x27;s type field.
          { # Holder object for the value of a single field in a data point. A field value has a particular format and is only ever set to one of an integer or a floating point value.
            &quot;intVal&quot;: 42, # Integer value. When this is set, other values must not be set.
            &quot;mapVal&quot;: [ # Map value. The valid key space and units for the corresponding value of each entry should be documented as part of the data type definition. Keys should be kept small whenever possible. Data streams with large keys and high data frequency may be down sampled.
              {
                &quot;value&quot;: { # Holder object for the value of an entry in a map field of a data point. A map value supports a subset of the formats that the regular Value supports.
                  &quot;fpVal&quot;: 3.14, # Floating point value.
                },
                &quot;key&quot;: &quot;A String&quot;,
              },
            ],
            &quot;fpVal&quot;: 3.14, # Floating point value. When this is set, other values must not be set.
            &quot;stringVal&quot;: &quot;A String&quot;, # String value. When this is set, other values must not be set. Strings should be kept small whenever possible. Data streams with large string values and high data frequency may be down sampled.
          },
        ],
        &quot;originDataSourceId&quot;: &quot;A String&quot;, # If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally. WARNING: do not rely on this field for anything other than debugging. The value of this field, if it is set at all, is an implementation detail and is not guaranteed to remain consistent.
      },
    ],
    &quot;dataSourceId&quot;: &quot;A String&quot;, # The data stream ID of the data source with data point changes.
    &quot;insertedDataPoint&quot;: [ # Inserted data points for the user.
      { # Represents a single data point, generated by a particular data source. A data point holds a value for each field, an end timestamp and an optional start time. The exact semantics of each of these attributes are specified in the documentation for the particular data type. A data point can represent an instantaneous measurement, reading or input observation, as well as averages or aggregates over a time interval. Check the data type documentation to determine which is the case for a particular data type. Data points always contain one value for each field of the data type.
        &quot;rawTimestampNanos&quot;: &quot;A String&quot;, # The raw timestamp from the original SensorEvent.
        &quot;dataTypeName&quot;: &quot;A String&quot;, # The data type defining the format of the values in this data point.
        &quot;modifiedTimeMillis&quot;: &quot;A String&quot;, # Indicates the last time this data point was modified. Useful only in contexts where we are listing the data changes, rather than representing the current state of the data.
        &quot;startTimeNanos&quot;: &quot;A String&quot;, # The start time of the interval represented by this data point, in nanoseconds since epoch.
        &quot;endTimeNanos&quot;: &quot;A String&quot;, # The end time of the interval represented by this data point, in nanoseconds since epoch.
        &quot;computationTimeMillis&quot;: &quot;A String&quot;, # DO NOT USE THIS FIELD. It is ignored, and not stored.
        &quot;value&quot;: [ # Values of each data type field for the data point. It is expected that each value corresponding to a data type field will occur in the same order that the field is listed with in the data type specified in a data source. Only one of integer and floating point fields will be populated, depending on the format enum value within data source&#x27;s type field.
          { # Holder object for the value of a single field in a data point. A field value has a particular format and is only ever set to one of an integer or a floating point value.
            &quot;intVal&quot;: 42, # Integer value. When this is set, other values must not be set.
            &quot;mapVal&quot;: [ # Map value. The valid key space and units for the corresponding value of each entry should be documented as part of the data type definition. Keys should be kept small whenever possible. Data streams with large keys and high data frequency may be down sampled.
              {
                &quot;value&quot;: { # Holder object for the value of an entry in a map field of a data point. A map value supports a subset of the formats that the regular Value supports.
                  &quot;fpVal&quot;: 3.14, # Floating point value.
                },
                &quot;key&quot;: &quot;A String&quot;,
              },
            ],
            &quot;fpVal&quot;: 3.14, # Floating point value. When this is set, other values must not be set.
            &quot;stringVal&quot;: &quot;A String&quot;, # String value. When this is set, other values must not be set. Strings should be kept small whenever possible. Data streams with large string values and high data frequency may be down sampled.
          },
        ],
        &quot;originDataSourceId&quot;: &quot;A String&quot;, # If the data point is contained in a dataset for a derived data source, this field will be populated with the data source stream ID that created the data point originally. WARNING: do not rely on this field for anything other than debugging. The value of this field, if it is set at all, is an implementation detail and is not guaranteed to remain consistent.
      },
    ],
    &quot;nextPageToken&quot;: &quot;A String&quot;, # The continuation token, which is used to page through large result sets. Provide this value in a subsequent request to return the next page of results.
  }</pre>
</div>

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

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

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

</body></html>