Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Unified Diff: generated/googleapis/lib/mirror/v1.dart

Issue 559053002: Generate 0.1.0 version of googleapis/googleapis_beta (Closed) Base URL: git@github.com:dart-lang/googleapis.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: generated/googleapis/lib/mirror/v1.dart
diff --git a/generated/googleapis/lib/mirror/v1.dart b/generated/googleapis/lib/mirror/v1.dart
new file mode 100644
index 0000000000000000000000000000000000000000..9212fb67c3a0cd3815fa3120ce74b7153ccc0c2d
--- /dev/null
+++ b/generated/googleapis/lib/mirror/v1.dart
@@ -0,0 +1,2715 @@
+library googleapis.mirror.v1;
+
+import "dart:core" as core;
+import "dart:collection" as collection_1;
+import "dart:async" as async;
+import "dart:convert" as convert;
+
+import "package:crypto/crypto.dart" as crypto;
+import 'package:http/http.dart' as http;
+import '../src/common_internal.dart' as common_internal;
+import '../common/common.dart' as common;
+
+export '../common/common.dart' show ApiRequestError;
+export '../common/common.dart' show DetailedApiRequestError;
+
+/** API for interacting with Glass users via the timeline. */
+class MirrorApi {
+ /** View your location */
+ static const GlassLocationScope = "https://www.googleapis.com/auth/glass.location";
+
+ /** View and manage your Glass timeline */
+ static const GlassTimelineScope = "https://www.googleapis.com/auth/glass.timeline";
+
+
+ final common_internal.ApiRequester _requester;
+
+ AccountsResourceApi get accounts => new AccountsResourceApi(_requester);
+ ContactsResourceApi get contacts => new ContactsResourceApi(_requester);
+ LocationsResourceApi get locations => new LocationsResourceApi(_requester);
+ SettingsResourceApi get settings => new SettingsResourceApi(_requester);
+ SubscriptionsResourceApi get subscriptions => new SubscriptionsResourceApi(_requester);
+ TimelineResourceApi get timeline => new TimelineResourceApi(_requester);
+
+ MirrorApi(http.Client client) :
+ _requester = new common_internal.ApiRequester(client, "https://www.googleapis.com/", "/mirror/v1/");
+}
+
+
+/** Not documented yet. */
+class AccountsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ AccountsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Inserts a new account for a user
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [userToken] - The ID for the user.
+ *
+ * [accountType] - Account type to be passed to Android Account Manager.
+ *
+ * [accountName] - The name of the account to be passed to the Android Account
+ * Manager.
+ *
+ * Completes with a [Account].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Account> insert(Account request, core.String userToken, core.String accountType, core.String accountName) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (userToken == null) {
+ throw new core.ArgumentError("Parameter userToken is required.");
+ }
+ if (accountType == null) {
+ throw new core.ArgumentError("Parameter accountType is required.");
+ }
+ if (accountName == null) {
+ throw new core.ArgumentError("Parameter accountName is required.");
+ }
+
+
+ _url = 'accounts/' + common_internal.Escaper.ecapeVariable('$userToken') + '/' + common_internal.Escaper.ecapeVariable('$accountType') + '/' + common_internal.Escaper.ecapeVariable('$accountName');
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Account.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class ContactsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ ContactsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes a contact.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the contact.
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = 'contacts/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Gets a single contact by ID.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the contact.
+ *
+ * Completes with a [Contact].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Contact> get(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'contacts/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Contact.fromJson(data));
+ }
+
+ /**
+ * Inserts a new contact.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * Completes with a [Contact].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Contact> insert(Contact request) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+
+
+ _url = 'contacts';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Contact.fromJson(data));
+ }
+
+ /**
+ * Retrieves a list of contacts for the authenticated user.
+ *
+ * Request parameters:
+ *
+ * Completes with a [ContactsListResponse].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<ContactsListResponse> list() {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+
+
+ _url = 'contacts';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new ContactsListResponse.fromJson(data));
+ }
+
+ /**
+ * Updates a contact in place. This method supports patch semantics.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the contact.
+ *
+ * Completes with a [Contact].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Contact> patch(Contact request, core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'contacts/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Contact.fromJson(data));
+ }
+
+ /**
+ * Updates a contact in place.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the contact.
+ *
+ * Completes with a [Contact].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Contact> update(Contact request, core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'contacts/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Contact.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class LocationsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ LocationsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Gets a single location by ID.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the location or latest for the last known location.
+ *
+ * Completes with a [Location].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Location> get(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'locations/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Location.fromJson(data));
+ }
+
+ /**
+ * Retrieves a list of locations for the user.
+ *
+ * Request parameters:
+ *
+ * Completes with a [LocationsListResponse].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<LocationsListResponse> list() {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+
+
+ _url = 'locations';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new LocationsListResponse.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class SettingsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ SettingsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Gets a single setting by ID.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the setting. The following IDs are valid:
+ * - locale - The key to the user’s language/locale (BCP 47 identifier) that
+ * Glassware should use to render localized content.
+ * - timezone - The key to the user’s current time zone region as defined in
+ * the tz database. Example: America/Los_Angeles.
+ *
+ * Completes with a [Setting].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Setting> get(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'settings/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Setting.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class SubscriptionsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ SubscriptionsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes a subscription.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the subscription.
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = 'subscriptions/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Creates a new subscription.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * Completes with a [Subscription].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Subscription> insert(Subscription request) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+
+
+ _url = 'subscriptions';
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Subscription.fromJson(data));
+ }
+
+ /**
+ * Retrieves a list of subscriptions for the authenticated user and service.
+ *
+ * Request parameters:
+ *
+ * Completes with a [SubscriptionsListResponse].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<SubscriptionsListResponse> list() {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+
+
+ _url = 'subscriptions';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new SubscriptionsListResponse.fromJson(data));
+ }
+
+ /**
+ * Updates an existing subscription in place.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the subscription.
+ *
+ * Completes with a [Subscription].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Subscription> update(Subscription request, core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'subscriptions/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Subscription.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class TimelineResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ TimelineAttachmentsResourceApi get attachments => new TimelineAttachmentsResourceApi(_requester);
+
+ TimelineResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes a timeline item.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the timeline item.
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Gets a single timeline item by ID.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the timeline item.
+ *
+ * Completes with a [TimelineItem].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TimelineItem> get(core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TimelineItem.fromJson(data));
+ }
+
+ /**
+ * Inserts a new item into the timeline.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [uploadMedia] - The media to upload.
+ *
+ * [uploadOptions] - Options for the media upload. Streaming Media without the
+ * length being known ahead of time is only supported via resumable uploads.
+ *
+ * Completes with a [TimelineItem].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TimelineItem> insert(TimelineItem request, {common.UploadOptions uploadOptions : common.UploadOptions.Default, common.Media uploadMedia}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+
+ _uploadMedia = uploadMedia;
+ _uploadOptions = uploadOptions;
+
+ if (_uploadMedia == null) {
+ _url = 'timeline';
+ } else if (_uploadOptions is common.ResumableUploadOptions) {
+ _url = '/resumable/upload/mirror/v1/timeline';
+ } else {
+ _url = '/upload/mirror/v1/timeline';
+ }
+
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TimelineItem.fromJson(data));
+ }
+
+ /**
+ * Retrieves a list of timeline items for the authenticated user.
+ *
+ * Request parameters:
+ *
+ * [bundleId] - If provided, only items with the given bundleId will be
+ * returned.
+ *
+ * [includeDeleted] - If true, tombstone records for deleted items will be
+ * returned.
+ *
+ * [maxResults] - The maximum number of items to include in the response, used
+ * for paging.
+ *
+ * [orderBy] - Controls the order in which timeline items are returned.
+ * Possible string values are:
+ * - "displayTime" : Results will be ordered by displayTime (default). This is
+ * the same ordering as is used in the timeline on the device.
+ * - "writeTime" : Results will be ordered by the time at which they were last
+ * written to the data store.
+ *
+ * [pageToken] - Token for the page of results to return.
+ *
+ * [pinnedOnly] - If true, only pinned items will be returned.
+ *
+ * [sourceItemId] - If provided, only items with the given sourceItemId will
+ * be returned.
+ *
+ * Completes with a [TimelineListResponse].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TimelineListResponse> list({core.String bundleId, core.bool includeDeleted, core.int maxResults, core.String orderBy, core.String pageToken, core.bool pinnedOnly, core.String sourceItemId}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (bundleId != null) {
+ _queryParams["bundleId"] = [bundleId];
+ }
+ if (includeDeleted != null) {
+ _queryParams["includeDeleted"] = ["${includeDeleted}"];
+ }
+ if (maxResults != null) {
+ _queryParams["maxResults"] = ["${maxResults}"];
+ }
+ if (orderBy != null) {
+ _queryParams["orderBy"] = [orderBy];
+ }
+ if (pageToken != null) {
+ _queryParams["pageToken"] = [pageToken];
+ }
+ if (pinnedOnly != null) {
+ _queryParams["pinnedOnly"] = ["${pinnedOnly}"];
+ }
+ if (sourceItemId != null) {
+ _queryParams["sourceItemId"] = [sourceItemId];
+ }
+
+
+ _url = 'timeline';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TimelineListResponse.fromJson(data));
+ }
+
+ /**
+ * Updates a timeline item in place. This method supports patch semantics.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the timeline item.
+ *
+ * Completes with a [TimelineItem].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TimelineItem> patch(TimelineItem request, core.String id) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$id');
+
+ var _response = _requester.request(_url,
+ "PATCH",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TimelineItem.fromJson(data));
+ }
+
+ /**
+ * Updates a timeline item in place.
+ *
+ * [request] - The metadata request object.
+ *
+ * Request parameters:
+ *
+ * [id] - The ID of the timeline item.
+ *
+ * [uploadMedia] - The media to upload.
+ *
+ * [uploadOptions] - Options for the media upload. Streaming Media without the
+ * length being known ahead of time is only supported via resumable uploads.
+ *
+ * Completes with a [TimelineItem].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<TimelineItem> update(TimelineItem request, core.String id, {common.UploadOptions uploadOptions : common.UploadOptions.Default, common.Media uploadMedia}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (request != null) {
+ _body = convert.JSON.encode((request).toJson());
+ }
+ if (id == null) {
+ throw new core.ArgumentError("Parameter id is required.");
+ }
+
+ _uploadMedia = uploadMedia;
+ _uploadOptions = uploadOptions;
+
+ if (_uploadMedia == null) {
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$id');
+ } else if (_uploadOptions is common.ResumableUploadOptions) {
+ _url = '/resumable/upload/mirror/v1/timeline/' + common_internal.Escaper.ecapeVariable('$id');
+ } else {
+ _url = '/upload/mirror/v1/timeline/' + common_internal.Escaper.ecapeVariable('$id');
+ }
+
+
+ var _response = _requester.request(_url,
+ "PUT",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new TimelineItem.fromJson(data));
+ }
+
+}
+
+
+/** Not documented yet. */
+class TimelineAttachmentsResourceApi {
+ final common_internal.ApiRequester _requester;
+
+ TimelineAttachmentsResourceApi(common_internal.ApiRequester client) :
+ _requester = client;
+
+ /**
+ * Deletes an attachment from a timeline item.
+ *
+ * Request parameters:
+ *
+ * [itemId] - The ID of the timeline item the attachment belongs to.
+ *
+ * [attachmentId] - The ID of the attachment.
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future delete(core.String itemId, core.String attachmentId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (itemId == null) {
+ throw new core.ArgumentError("Parameter itemId is required.");
+ }
+ if (attachmentId == null) {
+ throw new core.ArgumentError("Parameter attachmentId is required.");
+ }
+
+ _downloadOptions = null;
+
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$itemId') + '/attachments/' + common_internal.Escaper.ecapeVariable('$attachmentId');
+
+ var _response = _requester.request(_url,
+ "DELETE",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => null);
+ }
+
+ /**
+ * Retrieves an attachment on a timeline item by item ID and attachment ID.
+ *
+ * Request parameters:
+ *
+ * [itemId] - The ID of the timeline item the attachment belongs to.
+ *
+ * [attachmentId] - The ID of the attachment.
+ *
+ * [downloadOptions] - Options for downloading. A download can be either a
+ * Metadata (default) or Media download. Partial Media downloads are possible
+ * as well.
+ *
+ * Completes with a
+ *
+ * - [Attachment] for Metadata downloads (see [downloadOptions]).
+ *
+ * - [common.Media] for Media downloads (see [downloadOptions]).
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future get(core.String itemId, core.String attachmentId, {common.DownloadOptions downloadOptions: common.DownloadOptions.Metadata}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (itemId == null) {
+ throw new core.ArgumentError("Parameter itemId is required.");
+ }
+ if (attachmentId == null) {
+ throw new core.ArgumentError("Parameter attachmentId is required.");
+ }
+
+ _downloadOptions = downloadOptions;
+
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$itemId') + '/attachments/' + common_internal.Escaper.ecapeVariable('$attachmentId');
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ if (_downloadOptions == null ||
+ _downloadOptions == common.DownloadOptions.Metadata) {
+ return _response.then((data) => new Attachment.fromJson(data));
+ } else {
+ return _response;
+ }
+ }
+
+ /**
+ * Adds a new attachment to a timeline item.
+ *
+ * Request parameters:
+ *
+ * [itemId] - The ID of the timeline item the attachment belongs to.
+ *
+ * [uploadMedia] - The media to upload.
+ *
+ * [uploadOptions] - Options for the media upload. Streaming Media without the
+ * length being known ahead of time is only supported via resumable uploads.
+ *
+ * Completes with a [Attachment].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<Attachment> insert(core.String itemId, {common.UploadOptions uploadOptions : common.UploadOptions.Default, common.Media uploadMedia}) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (itemId == null) {
+ throw new core.ArgumentError("Parameter itemId is required.");
+ }
+
+ _uploadMedia = uploadMedia;
+ _uploadOptions = uploadOptions;
+
+ if (_uploadMedia == null) {
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$itemId') + '/attachments';
+ } else if (_uploadOptions is common.ResumableUploadOptions) {
+ _url = '/resumable/upload/mirror/v1/timeline/' + common_internal.Escaper.ecapeVariable('$itemId') + '/attachments';
+ } else {
+ _url = '/upload/mirror/v1/timeline/' + common_internal.Escaper.ecapeVariable('$itemId') + '/attachments';
+ }
+
+
+ var _response = _requester.request(_url,
+ "POST",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new Attachment.fromJson(data));
+ }
+
+ /**
+ * Returns a list of attachments for a timeline item.
+ *
+ * Request parameters:
+ *
+ * [itemId] - The ID of the timeline item whose attachments should be listed.
+ *
+ * Completes with a [AttachmentsListResponse].
+ *
+ * Completes with a [common.ApiRequestError] if the API endpoint returned an
+ * error.
+ *
+ * If the used [http.Client] completes with an error when making a REST call,
+ * this method will complete with the same error.
+ */
+ async.Future<AttachmentsListResponse> list(core.String itemId) {
+ var _url = null;
+ var _queryParams = new core.Map();
+ var _uploadMedia = null;
+ var _uploadOptions = null;
+ var _downloadOptions = common.DownloadOptions.Metadata;
+ var _body = null;
+
+ if (itemId == null) {
+ throw new core.ArgumentError("Parameter itemId is required.");
+ }
+
+
+ _url = 'timeline/' + common_internal.Escaper.ecapeVariable('$itemId') + '/attachments';
+
+ var _response = _requester.request(_url,
+ "GET",
+ body: _body,
+ queryParams: _queryParams,
+ uploadOptions: _uploadOptions,
+ uploadMedia: _uploadMedia,
+ downloadOptions: _downloadOptions);
+ return _response.then((data) => new AttachmentsListResponse.fromJson(data));
+ }
+
+}
+
+
+
+/** Represents an account passed into the Account Manager on Glass. */
+class Account {
+ /** Not documented yet. */
+ core.List<AuthToken> authTokens;
+
+ /** Not documented yet. */
+ core.List<core.String> features;
+
+ /** Not documented yet. */
+ core.String password;
+
+ /** Not documented yet. */
+ core.List<UserData> userData;
+
+
+ Account();
+
+ Account.fromJson(core.Map _json) {
+ if (_json.containsKey("authTokens")) {
+ authTokens = _json["authTokens"].map((value) => new AuthToken.fromJson(value)).toList();
+ }
+ if (_json.containsKey("features")) {
+ features = _json["features"];
+ }
+ if (_json.containsKey("password")) {
+ password = _json["password"];
+ }
+ if (_json.containsKey("userData")) {
+ userData = _json["userData"].map((value) => new UserData.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (authTokens != null) {
+ _json["authTokens"] = authTokens.map((value) => (value).toJson()).toList();
+ }
+ if (features != null) {
+ _json["features"] = features;
+ }
+ if (password != null) {
+ _json["password"] = password;
+ }
+ if (userData != null) {
+ _json["userData"] = userData.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Represents media content, such as a photo, that can be attached to a timeline
+ * item.
+ */
+class Attachment {
+ /** The MIME type of the attachment. */
+ core.String contentType;
+
+ /** The URL for the content. */
+ core.String contentUrl;
+
+ /** The ID of the attachment. */
+ core.String id;
+
+ /**
+ * Indicates that the contentUrl is not available because the attachment
+ * content is still being processed. If the caller wishes to retrieve the
+ * content, it should try again later.
+ */
+ core.bool isProcessingContent;
+
+
+ Attachment();
+
+ Attachment.fromJson(core.Map _json) {
+ if (_json.containsKey("contentType")) {
+ contentType = _json["contentType"];
+ }
+ if (_json.containsKey("contentUrl")) {
+ contentUrl = _json["contentUrl"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("isProcessingContent")) {
+ isProcessingContent = _json["isProcessingContent"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (contentType != null) {
+ _json["contentType"] = contentType;
+ }
+ if (contentUrl != null) {
+ _json["contentUrl"] = contentUrl;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (isProcessingContent != null) {
+ _json["isProcessingContent"] = isProcessingContent;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A list of Attachments. This is the response from the server to GET requests
+ * on the attachments collection.
+ */
+class AttachmentsListResponse {
+ /** The list of attachments. */
+ core.List<Attachment> items;
+
+ /** The type of resource. This is always mirror#attachmentsList. */
+ core.String kind;
+
+
+ AttachmentsListResponse();
+
+ AttachmentsListResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Attachment.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class AuthToken {
+ /** Not documented yet. */
+ core.String authToken;
+
+ /** Not documented yet. */
+ core.String type;
+
+
+ AuthToken();
+
+ AuthToken.fromJson(core.Map _json) {
+ if (_json.containsKey("authToken")) {
+ authToken = _json["authToken"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (authToken != null) {
+ _json["authToken"] = authToken;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ return _json;
+ }
+}
+
+
+/** A single menu command that is part of a Contact. */
+class Command {
+ /**
+ * The type of operation this command corresponds to. Allowed values are:
+ * - TAKE_A_NOTE - Shares a timeline item with the transcription of user
+ * speech from the "Take a note" voice menu command.
+ * - POST_AN_UPDATE - Shares a timeline item with the transcription of user
+ * speech from the "Post an update" voice menu command.
+ */
+ core.String type;
+
+
+ Command();
+
+ Command.fromJson(core.Map _json) {
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (type != null) {
+ _json["type"] = type;
+ }
+ return _json;
+ }
+}
+
+
+/** A person or group that can be used as a creator or a contact. */
+class Contact {
+ /**
+ * A list of voice menu commands that a contact can handle. Glass shows up to
+ * three contacts for each voice menu command. If there are more than that,
+ * the three contacts with the highest priority are shown for that particular
+ * command.
+ */
+ core.List<Command> acceptCommands;
+
+ /**
+ * A list of MIME types that a contact supports. The contact will be shown to
+ * the user if any of its acceptTypes matches any of the types of the
+ * attachments on the item. If no acceptTypes are given, the contact will be
+ * shown for all items.
+ */
+ core.List<core.String> acceptTypes;
+
+ /** The name to display for this contact. */
+ core.String displayName;
+
+ /**
+ * An ID for this contact. This is generated by the application and is treated
+ * as an opaque token.
+ */
+ core.String id;
+
+ /**
+ * Set of image URLs to display for a contact. Most contacts will have a
+ * single image, but a "group" contact may include up to 8 image URLs and they
+ * will be resized and cropped into a mosaic on the client.
+ */
+ core.List<core.String> imageUrls;
+
+ /** The type of resource. This is always mirror#contact. */
+ core.String kind;
+
+ /**
+ * Primary phone number for the contact. This can be a fully-qualified number,
+ * with country calling code and area code, or a local number.
+ */
+ core.String phoneNumber;
+
+ /**
+ * Priority for the contact to determine ordering in a list of contacts.
+ * Contacts with higher priorities will be shown before ones with lower
+ * priorities.
+ */
+ core.int priority;
+
+ /**
+ * A list of sharing features that a contact can handle. Allowed values are:
+ * - ADD_CAPTION
+ */
+ core.List<core.String> sharingFeatures;
+
+ /**
+ * The ID of the application that created this contact. This is populated by
+ * the API
+ */
+ core.String source;
+
+ /**
+ * Name of this contact as it should be pronounced. If this contact's name
+ * must be spoken as part of a voice disambiguation menu, this name is used as
+ * the expected pronunciation. This is useful for contact names with
+ * unpronounceable characters or whose display spelling is otherwise not
+ * phonetic.
+ */
+ core.String speakableName;
+
+ /**
+ * The type for this contact. This is used for sorting in UIs. Allowed values
+ * are:
+ * - INDIVIDUAL - Represents a single person. This is the default.
+ * - GROUP - Represents more than a single person.
+ */
+ core.String type;
+
+
+ Contact();
+
+ Contact.fromJson(core.Map _json) {
+ if (_json.containsKey("acceptCommands")) {
+ acceptCommands = _json["acceptCommands"].map((value) => new Command.fromJson(value)).toList();
+ }
+ if (_json.containsKey("acceptTypes")) {
+ acceptTypes = _json["acceptTypes"];
+ }
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("imageUrls")) {
+ imageUrls = _json["imageUrls"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("phoneNumber")) {
+ phoneNumber = _json["phoneNumber"];
+ }
+ if (_json.containsKey("priority")) {
+ priority = _json["priority"];
+ }
+ if (_json.containsKey("sharingFeatures")) {
+ sharingFeatures = _json["sharingFeatures"];
+ }
+ if (_json.containsKey("source")) {
+ source = _json["source"];
+ }
+ if (_json.containsKey("speakableName")) {
+ speakableName = _json["speakableName"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (acceptCommands != null) {
+ _json["acceptCommands"] = acceptCommands.map((value) => (value).toJson()).toList();
+ }
+ if (acceptTypes != null) {
+ _json["acceptTypes"] = acceptTypes;
+ }
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (imageUrls != null) {
+ _json["imageUrls"] = imageUrls;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (phoneNumber != null) {
+ _json["phoneNumber"] = phoneNumber;
+ }
+ if (priority != null) {
+ _json["priority"] = priority;
+ }
+ if (sharingFeatures != null) {
+ _json["sharingFeatures"] = sharingFeatures;
+ }
+ if (source != null) {
+ _json["source"] = source;
+ }
+ if (speakableName != null) {
+ _json["speakableName"] = speakableName;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A list of Contacts representing contacts. This is the response from the
+ * server to GET requests on the contacts collection.
+ */
+class ContactsListResponse {
+ /** Contact list. */
+ core.List<Contact> items;
+
+ /** The type of resource. This is always mirror#contacts. */
+ core.String kind;
+
+
+ ContactsListResponse();
+
+ ContactsListResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Contact.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/** A geographic location that can be associated with a timeline item. */
+class Location {
+ /** The accuracy of the location fix in meters. */
+ core.double accuracy;
+
+ /** The full address of the location. */
+ core.String address;
+
+ /**
+ * The name to be displayed. This may be a business name or a user-defined
+ * place, such as "Home".
+ */
+ core.String displayName;
+
+ /** The ID of the location. */
+ core.String id;
+
+ /** The type of resource. This is always mirror#location. */
+ core.String kind;
+
+ /** The latitude, in degrees. */
+ core.double latitude;
+
+ /** The longitude, in degrees. */
+ core.double longitude;
+
+ /**
+ * The time at which this location was captured, formatted according to RFC
+ * 3339.
+ */
+ core.DateTime timestamp;
+
+
+ Location();
+
+ Location.fromJson(core.Map _json) {
+ if (_json.containsKey("accuracy")) {
+ accuracy = _json["accuracy"];
+ }
+ if (_json.containsKey("address")) {
+ address = _json["address"];
+ }
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("latitude")) {
+ latitude = _json["latitude"];
+ }
+ if (_json.containsKey("longitude")) {
+ longitude = _json["longitude"];
+ }
+ if (_json.containsKey("timestamp")) {
+ timestamp = core.DateTime.parse(_json["timestamp"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (accuracy != null) {
+ _json["accuracy"] = accuracy;
+ }
+ if (address != null) {
+ _json["address"] = address;
+ }
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (latitude != null) {
+ _json["latitude"] = latitude;
+ }
+ if (longitude != null) {
+ _json["longitude"] = longitude;
+ }
+ if (timestamp != null) {
+ _json["timestamp"] = (timestamp).toIso8601String();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A list of Locations. This is the response from the server to GET requests on
+ * the locations collection.
+ */
+class LocationsListResponse {
+ /** The list of locations. */
+ core.List<Location> items;
+
+ /** The type of resource. This is always mirror#locationsList. */
+ core.String kind;
+
+
+ LocationsListResponse();
+
+ LocationsListResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Location.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/** A custom menu item that can be presented to the user by a timeline item. */
+class MenuItem {
+ /**
+ * Controls the behavior when the user picks the menu option. Allowed values
+ * are:
+ * - CUSTOM - Custom action set by the service. When the user selects this
+ * menuItem, the API triggers a notification to your callbackUrl with the
+ * userActions.type set to CUSTOM and the userActions.payload set to the ID of
+ * this menu item. This is the default value.
+ * - Built-in actions:
+ * - REPLY - Initiate a reply to the timeline item using the voice recording
+ * UI. The creator attribute must be set in the timeline item for this menu to
+ * be available.
+ * - REPLY_ALL - Same behavior as REPLY. The original timeline item's
+ * recipients will be added to the reply item.
+ * - DELETE - Delete the timeline item.
+ * - SHARE - Share the timeline item with the available contacts.
+ * - READ_ALOUD - Read the timeline item's speakableText aloud; if this field
+ * is not set, read the text field; if none of those fields are set, this menu
+ * item is ignored.
+ * - GET_MEDIA_INPUT - Allow users to provide media payloads to Glassware from
+ * a menu item (currently, only transcribed text from voice input is
+ * supported). Subscribe to notifications when users invoke this menu item to
+ * receive the timeline item ID. Retrieve the media from the timeline item in
+ * the payload property.
+ * - VOICE_CALL - Initiate a phone call using the timeline item's
+ * creator.phoneNumber attribute as recipient.
+ * - NAVIGATE - Navigate to the timeline item's location.
+ * - TOGGLE_PINNED - Toggle the isPinned state of the timeline item.
+ * - OPEN_URI - Open the payload of the menu item in the browser.
+ * - PLAY_VIDEO - Open the payload of the menu item in the Glass video player.
+ * - SEND_MESSAGE - Initiate sending a message to the timeline item's creator:
+ * - If the creator.phoneNumber is set and Glass is connected to an Android
+ * phone, the message is an SMS.
+ * - Otherwise, if the creator.email is set, the message is an email.
+ */
+ core.String action;
+
+ /**
+ * The ID for this menu item. This is generated by the application and is
+ * treated as an opaque token.
+ */
+ core.String id;
+
+ /**
+ * A generic payload whose meaning changes depending on this MenuItem's
+ * action.
+ * - When the action is OPEN_URI, the payload is the URL of the website to
+ * view.
+ * - When the action is PLAY_VIDEO, the payload is the streaming URL of the
+ * video
+ * - When the action is GET_MEDIA_INPUT, the payload is the text transcription
+ * of a user's speech input
+ */
+ core.String payload;
+
+ /**
+ * If set to true on a CUSTOM menu item, that item will be removed from the
+ * menu after it is selected.
+ */
+ core.bool removeWhenSelected;
+
+ /**
+ * For CUSTOM items, a list of values controlling the appearance of the menu
+ * item in each of its states. A value for the DEFAULT state must be provided.
+ * If the PENDING or CONFIRMED states are missing, they will not be shown.
+ */
+ core.List<MenuValue> values;
+
+
+ MenuItem();
+
+ MenuItem.fromJson(core.Map _json) {
+ if (_json.containsKey("action")) {
+ action = _json["action"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("payload")) {
+ payload = _json["payload"];
+ }
+ if (_json.containsKey("removeWhenSelected")) {
+ removeWhenSelected = _json["removeWhenSelected"];
+ }
+ if (_json.containsKey("values")) {
+ values = _json["values"].map((value) => new MenuValue.fromJson(value)).toList();
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (action != null) {
+ _json["action"] = action;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (payload != null) {
+ _json["payload"] = payload;
+ }
+ if (removeWhenSelected != null) {
+ _json["removeWhenSelected"] = removeWhenSelected;
+ }
+ if (values != null) {
+ _json["values"] = values.map((value) => (value).toJson()).toList();
+ }
+ return _json;
+ }
+}
+
+
+/** A single value that is part of a MenuItem. */
+class MenuValue {
+ /**
+ * The name to display for the menu item. If you specify this property for a
+ * built-in menu item, the default contextual voice command for that menu item
+ * is not shown.
+ */
+ core.String displayName;
+
+ /** URL of an icon to display with the menu item. */
+ core.String iconUrl;
+
+ /**
+ * The state that this value applies to. Allowed values are:
+ * - DEFAULT - Default value shown when displayed in the menuItems list.
+ * - PENDING - Value shown when the menuItem has been selected by the user but
+ * can still be cancelled.
+ * - CONFIRMED - Value shown when the menuItem has been selected by the user
+ * and can no longer be cancelled.
+ */
+ core.String state;
+
+
+ MenuValue();
+
+ MenuValue.fromJson(core.Map _json) {
+ if (_json.containsKey("displayName")) {
+ displayName = _json["displayName"];
+ }
+ if (_json.containsKey("iconUrl")) {
+ iconUrl = _json["iconUrl"];
+ }
+ if (_json.containsKey("state")) {
+ state = _json["state"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (displayName != null) {
+ _json["displayName"] = displayName;
+ }
+ if (iconUrl != null) {
+ _json["iconUrl"] = iconUrl;
+ }
+ if (state != null) {
+ _json["state"] = state;
+ }
+ return _json;
+ }
+}
+
+
+/** A notification delivered by the API. */
+class Notification {
+ /** The collection that generated the notification. */
+ core.String collection;
+
+ /** The ID of the item that generated the notification. */
+ core.String itemId;
+
+ /** The type of operation that generated the notification. */
+ core.String operation;
+
+ /** A list of actions taken by the user that triggered the notification. */
+ core.List<UserAction> userActions;
+
+ /**
+ * The user token provided by the service when it subscribed for
+ * notifications.
+ */
+ core.String userToken;
+
+ /**
+ * The secret verify token provided by the service when it subscribed for
+ * notifications.
+ */
+ core.String verifyToken;
+
+
+ Notification();
+
+ Notification.fromJson(core.Map _json) {
+ if (_json.containsKey("collection")) {
+ collection = _json["collection"];
+ }
+ if (_json.containsKey("itemId")) {
+ itemId = _json["itemId"];
+ }
+ if (_json.containsKey("operation")) {
+ operation = _json["operation"];
+ }
+ if (_json.containsKey("userActions")) {
+ userActions = _json["userActions"].map((value) => new UserAction.fromJson(value)).toList();
+ }
+ if (_json.containsKey("userToken")) {
+ userToken = _json["userToken"];
+ }
+ if (_json.containsKey("verifyToken")) {
+ verifyToken = _json["verifyToken"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (collection != null) {
+ _json["collection"] = collection;
+ }
+ if (itemId != null) {
+ _json["itemId"] = itemId;
+ }
+ if (operation != null) {
+ _json["operation"] = operation;
+ }
+ if (userActions != null) {
+ _json["userActions"] = userActions.map((value) => (value).toJson()).toList();
+ }
+ if (userToken != null) {
+ _json["userToken"] = userToken;
+ }
+ if (verifyToken != null) {
+ _json["verifyToken"] = verifyToken;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Controls how notifications for a timeline item are presented to the user.
+ */
+class NotificationConfig {
+ /** The time at which the notification should be delivered. */
+ core.DateTime deliveryTime;
+
+ /**
+ * Describes how important the notification is. Allowed values are:
+ * - DEFAULT - Notifications of default importance. A chime will be played to
+ * alert users.
+ */
+ core.String level;
+
+
+ NotificationConfig();
+
+ NotificationConfig.fromJson(core.Map _json) {
+ if (_json.containsKey("deliveryTime")) {
+ deliveryTime = core.DateTime.parse(_json["deliveryTime"]);
+ }
+ if (_json.containsKey("level")) {
+ level = _json["level"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (deliveryTime != null) {
+ _json["deliveryTime"] = (deliveryTime).toIso8601String();
+ }
+ if (level != null) {
+ _json["level"] = level;
+ }
+ return _json;
+ }
+}
+
+
+/** A setting for Glass. */
+class Setting {
+ /**
+ * The setting's ID. The following IDs are valid:
+ * - locale - The key to the user’s language/locale (BCP 47 identifier) that
+ * Glassware should use to render localized content.
+ * - timezone - The key to the user’s current time zone region as defined in
+ * the tz database. Example: America/Los_Angeles.
+ */
+ core.String id;
+
+ /** The type of resource. This is always mirror#setting. */
+ core.String kind;
+
+ /** The setting value, as a string. */
+ core.String value;
+
+
+ Setting();
+
+ Setting.fromJson(core.Map _json) {
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+
+/** A subscription to events on a collection. */
+class Subscription {
+ /**
+ * The URL where notifications should be delivered (must start with https://).
+ */
+ core.String callbackUrl;
+
+ /**
+ * The collection to subscribe to. Allowed values are:
+ * - timeline - Changes in the timeline including insertion, deletion, and
+ * updates.
+ * - locations - Location updates.
+ * - settings - Settings updates.
+ */
+ core.String collection;
+
+ /** The ID of the subscription. */
+ core.String id;
+
+ /** The type of resource. This is always mirror#subscription. */
+ core.String kind;
+
+ /**
+ * Container object for notifications. This is not populated in the
+ * Subscription resource.
+ */
+ Notification notification;
+
+ /**
+ * A list of operations that should be subscribed to. An empty list indicates
+ * that all operations on the collection should be subscribed to. Allowed
+ * values are:
+ * - UPDATE - The item has been updated.
+ * - INSERT - A new item has been inserted.
+ * - DELETE - The item has been deleted.
+ * - MENU_ACTION - A custom menu item has been triggered by the user.
+ */
+ core.List<core.String> operation;
+
+ /**
+ * The time at which this subscription was last modified, formatted according
+ * to RFC 3339.
+ */
+ core.DateTime updated;
+
+ /**
+ * An opaque token sent to the subscriber in notifications so that it can
+ * determine the ID of the user.
+ */
+ core.String userToken;
+
+ /**
+ * A secret token sent to the subscriber in notifications so that it can
+ * verify that the notification was generated by Google.
+ */
+ core.String verifyToken;
+
+
+ Subscription();
+
+ Subscription.fromJson(core.Map _json) {
+ if (_json.containsKey("callbackUrl")) {
+ callbackUrl = _json["callbackUrl"];
+ }
+ if (_json.containsKey("collection")) {
+ collection = _json["collection"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("notification")) {
+ notification = new Notification.fromJson(_json["notification"]);
+ }
+ if (_json.containsKey("operation")) {
+ operation = _json["operation"];
+ }
+ if (_json.containsKey("updated")) {
+ updated = core.DateTime.parse(_json["updated"]);
+ }
+ if (_json.containsKey("userToken")) {
+ userToken = _json["userToken"];
+ }
+ if (_json.containsKey("verifyToken")) {
+ verifyToken = _json["verifyToken"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (callbackUrl != null) {
+ _json["callbackUrl"] = callbackUrl;
+ }
+ if (collection != null) {
+ _json["collection"] = collection;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (notification != null) {
+ _json["notification"] = (notification).toJson();
+ }
+ if (operation != null) {
+ _json["operation"] = operation;
+ }
+ if (updated != null) {
+ _json["updated"] = (updated).toIso8601String();
+ }
+ if (userToken != null) {
+ _json["userToken"] = userToken;
+ }
+ if (verifyToken != null) {
+ _json["verifyToken"] = verifyToken;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A list of Subscriptions. This is the response from the server to GET requests
+ * on the subscription collection.
+ */
+class SubscriptionsListResponse {
+ /** The list of subscriptions. */
+ core.List<Subscription> items;
+
+ /** The type of resource. This is always mirror#subscriptionsList. */
+ core.String kind;
+
+
+ SubscriptionsListResponse();
+
+ SubscriptionsListResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new Subscription.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * Each item in the user's timeline is represented as a TimelineItem JSON
+ * structure, described below.
+ */
+class TimelineItem {
+ /**
+ * A list of media attachments associated with this item. As a convenience,
+ * you can refer to attachments in your HTML payloads with the attachment or
+ * cid scheme. For example:
+ * - attachment: <img src="attachment:attachment_index"> where
+ * attachment_index is the 0-based index of this array.
+ * - cid: <img src="cid:attachment_id"> where attachment_id is the ID of the
+ * attachment.
+ */
+ core.List<Attachment> attachments;
+
+ /**
+ * The bundle ID for this item. Services can specify a bundleId to group many
+ * items together. They appear under a single top-level item on the device.
+ */
+ core.String bundleId;
+
+ /**
+ * A canonical URL pointing to the canonical/high quality version of the data
+ * represented by the timeline item.
+ */
+ core.String canonicalUrl;
+
+ /**
+ * The time at which this item was created, formatted according to RFC 3339.
+ */
+ core.DateTime created;
+
+ /** The user or group that created this item. */
+ Contact creator;
+
+ /**
+ * The time that should be displayed when this item is viewed in the timeline,
+ * formatted according to RFC 3339. This user's timeline is sorted
+ * chronologically on display time, so this will also determine where the item
+ * is displayed in the timeline. If not set by the service, the display time
+ * defaults to the updated time.
+ */
+ core.DateTime displayTime;
+
+ /** ETag for this item. */
+ core.String etag;
+
+ /**
+ * HTML content for this item. If both text and html are provided for an item,
+ * the html will be rendered in the timeline.
+ * Allowed HTML elements - You can use these elements in your timeline cards.
+ *
+ * - Headers: h1, h2, h3, h4, h5, h6
+ * - Images: img
+ * - Lists: li, ol, ul
+ * - HTML5 semantics: article, aside, details, figure, figcaption, footer,
+ * header, nav, section, summary, time
+ * - Structural: blockquote, br, div, hr, p, span
+ * - Style: b, big, center, em, i, u, s, small, strike, strong, style, sub,
+ * sup
+ * - Tables: table, tbody, td, tfoot, th, thead, tr
+ * Blocked HTML elements: These elements and their contents are removed from
+ * HTML payloads.
+ *
+ * - Document headers: head, title
+ * - Embeds: audio, embed, object, source, video
+ * - Frames: frame, frameset
+ * - Scripting: applet, script
+ * Other elements: Any elements that aren't listed are removed, but their
+ * contents are preserved.
+ */
+ core.String html;
+
+ /** The ID of the timeline item. This is unique within a user's timeline. */
+ core.String id;
+
+ /**
+ * If this item was generated as a reply to another item, this field will be
+ * set to the ID of the item being replied to. This can be used to attach a
+ * reply to the appropriate conversation or post.
+ */
+ core.String inReplyTo;
+
+ /**
+ * Whether this item is a bundle cover.
+ *
+ * If an item is marked as a bundle cover, it will be the entry point to the
+ * bundle of items that have the same bundleId as that item. It will be shown
+ * only on the main timeline — not within the opened bundle.
+ *
+ * On the main timeline, items that are shown are:
+ * - Items that have isBundleCover set to true
+ * - Items that do not have a bundleId In a bundle sub-timeline, items that
+ * are shown are:
+ * - Items that have the bundleId in question AND isBundleCover set to false
+ */
+ core.bool isBundleCover;
+
+ /**
+ * When true, indicates this item is deleted, and only the ID property is set.
+ */
+ core.bool isDeleted;
+
+ /**
+ * When true, indicates this item is pinned, which means it's grouped
+ * alongside "active" items like navigation and hangouts, on the opposite side
+ * of the home screen from historical (non-pinned) timeline items. You can
+ * allow the user to toggle the value of this property with the TOGGLE_PINNED
+ * built-in menu item.
+ */
+ core.bool isPinned;
+
+ /** The type of resource. This is always mirror#timelineItem. */
+ core.String kind;
+
+ /** The geographic location associated with this item. */
+ Location location;
+
+ /**
+ * A list of menu items that will be presented to the user when this item is
+ * selected in the timeline.
+ */
+ core.List<MenuItem> menuItems;
+
+ /**
+ * Controls how notifications for this item are presented on the device. If
+ * this is missing, no notification will be generated.
+ */
+ NotificationConfig notification;
+
+ /**
+ * For pinned items, this determines the order in which the item is displayed
+ * in the timeline, with a higher score appearing closer to the clock. Note:
+ * setting this field is currently not supported.
+ */
+ core.int pinScore;
+
+ /** A list of users or groups that this item has been shared with. */
+ core.List<Contact> recipients;
+
+ /** A URL that can be used to retrieve this item. */
+ core.String selfLink;
+
+ /**
+ * Opaque string you can use to map a timeline item to data in your own
+ * service.
+ */
+ core.String sourceItemId;
+
+ /**
+ * The speakable version of the content of this item. Along with the
+ * READ_ALOUD menu item, use this field to provide text that would be clearer
+ * when read aloud, or to provide extended information to what is displayed
+ * visually on Glass.
+ *
+ * Glassware should also specify the speakableType field, which will be spoken
+ * before this text in cases where the additional context is useful, for
+ * example when the user requests that the item be read aloud following a
+ * notification.
+ */
+ core.String speakableText;
+
+ /**
+ * A speakable description of the type of this item. This will be announced to
+ * the user prior to reading the content of the item in cases where the
+ * additional context is useful, for example when the user requests that the
+ * item be read aloud following a notification.
+ *
+ * This should be a short, simple noun phrase such as "Email", "Text message",
+ * or "Daily Planet News Update".
+ *
+ * Glassware are encouraged to populate this field for every timeline item,
+ * even if the item does not contain speakableText or text so that the user
+ * can learn the type of the item without looking at the screen.
+ */
+ core.String speakableType;
+
+ /** Text content of this item. */
+ core.String text;
+
+ /** The title of this item. */
+ core.String title;
+
+ /**
+ * The time at which this item was last modified, formatted according to RFC
+ * 3339.
+ */
+ core.DateTime updated;
+
+
+ TimelineItem();
+
+ TimelineItem.fromJson(core.Map _json) {
+ if (_json.containsKey("attachments")) {
+ attachments = _json["attachments"].map((value) => new Attachment.fromJson(value)).toList();
+ }
+ if (_json.containsKey("bundleId")) {
+ bundleId = _json["bundleId"];
+ }
+ if (_json.containsKey("canonicalUrl")) {
+ canonicalUrl = _json["canonicalUrl"];
+ }
+ if (_json.containsKey("created")) {
+ created = core.DateTime.parse(_json["created"]);
+ }
+ if (_json.containsKey("creator")) {
+ creator = new Contact.fromJson(_json["creator"]);
+ }
+ if (_json.containsKey("displayTime")) {
+ displayTime = core.DateTime.parse(_json["displayTime"]);
+ }
+ if (_json.containsKey("etag")) {
+ etag = _json["etag"];
+ }
+ if (_json.containsKey("html")) {
+ html = _json["html"];
+ }
+ if (_json.containsKey("id")) {
+ id = _json["id"];
+ }
+ if (_json.containsKey("inReplyTo")) {
+ inReplyTo = _json["inReplyTo"];
+ }
+ if (_json.containsKey("isBundleCover")) {
+ isBundleCover = _json["isBundleCover"];
+ }
+ if (_json.containsKey("isDeleted")) {
+ isDeleted = _json["isDeleted"];
+ }
+ if (_json.containsKey("isPinned")) {
+ isPinned = _json["isPinned"];
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("location")) {
+ location = new Location.fromJson(_json["location"]);
+ }
+ if (_json.containsKey("menuItems")) {
+ menuItems = _json["menuItems"].map((value) => new MenuItem.fromJson(value)).toList();
+ }
+ if (_json.containsKey("notification")) {
+ notification = new NotificationConfig.fromJson(_json["notification"]);
+ }
+ if (_json.containsKey("pinScore")) {
+ pinScore = _json["pinScore"];
+ }
+ if (_json.containsKey("recipients")) {
+ recipients = _json["recipients"].map((value) => new Contact.fromJson(value)).toList();
+ }
+ if (_json.containsKey("selfLink")) {
+ selfLink = _json["selfLink"];
+ }
+ if (_json.containsKey("sourceItemId")) {
+ sourceItemId = _json["sourceItemId"];
+ }
+ if (_json.containsKey("speakableText")) {
+ speakableText = _json["speakableText"];
+ }
+ if (_json.containsKey("speakableType")) {
+ speakableType = _json["speakableType"];
+ }
+ if (_json.containsKey("text")) {
+ text = _json["text"];
+ }
+ if (_json.containsKey("title")) {
+ title = _json["title"];
+ }
+ if (_json.containsKey("updated")) {
+ updated = core.DateTime.parse(_json["updated"]);
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (attachments != null) {
+ _json["attachments"] = attachments.map((value) => (value).toJson()).toList();
+ }
+ if (bundleId != null) {
+ _json["bundleId"] = bundleId;
+ }
+ if (canonicalUrl != null) {
+ _json["canonicalUrl"] = canonicalUrl;
+ }
+ if (created != null) {
+ _json["created"] = (created).toIso8601String();
+ }
+ if (creator != null) {
+ _json["creator"] = (creator).toJson();
+ }
+ if (displayTime != null) {
+ _json["displayTime"] = (displayTime).toIso8601String();
+ }
+ if (etag != null) {
+ _json["etag"] = etag;
+ }
+ if (html != null) {
+ _json["html"] = html;
+ }
+ if (id != null) {
+ _json["id"] = id;
+ }
+ if (inReplyTo != null) {
+ _json["inReplyTo"] = inReplyTo;
+ }
+ if (isBundleCover != null) {
+ _json["isBundleCover"] = isBundleCover;
+ }
+ if (isDeleted != null) {
+ _json["isDeleted"] = isDeleted;
+ }
+ if (isPinned != null) {
+ _json["isPinned"] = isPinned;
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (location != null) {
+ _json["location"] = (location).toJson();
+ }
+ if (menuItems != null) {
+ _json["menuItems"] = menuItems.map((value) => (value).toJson()).toList();
+ }
+ if (notification != null) {
+ _json["notification"] = (notification).toJson();
+ }
+ if (pinScore != null) {
+ _json["pinScore"] = pinScore;
+ }
+ if (recipients != null) {
+ _json["recipients"] = recipients.map((value) => (value).toJson()).toList();
+ }
+ if (selfLink != null) {
+ _json["selfLink"] = selfLink;
+ }
+ if (sourceItemId != null) {
+ _json["sourceItemId"] = sourceItemId;
+ }
+ if (speakableText != null) {
+ _json["speakableText"] = speakableText;
+ }
+ if (speakableType != null) {
+ _json["speakableType"] = speakableType;
+ }
+ if (text != null) {
+ _json["text"] = text;
+ }
+ if (title != null) {
+ _json["title"] = title;
+ }
+ if (updated != null) {
+ _json["updated"] = (updated).toIso8601String();
+ }
+ return _json;
+ }
+}
+
+
+/**
+ * A list of timeline items. This is the response from the server to GET
+ * requests on the timeline collection.
+ */
+class TimelineListResponse {
+ /** Items in the timeline. */
+ core.List<TimelineItem> items;
+
+ /** The type of resource. This is always mirror#timeline. */
+ core.String kind;
+
+ /**
+ * The next page token. Provide this as the pageToken parameter in the request
+ * to retrieve the next page of results.
+ */
+ core.String nextPageToken;
+
+
+ TimelineListResponse();
+
+ TimelineListResponse.fromJson(core.Map _json) {
+ if (_json.containsKey("items")) {
+ items = _json["items"].map((value) => new TimelineItem.fromJson(value)).toList();
+ }
+ if (_json.containsKey("kind")) {
+ kind = _json["kind"];
+ }
+ if (_json.containsKey("nextPageToken")) {
+ nextPageToken = _json["nextPageToken"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (items != null) {
+ _json["items"] = items.map((value) => (value).toJson()).toList();
+ }
+ if (kind != null) {
+ _json["kind"] = kind;
+ }
+ if (nextPageToken != null) {
+ _json["nextPageToken"] = nextPageToken;
+ }
+ return _json;
+ }
+}
+
+
+/** Represents an action taken by the user that triggered a notification. */
+class UserAction {
+ /**
+ * An optional payload for the action.
+ *
+ * For actions of type CUSTOM, this is the ID of the custom menu item that was
+ * selected.
+ */
+ core.String payload;
+
+ /**
+ * The type of action. The value of this can be:
+ * - SHARE - the user shared an item.
+ * - REPLY - the user replied to an item.
+ * - REPLY_ALL - the user replied to all recipients of an item.
+ * - CUSTOM - the user selected a custom menu item on the timeline item.
+ * - DELETE - the user deleted the item.
+ * - PIN - the user pinned the item.
+ * - UNPIN - the user unpinned the item.
+ * - LAUNCH - the user initiated a voice command. In the future, additional
+ * types may be added. UserActions with unrecognized types should be ignored.
+ */
+ core.String type;
+
+
+ UserAction();
+
+ UserAction.fromJson(core.Map _json) {
+ if (_json.containsKey("payload")) {
+ payload = _json["payload"];
+ }
+ if (_json.containsKey("type")) {
+ type = _json["type"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (payload != null) {
+ _json["payload"] = payload;
+ }
+ if (type != null) {
+ _json["type"] = type;
+ }
+ return _json;
+ }
+}
+
+
+/** Not documented yet. */
+class UserData {
+ /** Not documented yet. */
+ core.String key;
+
+ /** Not documented yet. */
+ core.String value;
+
+
+ UserData();
+
+ UserData.fromJson(core.Map _json) {
+ if (_json.containsKey("key")) {
+ key = _json["key"];
+ }
+ if (_json.containsKey("value")) {
+ value = _json["value"];
+ }
+ }
+
+ core.Map toJson() {
+ var _json = new core.Map();
+ if (key != null) {
+ _json["key"] = key;
+ }
+ if (value != null) {
+ _json["value"] = value;
+ }
+ return _json;
+ }
+}
+
+

Powered by Google App Engine
This is Rietveld 408576698