Index: generated/googleapis/lib/youtubeanalytics/v1.dart |
diff --git a/generated/googleapis/lib/youtubeanalytics/v1.dart b/generated/googleapis/lib/youtubeanalytics/v1.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dae5e3695c7167616900311f0961ab054ebab59d |
--- /dev/null |
+++ b/generated/googleapis/lib/youtubeanalytics/v1.dart |
@@ -0,0 +1,712 @@ |
+library googleapis.youtubeAnalytics.v1; |
+ |
+import "dart:core" as core; |
+import "dart:collection" as collection; |
+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; |
+ |
+/** Retrieve your YouTube Analytics reports. */ |
+class YoutubeAnalyticsApi { |
+ /** View YouTube Analytics monetary reports for your YouTube content */ |
+ static const YtAnalyticsMonetaryReadonlyScope = "https://www.googleapis.com/auth/yt-analytics-monetary.readonly"; |
+ |
+ /** View YouTube Analytics reports for your YouTube content */ |
+ static const YtAnalyticsReadonlyScope = "https://www.googleapis.com/auth/yt-analytics.readonly"; |
+ |
+ |
+ final common_internal.ApiRequester _requester; |
+ |
+ BatchReportDefinitionsResourceApi get batchReportDefinitions => new BatchReportDefinitionsResourceApi(_requester); |
+ BatchReportsResourceApi get batchReports => new BatchReportsResourceApi(_requester); |
+ ReportsResourceApi get reports => new ReportsResourceApi(_requester); |
+ |
+ YoutubeAnalyticsApi(http.Client client) : |
+ _requester = new common_internal.ApiRequester(client, "https://www.googleapis.com/", "/youtube/analytics/v1/"); |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class BatchReportDefinitionsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ BatchReportDefinitionsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieves a list of available batch report definitions. |
+ * |
+ * Request parameters: |
+ * |
+ * [onBehalfOfContentOwner] - The onBehalfOfContentOwner parameter identifies |
+ * the content owner that the user is acting on behalf of. |
+ * |
+ * Completes with a [BatchReportDefinitionList]. |
+ * |
+ * 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<BatchReportDefinitionList> list(core.String onBehalfOfContentOwner) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (onBehalfOfContentOwner == null) { |
+ throw new core.ArgumentError("Parameter onBehalfOfContentOwner is required."); |
+ } |
+ _queryParams["onBehalfOfContentOwner"] = [onBehalfOfContentOwner]; |
+ |
+ |
+ _url = 'batchReportDefinitions'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new BatchReportDefinitionList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class BatchReportsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ BatchReportsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieves a list of processed batch reports. |
+ * |
+ * Request parameters: |
+ * |
+ * [batchReportDefinitionId] - The batchReportDefinitionId parameter specifies |
+ * the ID of the batch reportort definition for which you are retrieving |
+ * reports. |
+ * |
+ * [onBehalfOfContentOwner] - The onBehalfOfContentOwner parameter identifies |
+ * the content owner that the user is acting on behalf of. |
+ * |
+ * Completes with a [BatchReportList]. |
+ * |
+ * 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<BatchReportList> list(core.String batchReportDefinitionId, core.String onBehalfOfContentOwner) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (batchReportDefinitionId == null) { |
+ throw new core.ArgumentError("Parameter batchReportDefinitionId is required."); |
+ } |
+ _queryParams["batchReportDefinitionId"] = [batchReportDefinitionId]; |
+ if (onBehalfOfContentOwner == null) { |
+ throw new core.ArgumentError("Parameter onBehalfOfContentOwner is required."); |
+ } |
+ _queryParams["onBehalfOfContentOwner"] = [onBehalfOfContentOwner]; |
+ |
+ |
+ _url = 'batchReports'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new BatchReportList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ ReportsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieve your YouTube Analytics reports. |
+ * |
+ * Request parameters: |
+ * |
+ * [ids] - Identifies the YouTube channel or content owner for which you are |
+ * retrieving YouTube Analytics data. |
+ * - To request data for a YouTube user, set the ids parameter value to |
+ * channel==CHANNEL_ID, where CHANNEL_ID specifies the unique YouTube channel |
+ * ID. |
+ * - To request data for a YouTube CMS content owner, set the ids parameter |
+ * value to contentOwner==OWNER_NAME, where OWNER_NAME is the CMS name of the |
+ * content owner. |
+ * Value must have pattern "[a-zA-Z]+==[a-zA-Z0-9_+-]+". |
+ * |
+ * [start_date] - The start date for fetching YouTube Analytics data. The |
+ * value should be in YYYY-MM-DD format. |
+ * Value must have pattern "[0-9]{4}-[0-9]{2}-[0-9]{2}". |
+ * |
+ * [end_date] - The end date for fetching YouTube Analytics data. The value |
+ * should be in YYYY-MM-DD format. |
+ * Value must have pattern "[0-9]{4}-[0-9]{2}-[0-9]{2}". |
+ * |
+ * [metrics] - A comma-separated list of YouTube Analytics metrics, such as |
+ * views or likes,dislikes. See the Available Reports document for a list of |
+ * the reports that you can retrieve and the metrics available in each report, |
+ * and see the Metrics document for definitions of those metrics. |
+ * Value must have pattern "[0-9a-zA-Z,]+". |
+ * |
+ * [dimensions] - A comma-separated list of YouTube Analytics dimensions, such |
+ * as views or ageGroup,gender. See the Available Reports document for a list |
+ * of the reports that you can retrieve and the dimensions used for those |
+ * reports. Also see the Dimensions document for definitions of those |
+ * dimensions. |
+ * Value must have pattern "[0-9a-zA-Z,]+". |
+ * |
+ * [filters] - A list of filters that should be applied when retrieving |
+ * YouTube Analytics data. The Available Reports document identifies the |
+ * dimensions that can be used to filter each report, and the Dimensions |
+ * document defines those dimensions. If a request uses multiple filters, join |
+ * them together with a semicolon (;), and the returned result table will |
+ * satisfy both filters. For example, a filters parameter value of |
+ * video==dMH0bHeiRNg;country==IT restricts the result set to include data for |
+ * the given video in Italy. |
+ * |
+ * [max_results] - The maximum number of rows to include in the response. |
+ * |
+ * [sort] - A comma-separated list of dimensions or metrics that determine the |
+ * sort order for YouTube Analytics data. By default the sort order is |
+ * ascending. The '-' prefix causes descending sort order. |
+ * Value must have pattern "[-0-9a-zA-Z,]+". |
+ * |
+ * [start_index] - An index of the first entity to retrieve. Use this |
+ * parameter as a pagination mechanism along with the max-results parameter |
+ * (one-based, inclusive). |
+ * |
+ * Completes with a [ResultTable]. |
+ * |
+ * 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<ResultTable> query(core.String ids, core.String start_date, core.String end_date, core.String metrics, {core.String dimensions, core.String filters, core.int max_results, core.String sort, core.int start_index}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (ids == null) { |
+ throw new core.ArgumentError("Parameter ids is required."); |
+ } |
+ _queryParams["ids"] = [ids]; |
+ if (start_date == null) { |
+ throw new core.ArgumentError("Parameter start_date is required."); |
+ } |
+ _queryParams["start-date"] = [start_date]; |
+ if (end_date == null) { |
+ throw new core.ArgumentError("Parameter end_date is required."); |
+ } |
+ _queryParams["end-date"] = [end_date]; |
+ if (metrics == null) { |
+ throw new core.ArgumentError("Parameter metrics is required."); |
+ } |
+ _queryParams["metrics"] = [metrics]; |
+ if (dimensions != null) { |
+ _queryParams["dimensions"] = [dimensions]; |
+ } |
+ if (filters != null) { |
+ _queryParams["filters"] = [filters]; |
+ } |
+ if (max_results != null) { |
+ _queryParams["max-results"] = ["${max_results}"]; |
+ } |
+ if (sort != null) { |
+ _queryParams["sort"] = [sort]; |
+ } |
+ if (start_index != null) { |
+ _queryParams["start-index"] = ["${start_index}"]; |
+ } |
+ |
+ |
+ _url = 'reports'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ResultTable.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+ |
+/** |
+ * A paginated list of batchReportDefinition resources returned in response to a |
+ * youtubeAnalytics.batchReportDefinitions.list request. |
+ */ |
+class BatchReportDefinitionList { |
+ /** |
+ * A list of batchReportDefinition resources that match the request criteria. |
+ */ |
+ core.List<BatchReportDefinitionTemplate> items; |
+ |
+ /** |
+ * This value specifies the type of data included in the API response. For the |
+ * list method, the kind property value is |
+ * youtubeAnalytics#batchReportDefinitionList. |
+ */ |
+ core.String kind; |
+ |
+ |
+ BatchReportDefinitionList(); |
+ |
+ BatchReportDefinitionList.fromJson(core.Map _json) { |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new BatchReportDefinitionTemplate.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 BatchReportDefinitionTemplateDefaultOutput { |
+ /** Format of the output. */ |
+ core.String format; |
+ |
+ /** Type of the output. */ |
+ core.String type; |
+ |
+ |
+ BatchReportDefinitionTemplateDefaultOutput(); |
+ |
+ BatchReportDefinitionTemplateDefaultOutput.fromJson(core.Map _json) { |
+ if (_json.containsKey("format")) { |
+ format = _json["format"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (format != null) { |
+ _json["format"] = format; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Contains single batchReportDefinition resource. */ |
+class BatchReportDefinitionTemplate { |
+ /** Default report definition's output. */ |
+ core.List<BatchReportDefinitionTemplateDefaultOutput> defaultOutput; |
+ |
+ /** |
+ * The ID that YouTube assigns and uses to uniquely identify the report |
+ * definition. |
+ */ |
+ core.String id; |
+ |
+ /** Name of the report definition. */ |
+ core.String name; |
+ |
+ /** Status of the report definition. */ |
+ core.String status; |
+ |
+ /** Type of the report definition. */ |
+ core.String type; |
+ |
+ |
+ BatchReportDefinitionTemplate(); |
+ |
+ BatchReportDefinitionTemplate.fromJson(core.Map _json) { |
+ if (_json.containsKey("defaultOutput")) { |
+ defaultOutput = _json["defaultOutput"].map((value) => new BatchReportDefinitionTemplateDefaultOutput.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("status")) { |
+ status = _json["status"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (defaultOutput != null) { |
+ _json["defaultOutput"] = defaultOutput.map((value) => (value).toJson()).toList(); |
+ } |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (status != null) { |
+ _json["status"] = status; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * A paginated list of batchReport resources returned in response to a |
+ * youtubeAnalytics.batchReport.list request. |
+ */ |
+class BatchReportList { |
+ /** A list of batchReport resources that match the request criteria. */ |
+ core.List<BatchReportTemplate> items; |
+ |
+ /** |
+ * This value specifies the type of data included in the API response. For the |
+ * list method, the kind property value is youtubeAnalytics#batchReportList. |
+ */ |
+ core.String kind; |
+ |
+ |
+ BatchReportList(); |
+ |
+ BatchReportList.fromJson(core.Map _json) { |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new BatchReportTemplate.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 BatchReportTemplateOutputs { |
+ /** |
+ * Cloud storage URL to download this report. This URL is valid for 30 |
+ * minutes. |
+ */ |
+ core.String downloadUrl; |
+ |
+ /** Format of the output. */ |
+ core.String format; |
+ |
+ /** Type of the output. */ |
+ core.String type; |
+ |
+ |
+ BatchReportTemplateOutputs(); |
+ |
+ BatchReportTemplateOutputs.fromJson(core.Map _json) { |
+ if (_json.containsKey("downloadUrl")) { |
+ downloadUrl = _json["downloadUrl"]; |
+ } |
+ if (_json.containsKey("format")) { |
+ format = _json["format"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (downloadUrl != null) { |
+ _json["downloadUrl"] = downloadUrl; |
+ } |
+ if (format != null) { |
+ _json["format"] = format; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Period included in the report. For reports containing all entities endTime is |
+ * not set. Both startTime and endTime are inclusive. |
+ */ |
+class BatchReportTemplateTimeSpan { |
+ /** |
+ * End of the period included in the report. Inclusive. For reports containing |
+ * all entities endTime is not set. |
+ */ |
+ core.DateTime endTime; |
+ |
+ /** Start of the period included in the report. Inclusive. */ |
+ core.DateTime startTime; |
+ |
+ |
+ BatchReportTemplateTimeSpan(); |
+ |
+ BatchReportTemplateTimeSpan.fromJson(core.Map _json) { |
+ if (_json.containsKey("endTime")) { |
+ endTime = core.DateTime.parse(_json["endTime"]); |
+ } |
+ if (_json.containsKey("startTime")) { |
+ startTime = core.DateTime.parse(_json["startTime"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (endTime != null) { |
+ _json["endTime"] = (endTime).toIso8601String(); |
+ } |
+ if (startTime != null) { |
+ _json["startTime"] = (startTime).toIso8601String(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Contains single batchReport resource. */ |
+class BatchReportTemplate { |
+ /** The ID that YouTube assigns and uses to uniquely identify the report. */ |
+ core.String id; |
+ |
+ /** Report outputs. */ |
+ core.List<BatchReportTemplateOutputs> outputs; |
+ |
+ /** The ID of the the report definition. */ |
+ core.String reportId; |
+ |
+ /** |
+ * Period included in the report. For reports containing all entities endTime |
+ * is not set. Both startTime and endTime are inclusive. |
+ */ |
+ BatchReportTemplateTimeSpan timeSpan; |
+ |
+ /** The time when the report was updated. */ |
+ core.DateTime timeUpdated; |
+ |
+ |
+ BatchReportTemplate(); |
+ |
+ BatchReportTemplate.fromJson(core.Map _json) { |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("outputs")) { |
+ outputs = _json["outputs"].map((value) => new BatchReportTemplateOutputs.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("report_id")) { |
+ reportId = _json["report_id"]; |
+ } |
+ if (_json.containsKey("timeSpan")) { |
+ timeSpan = new BatchReportTemplateTimeSpan.fromJson(_json["timeSpan"]); |
+ } |
+ if (_json.containsKey("timeUpdated")) { |
+ timeUpdated = core.DateTime.parse(_json["timeUpdated"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (outputs != null) { |
+ _json["outputs"] = outputs.map((value) => (value).toJson()).toList(); |
+ } |
+ if (reportId != null) { |
+ _json["report_id"] = reportId; |
+ } |
+ if (timeSpan != null) { |
+ _json["timeSpan"] = (timeSpan).toJson(); |
+ } |
+ if (timeUpdated != null) { |
+ _json["timeUpdated"] = (timeUpdated).toIso8601String(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ResultTableColumnHeaders { |
+ /** The type of the column (DIMENSION or METRIC). */ |
+ core.String columnType; |
+ |
+ /** The type of the data in the column (STRING, INTEGER, FLOAT, etc.). */ |
+ core.String dataType; |
+ |
+ /** The name of the dimension or metric. */ |
+ core.String name; |
+ |
+ |
+ ResultTableColumnHeaders(); |
+ |
+ ResultTableColumnHeaders.fromJson(core.Map _json) { |
+ if (_json.containsKey("columnType")) { |
+ columnType = _json["columnType"]; |
+ } |
+ if (_json.containsKey("dataType")) { |
+ dataType = _json["dataType"]; |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (columnType != null) { |
+ _json["columnType"] = columnType; |
+ } |
+ if (dataType != null) { |
+ _json["dataType"] = dataType; |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Contains a single result table. The table is returned as an array of rows |
+ * that contain the values for the cells of the table. Depending on the metric |
+ * or dimension, the cell can contain a string (video ID, country code) or a |
+ * number (number of views or number of likes). |
+ */ |
+class ResultTable { |
+ /** |
+ * This value specifies information about the data returned in the rows |
+ * fields. Each item in the columnHeaders list identifies a field returned in |
+ * the rows value, which contains a list of comma-delimited data. The |
+ * columnHeaders list will begin with the dimensions specified in the API |
+ * request, which will be followed by the metrics specified in the API |
+ * request. The order of both dimensions and metrics will match the ordering |
+ * in the API request. For example, if the API request contains the parameters |
+ * dimensions=ageGroup,gender&metrics=viewerPercentage, the API response will |
+ * return columns in this order: ageGroup,gender,viewerPercentage. |
+ */ |
+ core.List<ResultTableColumnHeaders> columnHeaders; |
+ |
+ /** |
+ * This value specifies the type of data included in the API response. For the |
+ * query method, the kind property value will be youtubeAnalytics#resultTable. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * The list contains all rows of the result table. Each item in the list is an |
+ * array that contains comma-delimited data corresponding to a single row of |
+ * data. The order of the comma-delimited data fields will match the order of |
+ * the columns listed in the columnHeaders field. If no data is available for |
+ * the given query, the rows element will be omitted from the response. The |
+ * response for a query with the day dimension will not contain rows for the |
+ * most recent days. |
+ * |
+ * The values for Object must be JSON objects. It can consist of `num`, |
+ * `String`, `bool` and `null` as well as `Map` and `List` values. |
+ */ |
+ core.List<core.List<core.Object>> rows; |
+ |
+ |
+ ResultTable(); |
+ |
+ ResultTable.fromJson(core.Map _json) { |
+ if (_json.containsKey("columnHeaders")) { |
+ columnHeaders = _json["columnHeaders"].map((value) => new ResultTableColumnHeaders.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("rows")) { |
+ rows = _json["rows"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (columnHeaders != null) { |
+ _json["columnHeaders"] = columnHeaders.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (rows != null) { |
+ _json["rows"] = rows; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |