<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</a> . <a href="fitness_v1.users.html">users</a> . <a href="fitness_v1.users.sessions.html">sessions</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(userId, sessionId, currentTimeMillis=None)</a></code></p>
<p class="firstline">Deletes a session specified by the given session ID.</p>
<p class="toc_element">
  <code><a href="#list">list(userId, includeDeleted=None, pageToken=None, startTime=None, endTime=None)</a></code></p>
<p class="firstline">Lists sessions previously created.</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>
<p class="toc_element">
  <code><a href="#update">update(userId, sessionId, body, currentTimeMillis=None)</a></code></p>
<p class="firstline">Updates or insert a given session.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(userId, sessionId, currentTimeMillis=None)</code>
  <pre>Deletes a session specified by the given session ID.

Args:
  userId: string, Delete a session for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
  sessionId: string, The ID of the session to be deleted. (required)
  currentTimeMillis: string, The client's current time in milliseconds since epoch.
</pre>
</div>

<div class="method">
    <code class="details" id="list">list(userId, includeDeleted=None, pageToken=None, startTime=None, endTime=None)</code>
  <pre>Lists sessions previously created.

Args:
  userId: string, List sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
  includeDeleted: boolean, If true, deleted sessions will be returned. When set to true, sessions returned in this response will only have an ID and will not have any other fields.
  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.
  startTime: string, An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response.
  endTime: string, An RFC3339 timestamp. Only sessions ending between the start and end times will be included in the response.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # 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.
    "deletedSession": [ # If includeDeleted is set to true in the request, this list will contain sessions deleted with original end times that are within the startTime and endTime frame.
      { # Sessions contain metadata, such as a user-friendly name and time interval information.
        "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
        "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
        "description": "A String", # A description for this session.
        "activityType": 42, # The type of activity this session represents.
        "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
          "packageName": "A String", # 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.
          "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
          "name": "A String", # 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.
          "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
        },
        "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
        "activeTimeMillis": "A String", # 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
        "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
        "name": "A String", # A human readable name of the session.
      },
    ],
    "session": [ # Sessions with an end time that is between startTime and endTime of the request.
      { # Sessions contain metadata, such as a user-friendly name and time interval information.
        "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
        "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
        "description": "A String", # A description for this session.
        "activityType": 42, # The type of activity this session represents.
        "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
          "packageName": "A String", # 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.
          "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
          "name": "A String", # 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.
          "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
        },
        "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
        "activeTimeMillis": "A String", # 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
        "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
        "name": "A String", # A human readable name of the session.
      },
    ],
  }</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>

<div class="method">
    <code class="details" id="update">update(userId, sessionId, body, currentTimeMillis=None)</code>
  <pre>Updates or insert a given session.

Args:
  userId: string, Create sessions for the person identified. Use me to indicate the authenticated user. Only me is supported at this time. (required)
  sessionId: string, The ID of the session to be created. (required)
  body: object, The request body. (required)
    The object takes the form of:

{ # Sessions contain metadata, such as a user-friendly name and time interval information.
  "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
  "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
  "description": "A String", # A description for this session.
  "activityType": 42, # The type of activity this session represents.
  "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
    "packageName": "A String", # 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.
    "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
    "name": "A String", # 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.
    "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
  },
  "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
  "activeTimeMillis": "A String", # 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
  "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
  "name": "A String", # A human readable name of the session.
}

  currentTimeMillis: string, The client's current time in milliseconds since epoch.

Returns:
  An object of the form:

    { # Sessions contain metadata, such as a user-friendly name and time interval information.
    "modifiedTimeMillis": "A String", # A timestamp that indicates when the session was last modified.
    "endTimeMillis": "A String", # An end time, in milliseconds since epoch, inclusive.
    "description": "A String", # A description for this session.
    "activityType": 42, # The type of activity this session represents.
    "application": { # See: google3/java/com/google/android/apps/heart/platform/api/Application.java # The application that created the session.
      "packageName": "A String", # 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.
      "version": "A String", # Version of the application. You should update this field whenever the application changes in a way that affects the computation of the data.
      "name": "A String", # 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.
      "detailsUrl": "A String", # An optional URI that can be used to link back to the application.
    },
    "startTimeMillis": "A String", # A start time, in milliseconds since epoch, inclusive.
    "activeTimeMillis": "A String", # 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
    "id": "A String", # A client-generated identifier that is unique across all sessions owned by this particular user.
    "name": "A String", # A human readable name of the session.
  }</pre>
</div>

</body></html>