<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:

    {
    "hasMoreData": True or False, # Flag to indicate server has more data to transfer
    "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": { # 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": { # 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": { # 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": { # 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>