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; |
+ } |
+} |
+ |
+ |