<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.dataset.html">dataset</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#aggregate">aggregate(userId, body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Aggregates data of a certain type or stream into buckets divided by a given type of boundary. Multiple data sets of multiple types and from multiple sources can be aggregated into exactly one bucket type per request.</p>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="aggregate">aggregate(userId, body=None, x__xgafv=None)</code>
  <pre>Aggregates data of a certain type or stream into buckets divided by a given type of boundary. Multiple data sets of multiple types and from multiple sources can be aggregated into exactly one bucket type per request.

Args:
  userId: string, Aggregate data for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
  body: object, The request body.
    The object takes the form of:

{ # Next id: 10
    &quot;startTimeMillis&quot;: &quot;A String&quot;, # The start of a window of time. Data that intersects with this time window will be aggregated. The time is in milliseconds since epoch, inclusive.
    &quot;bucketByTime&quot;: { # Specifies that data be aggregated by a single time interval. Mutually exclusive of other bucketing specifications.
      &quot;period&quot;: {
        &quot;value&quot;: 42,
        &quot;type&quot;: &quot;A String&quot;,
        &quot;timeZoneId&quot;: &quot;A String&quot;, # org.joda.timezone.DateTimeZone
      },
      &quot;durationMillis&quot;: &quot;A String&quot;, # Specifies that result buckets aggregate data by exactly durationMillis time frames. Time frames that contain no data will be included in the response with an empty dataset.
    },
    &quot;bucketByActivityType&quot;: { # Specifies that data be aggregated by the type of activity being performed when the data was recorded. All data that was recorded during a certain activity type (.for the given time range) will be aggregated into the same bucket. Data that was recorded while the user was not active will not be included in the response. Mutually exclusive of other bucketing specifications.
      &quot;minDurationMillis&quot;: &quot;A String&quot;, # Specifies that only activity segments of duration longer than minDurationMillis are considered and used as a container for aggregated data.
      &quot;activityDataSourceId&quot;: &quot;A String&quot;, # The default activity stream will be used if a specific activityDataSourceId is not specified.
    },
    &quot;endTimeMillis&quot;: &quot;A String&quot;, # The end of a window of time. Data that intersects with this time window will be aggregated. The time is in milliseconds since epoch, inclusive.
    &quot;bucketBySession&quot;: { # Specifies that data be aggregated by user sessions. Data that does not fall within the time range of a session will not be included in the response. Mutually exclusive of other bucketing specifications.
      &quot;minDurationMillis&quot;: &quot;A String&quot;, # Specifies that only sessions of duration longer than minDurationMillis are considered and used as a container for aggregated data.
    },
    &quot;aggregateBy&quot;: [ # The specification of data to be aggregated. At least one aggregateBy spec must be provided. All data that is specified will be aggregated using the same bucketing criteria. There will be one dataset in the response for every aggregateBy spec.
      { # The specification of which data to aggregate.
        &quot;dataSourceId&quot;: &quot;A String&quot;, # A data source ID to aggregate. Only data from the specified data source ID will be included in the aggregation. If specified, this data source must exist; the OAuth scopes in the supplied credentials must grant read access to this data type. The dataset in the response will have the same data source ID. Note: Data can be aggregated by either the dataTypeName or the dataSourceId, not both.
        &quot;dataTypeName&quot;: &quot;A String&quot;, # The data type to aggregate. All data sources providing this data type will contribute data to the aggregation. The response will contain a single dataset for this data type name. The dataset will have a data source ID of derived::com.google.android.gms:aggregated. If the user has no data for this data type, an empty data set will be returned. Note: Data can be aggregated by either the dataTypeName or the dataSourceId, not both.
      },
    ],
    &quot;filteredDataQualityStandard&quot;: [ # DO NOT POPULATE THIS FIELD. It is ignored.
      &quot;A String&quot;,
    ],
    &quot;bucketByActivitySegment&quot;: { # Specifies that data be aggregated each activity segment recorded for a user. Similar to bucketByActivitySegment, but bucketing is done for each activity segment rather than all segments of the same type. Mutually exclusive of other bucketing specifications.
      &quot;minDurationMillis&quot;: &quot;A String&quot;, # Specifies that only activity segments of duration longer than minDurationMillis are considered and used as a container for aggregated data.
      &quot;activityDataSourceId&quot;: &quot;A String&quot;, # The default activity stream will be used if a specific activityDataSourceId is not specified.
    },
  }

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

Returns:
  An object of the form:

    {
    &quot;bucket&quot;: [ # A list of buckets containing the aggregated data.
      {
        &quot;dataset&quot;: [ # There will be one dataset per AggregateBy in the request.
          { # A dataset represents a projection container for data points. They do not carry any info of their own. Datasets represent a set of data points from a particular data source. A data point can be found in more than one dataset.
              &quot;dataSourceId&quot;: &quot;A String&quot;, # The data stream ID of the data source that created the points in this dataset.
              &quot;nextPageToken&quot;: &quot;A String&quot;, # This token will be set when a dataset is received in response to a GET request and the dataset is too large to be included in a single response. Provide this value in a subsequent GET request to return the next page of data points within this dataset.
              &quot;minStartTimeNs&quot;: &quot;A String&quot;, # The smallest start time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the first part of the dataset identifier.
              &quot;point&quot;: [ # A partial list of data points contained in the dataset, ordered by endTimeNanos. This list is considered complete when retrieving a small dataset and partial when patching a dataset or retrieving a dataset that is too large to include in a single response.
                { # 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;dataTypeName&quot;: &quot;A String&quot;, # The data type defining the format of the values in this data point.
                  &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;endTimeNanos&quot;: &quot;A String&quot;, # The end time of the interval represented by this data point, in nanoseconds since epoch.
                  &quot;startTimeNanos&quot;: &quot;A String&quot;, # The start 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;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;rawTimestampNanos&quot;: &quot;A String&quot;, # The raw timestamp from the original SensorEvent.
                  &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;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;fpVal&quot;: 3.14, # Floating point 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;maxEndTimeNs&quot;: &quot;A String&quot;, # The largest end time of all data points in this possibly partial representation of the dataset. Time is in nanoseconds from epoch. This should also match the second part of the dataset identifier.
            },
        ],
        &quot;type&quot;: &quot;A String&quot;, # The type of a bucket signifies how the data aggregation is performed in the bucket.
        &quot;endTimeMillis&quot;: &quot;A String&quot;, # The end time for the aggregated data, in milliseconds since epoch, inclusive.
        &quot;session&quot;: { # Sessions contain metadata, such as a user-friendly name and time interval information. # Available for Bucket.Type.SESSION
          &quot;endTimeMillis&quot;: &quot;A String&quot;, # An end time, in milliseconds since epoch, inclusive.
          &quot;modifiedTimeMillis&quot;: &quot;A String&quot;, # A timestamp that indicates when the session was last modified.
          &quot;application&quot;: { # The application that created the session.
            &quot;packageName&quot;: &quot;A String&quot;, # Package name for this application. This is used as a unique identifier when created by Android applications, but cannot be specified by REST clients. REST clients will have their developer project number reflected into the Data Source data stream IDs, instead of the packageName.
            &quot;detailsUrl&quot;: &quot;A String&quot;, # An optional URI that can be used to link back to the application.
            &quot;version&quot;: &quot;A String&quot;, # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
            &quot;name&quot;: &quot;A String&quot;, # The name of this application. This is required for REST clients, but we do not enforce uniqueness of this name. It is provided as a matter of convenience for other developers who would like to identify which REST created an Application or Data Source.
          },
          &quot;startTimeMillis&quot;: &quot;A String&quot;, # A start time, in milliseconds since epoch, inclusive.
          &quot;activityType&quot;: 42, # The type of activity this session represents.
          &quot;name&quot;: &quot;A String&quot;, # A human readable name of the session.
          &quot;activeTimeMillis&quot;: &quot;A String&quot;, # Session active time. While start_time_millis and end_time_millis define the full session time, the active time can be shorter and specified by active_time_millis. If the inactive time during the session is known, it should also be inserted via a com.google.activity.segment data point with a STILL activity value
          &quot;description&quot;: &quot;A String&quot;, # A description for this session.
          &quot;id&quot;: &quot;A String&quot;, # A client-generated identifier that is unique across all sessions owned by this particular user.
        },
        &quot;activity&quot;: 42, # Available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT
        &quot;startTimeMillis&quot;: &quot;A String&quot;, # The start time for the aggregated data, in milliseconds since epoch, inclusive.
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

</body></html>