blob: f31089ffece7698b20152e8a1705ef37eff4df7b [file] [log] [blame]
<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</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 &lt;code&gt;me&lt;/code&gt; to indicate
the authenticated user. Only &lt;code&gt;me&lt;/code&gt; is supported at this time. (required)
body: object, The request body.
The object takes the form of:
{ # Next id: 10
&quot;bucketByTime&quot;: { # Specifies that data be aggregated by a single time interval. Mutually
# exclusive of other bucketing specifications.
&quot;period&quot;: {
&quot;type&quot;: &quot;A String&quot;,
&quot;value&quot;: 42,
&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;filteredDataQualityStandard&quot;: [ # DO NOT POPULATE THIS FIELD. It is ignored.
&quot;A String&quot;,
],
&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;activityDataSourceId&quot;: &quot;A String&quot;, # The default activity stream will be used if a specific activityDataSourceId
# is not specified.
&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;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;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:&lt;output data type name&gt;: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;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;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;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;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;bucketByActivitySegment&quot;: { # Specifies that data be aggregated each activity segment recored 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;activityDataSourceId&quot;: &quot;A String&quot;, # The default activity stream will be used if a specific activityDataSourceId
# is not specified.
&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.
},
}
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;session&quot;: { # Sessions contain metadata, such as a user-friendly name and time interval # Available for Bucket.Type.SESSION
# information.
&quot;id&quot;: &quot;A String&quot;, # A client-generated identifier that is unique across all sessions owned by
# this particular user.
&quot;activityType&quot;: 42, # The type of activity this session represents.
&quot;endTimeMillis&quot;: &quot;A String&quot;, # An end time, in milliseconds since epoch, inclusive.
&quot;description&quot;: &quot;A String&quot;, # A description for this session.
&quot;startTimeMillis&quot;: &quot;A String&quot;, # A start time, in milliseconds since epoch, inclusive.
&quot;name&quot;: &quot;A String&quot;, # A human readable name of the session.
&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;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;modifiedTimeMillis&quot;: &quot;A String&quot;, # A timestamp that indicates when the session was last modified.
},
&quot;activity&quot;: 42, # Available for Bucket.Type.ACTIVITY_TYPE, Bucket.Type.ACTIVITY_SEGMENT
&quot;endTimeMillis&quot;: &quot;A String&quot;, # The end time for the aggregated data, in milliseconds since epoch,
# inclusive.
&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;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;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 largest
# endTimeNanos first. 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;computationTimeMillis&quot;: &quot;A String&quot;, # DO NOT USE THIS FIELD. It is ignored, and not stored.
&quot;dataTypeName&quot;: &quot;A String&quot;, # The data type defining the format of the values in this data point.
&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;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;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;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;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;intVal&quot;: 42, # Integer value. When this is set, other values must not be set.
},
],
},
],
&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;startTimeMillis&quot;: &quot;A String&quot;, # The start time for the aggregated data, in milliseconds since epoch,
# inclusive.
&quot;type&quot;: &quot;A String&quot;, # The type of a bucket signifies how the data aggregation is performed in the
# bucket.
},
],
}</pre>
</div>
</body></html>