Index: generated/googleapis/lib/dfareporting/v1_3.dart |
diff --git a/generated/googleapis/lib/dfareporting/v1_3.dart b/generated/googleapis/lib/dfareporting/v1_3.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..dff732d2da12b9f6f07e40e645043d1b817da175 |
--- /dev/null |
+++ b/generated/googleapis/lib/dfareporting/v1_3.dart |
@@ -0,0 +1,3376 @@ |
+library googleapis.dfareporting.v1_3; |
+ |
+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; |
+ |
+/** Lets you create, run and download reports. */ |
+class DfareportingApi { |
+ /** View and manage DoubleClick for Advertisers reports */ |
+ static const DfareportingScope = "https://www.googleapis.com/auth/dfareporting"; |
+ |
+ |
+ final common_internal.ApiRequester _requester; |
+ |
+ DimensionValuesResourceApi get dimensionValues => new DimensionValuesResourceApi(_requester); |
+ FilesResourceApi get files => new FilesResourceApi(_requester); |
+ ReportsResourceApi get reports => new ReportsResourceApi(_requester); |
+ UserProfilesResourceApi get userProfiles => new UserProfilesResourceApi(_requester); |
+ |
+ DfareportingApi(http.Client client) : |
+ _requester = new common_internal.ApiRequester(client, "https://www.googleapis.com/", "/dfareporting/v1.3/"); |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class DimensionValuesResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ DimensionValuesResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieves list of report dimension values for a list of filters. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * [maxResults] - Maximum number of results to return. |
+ * Value must be between "0" and "100". |
+ * |
+ * [pageToken] - The value of the nextToken from the previous result page. |
+ * |
+ * Completes with a [DimensionValueList]. |
+ * |
+ * 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<DimensionValueList> query(DimensionValueRequest request, core.String profileId, {core.int maxResults, core.String pageToken}) { |
+ 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 (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (maxResults != null) { |
+ _queryParams["maxResults"] = ["${maxResults}"]; |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/dimensionvalues/query'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new DimensionValueList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class FilesResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ FilesResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieves a report file by its report ID and file ID. |
+ * |
+ * Request parameters: |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * [fileId] - The ID of the report file. |
+ * |
+ * [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 |
+ * |
+ * - [File] 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 reportId, core.String fileId, {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 (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ if (fileId == null) { |
+ throw new core.ArgumentError("Parameter fileId is required."); |
+ } |
+ |
+ _downloadOptions = downloadOptions; |
+ |
+ _url = 'reports/' + common_internal.Escaper.ecapeVariable('$reportId') + '/files/' + common_internal.Escaper.ecapeVariable('$fileId'); |
+ |
+ 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 File.fromJson(data)); |
+ } else { |
+ return _response; |
+ } |
+ } |
+ |
+ /** |
+ * Lists files for a user profile. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA profile ID. |
+ * |
+ * [maxResults] - Maximum number of results to return. |
+ * Value must be between "0" and "10". |
+ * |
+ * [pageToken] - The value of the nextToken from the previous result page. |
+ * |
+ * [scope] - The scope that defines which results are returned, default is |
+ * 'MINE'. |
+ * Possible string values are: |
+ * - "ALL" : All files in account. |
+ * - "MINE" : My files. |
+ * - "SHARED_WITH_ME" : Files shared with me. |
+ * |
+ * [sortField] - The field by which to sort the list. |
+ * Possible string values are: |
+ * - "ID" : Sort by file ID. |
+ * - "LAST_MODIFIED_TIME" : Sort by 'lastmodifiedAt' field. |
+ * |
+ * [sortOrder] - Order of sorted results, default is 'DESCENDING'. |
+ * Possible string values are: |
+ * - "ASCENDING" : Ascending order. |
+ * - "DESCENDING" : Descending order. |
+ * |
+ * Completes with a [FileList]. |
+ * |
+ * 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<FileList> list(core.String profileId, {core.int maxResults, core.String pageToken, core.String scope, core.String sortField, core.String sortOrder}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (maxResults != null) { |
+ _queryParams["maxResults"] = ["${maxResults}"]; |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ if (scope != null) { |
+ _queryParams["scope"] = [scope]; |
+ } |
+ if (sortField != null) { |
+ _queryParams["sortField"] = [sortField]; |
+ } |
+ if (sortOrder != null) { |
+ _queryParams["sortOrder"] = [sortOrder]; |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/files'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new FileList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ ReportsCompatibleFieldsResourceApi get compatibleFields => new ReportsCompatibleFieldsResourceApi(_requester); |
+ ReportsFilesResourceApi get files => new ReportsFilesResourceApi(_requester); |
+ |
+ ReportsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Deletes a report by its ID. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * 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 profileId, core.String reportId) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ |
+ _downloadOptions = null; |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId'); |
+ |
+ var _response = _requester.request(_url, |
+ "DELETE", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => null); |
+ } |
+ |
+ /** |
+ * Retrieves a report by its ID. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * Completes with a [Report]. |
+ * |
+ * 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<Report> get(core.String profileId, core.String reportId) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId'); |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Report.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Creates a report. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * Completes with a [Report]. |
+ * |
+ * 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<Report> insert(Report request, core.String profileId) { |
+ 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 (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Report.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Retrieves list of reports. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * [maxResults] - Maximum number of results to return. |
+ * Value must be between "0" and "10". |
+ * |
+ * [pageToken] - The value of the nextToken from the previous result page. |
+ * |
+ * [scope] - The scope that defines which results are returned, default is |
+ * 'MINE'. |
+ * Possible string values are: |
+ * - "ALL" : All reports in account. |
+ * - "MINE" : My reports. |
+ * |
+ * [sortField] - The field by which to sort the list. |
+ * Possible string values are: |
+ * - "ID" : Sort by report ID. |
+ * - "LAST_MODIFIED_TIME" : Sort by 'lastModifiedTime' field. |
+ * - "NAME" : Sort by name of reports. |
+ * |
+ * [sortOrder] - Order of sorted results, default is 'DESCENDING'. |
+ * Possible string values are: |
+ * - "ASCENDING" : Ascending order. |
+ * - "DESCENDING" : Descending order. |
+ * |
+ * Completes with a [ReportList]. |
+ * |
+ * 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<ReportList> list(core.String profileId, {core.int maxResults, core.String pageToken, core.String scope, core.String sortField, core.String sortOrder}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (maxResults != null) { |
+ _queryParams["maxResults"] = ["${maxResults}"]; |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ if (scope != null) { |
+ _queryParams["scope"] = [scope]; |
+ } |
+ if (sortField != null) { |
+ _queryParams["sortField"] = [sortField]; |
+ } |
+ if (sortOrder != null) { |
+ _queryParams["sortOrder"] = [sortOrder]; |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ReportList.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Updates a report. This method supports patch semantics. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * Completes with a [Report]. |
+ * |
+ * 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<Report> patch(Report request, core.String profileId, core.String reportId) { |
+ 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 (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId'); |
+ |
+ var _response = _requester.request(_url, |
+ "PATCH", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Report.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Runs a report. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA profile ID. |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * [synchronous] - If set and true, tries to run the report synchronously. |
+ * |
+ * Completes with a [File]. |
+ * |
+ * 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<File> run(core.String profileId, core.String reportId, {core.bool synchronous}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ if (synchronous != null) { |
+ _queryParams["synchronous"] = ["${synchronous}"]; |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId') + '/run'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new File.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Updates a report. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * Completes with a [Report]. |
+ * |
+ * 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<Report> update(Report request, core.String profileId, core.String reportId) { |
+ 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 (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId'); |
+ |
+ var _response = _requester.request(_url, |
+ "PUT", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Report.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportsCompatibleFieldsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ ReportsCompatibleFieldsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Returns the fields that are compatible to be selected in the respective |
+ * sections of a report criteria, given the fields already selected in the |
+ * input report and user permissions. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA user profile ID. |
+ * |
+ * Completes with a [CompatibleFields]. |
+ * |
+ * 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<CompatibleFields> query(Report request, core.String profileId) { |
+ 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 (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/compatiblefields/query'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new CompatibleFields.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportsFilesResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ ReportsFilesResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieves a report file. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA profile ID. |
+ * |
+ * [reportId] - The ID of the report. |
+ * |
+ * [fileId] - The ID of the report file. |
+ * |
+ * [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 |
+ * |
+ * - [File] 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 profileId, core.String reportId, core.String fileId, {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 (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ if (fileId == null) { |
+ throw new core.ArgumentError("Parameter fileId is required."); |
+ } |
+ |
+ _downloadOptions = downloadOptions; |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId') + '/files/' + common_internal.Escaper.ecapeVariable('$fileId'); |
+ |
+ 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 File.fromJson(data)); |
+ } else { |
+ return _response; |
+ } |
+ } |
+ |
+ /** |
+ * Lists files for a report. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The DFA profile ID. |
+ * |
+ * [reportId] - The ID of the parent report. |
+ * |
+ * [maxResults] - Maximum number of results to return. |
+ * Value must be between "0" and "10". |
+ * |
+ * [pageToken] - The value of the nextToken from the previous result page. |
+ * |
+ * [sortField] - The field by which to sort the list. |
+ * Possible string values are: |
+ * - "ID" : Sort by file ID. |
+ * - "LAST_MODIFIED_TIME" : Sort by 'lastmodifiedAt' field. |
+ * |
+ * [sortOrder] - Order of sorted results, default is 'DESCENDING'. |
+ * Possible string values are: |
+ * - "ASCENDING" : Ascending order. |
+ * - "DESCENDING" : Descending order. |
+ * |
+ * Completes with a [FileList]. |
+ * |
+ * 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<FileList> list(core.String profileId, core.String reportId, {core.int maxResults, core.String pageToken, core.String sortField, core.String sortOrder}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ if (reportId == null) { |
+ throw new core.ArgumentError("Parameter reportId is required."); |
+ } |
+ if (maxResults != null) { |
+ _queryParams["maxResults"] = ["${maxResults}"]; |
+ } |
+ if (pageToken != null) { |
+ _queryParams["pageToken"] = [pageToken]; |
+ } |
+ if (sortField != null) { |
+ _queryParams["sortField"] = [sortField]; |
+ } |
+ if (sortOrder != null) { |
+ _queryParams["sortOrder"] = [sortOrder]; |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId') + '/reports/' + common_internal.Escaper.ecapeVariable('$reportId') + '/files'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new FileList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class UserProfilesResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ UserProfilesResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Gets one user profile by ID. |
+ * |
+ * Request parameters: |
+ * |
+ * [profileId] - The user profile ID. |
+ * |
+ * Completes with a [UserProfile]. |
+ * |
+ * 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<UserProfile> get(core.String profileId) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (profileId == null) { |
+ throw new core.ArgumentError("Parameter profileId is required."); |
+ } |
+ |
+ |
+ _url = 'userprofiles/' + common_internal.Escaper.ecapeVariable('$profileId'); |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new UserProfile.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Retrieves list of user profiles for a user. |
+ * |
+ * Request parameters: |
+ * |
+ * Completes with a [UserProfileList]. |
+ * |
+ * 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<UserProfileList> list() { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ |
+ |
+ _url = 'userprofiles'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new UserProfileList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+ |
+/** Represents an activity group. */ |
+class Activities { |
+ /** |
+ * List of activity filters. The dimension values need to be all either of |
+ * type "dfa:activity" or "dfa:activityGroup". |
+ */ |
+ core.List<DimensionValue> filters; |
+ |
+ /** The kind of resource this is, in this case dfareporting#activities. */ |
+ core.String kind; |
+ |
+ /** List of names of floodlight activity metrics. */ |
+ core.List<core.String> metricNames; |
+ |
+ |
+ Activities(); |
+ |
+ Activities.fromJson(core.Map _json) { |
+ if (_json.containsKey("filters")) { |
+ filters = _json["filters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (filters != null) { |
+ _json["filters"] = filters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a response to the queryCompatibleFields method. */ |
+class CompatibleFields { |
+ /** |
+ * Contains items that are compatible to be selected for a report of type |
+ * "CROSS_DIMENSION_REACH". |
+ */ |
+ CrossDimensionReachReportCompatibleFields crossDimensionReachReportCompatibleFields; |
+ |
+ /** |
+ * Contains items that are compatible to be selected for a report of type |
+ * "FLOODLIGHT". |
+ */ |
+ FloodlightReportCompatibleFields floodlightReportCompatibleFields; |
+ |
+ /** |
+ * The kind of resource this is, in this case dfareporting#compatibleFields. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Contains items that are compatible to be selected for a report of type |
+ * "PATH_TO_CONVERSION". |
+ */ |
+ PathToConversionReportCompatibleFields pathToConversionReportCompatibleFields; |
+ |
+ /** |
+ * Contains items that are compatible to be selected for a report of type |
+ * "REACH". |
+ */ |
+ ReachReportCompatibleFields reachReportCompatibleFields; |
+ |
+ /** |
+ * Contains items that are compatible to be selected for a report of type |
+ * "STANDARD". |
+ */ |
+ ReportCompatibleFields reportCompatibleFields; |
+ |
+ |
+ CompatibleFields(); |
+ |
+ CompatibleFields.fromJson(core.Map _json) { |
+ if (_json.containsKey("crossDimensionReachReportCompatibleFields")) { |
+ crossDimensionReachReportCompatibleFields = new CrossDimensionReachReportCompatibleFields.fromJson(_json["crossDimensionReachReportCompatibleFields"]); |
+ } |
+ if (_json.containsKey("floodlightReportCompatibleFields")) { |
+ floodlightReportCompatibleFields = new FloodlightReportCompatibleFields.fromJson(_json["floodlightReportCompatibleFields"]); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("pathToConversionReportCompatibleFields")) { |
+ pathToConversionReportCompatibleFields = new PathToConversionReportCompatibleFields.fromJson(_json["pathToConversionReportCompatibleFields"]); |
+ } |
+ if (_json.containsKey("reachReportCompatibleFields")) { |
+ reachReportCompatibleFields = new ReachReportCompatibleFields.fromJson(_json["reachReportCompatibleFields"]); |
+ } |
+ if (_json.containsKey("reportCompatibleFields")) { |
+ reportCompatibleFields = new ReportCompatibleFields.fromJson(_json["reportCompatibleFields"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (crossDimensionReachReportCompatibleFields != null) { |
+ _json["crossDimensionReachReportCompatibleFields"] = (crossDimensionReachReportCompatibleFields).toJson(); |
+ } |
+ if (floodlightReportCompatibleFields != null) { |
+ _json["floodlightReportCompatibleFields"] = (floodlightReportCompatibleFields).toJson(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (pathToConversionReportCompatibleFields != null) { |
+ _json["pathToConversionReportCompatibleFields"] = (pathToConversionReportCompatibleFields).toJson(); |
+ } |
+ if (reachReportCompatibleFields != null) { |
+ _json["reachReportCompatibleFields"] = (reachReportCompatibleFields).toJson(); |
+ } |
+ if (reportCompatibleFields != null) { |
+ _json["reportCompatibleFields"] = (reportCompatibleFields).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Represents fields that are compatible to be selected for a report of type |
+ * "CROSS_DIMENSION_REACH". |
+ */ |
+class CrossDimensionReachReportCompatibleFields { |
+ /** |
+ * Dimensions which are compatible to be selected in the "breakdown" section |
+ * of the report. |
+ */ |
+ core.List<Dimension> breakdown; |
+ |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensionFilters" |
+ * section of the report. |
+ */ |
+ core.List<Dimension> dimensionFilters; |
+ |
+ /** |
+ * The kind of resource this is, in this case |
+ * dfareporting#crossDimensionReachReportCompatibleFields. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the "metricNames" section of |
+ * the report. |
+ */ |
+ core.List<Metric> metrics; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the "overlapMetricNames" |
+ * section of the report. |
+ */ |
+ core.List<Metric> overlapMetrics; |
+ |
+ |
+ CrossDimensionReachReportCompatibleFields(); |
+ |
+ CrossDimensionReachReportCompatibleFields.fromJson(core.Map _json) { |
+ if (_json.containsKey("breakdown")) { |
+ breakdown = _json["breakdown"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("metrics")) { |
+ metrics = _json["metrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("overlapMetrics")) { |
+ overlapMetrics = _json["overlapMetrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (breakdown != null) { |
+ _json["breakdown"] = breakdown.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (metrics != null) { |
+ _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); |
+ } |
+ if (overlapMetrics != null) { |
+ _json["overlapMetrics"] = overlapMetrics.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a Custom Rich Media Events group. */ |
+class CustomRichMediaEvents { |
+ /** |
+ * List of custom rich media event IDs. Dimension values must be all of type |
+ * dfa:richMediaEventTypeIdAndName. |
+ */ |
+ core.List<DimensionValue> filteredEventIds; |
+ |
+ /** |
+ * The kind of resource this is, in this case |
+ * dfareporting#customRichMediaEvents. |
+ */ |
+ core.String kind; |
+ |
+ |
+ CustomRichMediaEvents(); |
+ |
+ CustomRichMediaEvents.fromJson(core.Map _json) { |
+ if (_json.containsKey("filteredEventIds")) { |
+ filteredEventIds = _json["filteredEventIds"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (filteredEventIds != null) { |
+ _json["filteredEventIds"] = filteredEventIds.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a date range. */ |
+class DateRange { |
+ /** |
+ * The end date of the date range, inclusive. A string of the format: |
+ * "yyyy-MM-dd". |
+ */ |
+ core.DateTime endDate; |
+ |
+ /** The kind of resource this is, in this case dfareporting#dateRange. */ |
+ core.String kind; |
+ |
+ /** |
+ * The date range relative to the date of when the report is run, one of: |
+ * - "TODAY" |
+ * - "YESTERDAY" |
+ * - "WEEK_TO_DATE" |
+ * - "MONTH_TO_DATE" |
+ * - "QUARTER_TO_DATE" |
+ * - "YEAR_TO_DATE" |
+ * - "PREVIOUS_WEEK" |
+ * - "PREVIOUS_MONTH" |
+ * - "PREVIOUS_QUARTER" |
+ * - "PREVIOUS_YEAR" |
+ * - "LAST_7_DAYS" |
+ * - "LAST_30_DAYS" |
+ * - "LAST_90_DAYS" |
+ * - "LAST_365_DAYS" |
+ * - "LAST_24_MONTHS" |
+ */ |
+ core.String relativeDateRange; |
+ |
+ /** |
+ * The start date of the date range, inclusive. A string of the format: |
+ * "yyyy-MM-dd". |
+ */ |
+ core.DateTime startDate; |
+ |
+ |
+ DateRange(); |
+ |
+ DateRange.fromJson(core.Map _json) { |
+ if (_json.containsKey("endDate")) { |
+ endDate = core.DateTime.parse(_json["endDate"]); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("relativeDateRange")) { |
+ relativeDateRange = _json["relativeDateRange"]; |
+ } |
+ if (_json.containsKey("startDate")) { |
+ startDate = core.DateTime.parse(_json["startDate"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (endDate != null) { |
+ _json["endDate"] = "${(endDate).year.toString().padLeft(4, '0')}-${(endDate).month.toString().padLeft(2, '0')}-${(endDate).day.toString().padLeft(2, '0')}"; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (relativeDateRange != null) { |
+ _json["relativeDateRange"] = relativeDateRange; |
+ } |
+ if (startDate != null) { |
+ _json["startDate"] = "${(startDate).year.toString().padLeft(4, '0')}-${(startDate).month.toString().padLeft(2, '0')}-${(startDate).day.toString().padLeft(2, '0')}"; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a dimension. */ |
+class Dimension { |
+ /** The kind of resource this is, in this case dfareporting#dimension. */ |
+ core.String kind; |
+ |
+ /** The dimension name, e.g. dfa:advertiser */ |
+ core.String name; |
+ |
+ |
+ Dimension(); |
+ |
+ Dimension.fromJson(core.Map _json) { |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a dimension filter. */ |
+class DimensionFilter { |
+ /** The name of the dimension to filter. */ |
+ core.String dimensionName; |
+ |
+ /** |
+ * The kind of resource this is, in this case dfareporting#dimensionFilter. |
+ */ |
+ core.String kind; |
+ |
+ /** The value of the dimension to filter. */ |
+ core.String value; |
+ |
+ |
+ DimensionFilter(); |
+ |
+ DimensionFilter.fromJson(core.Map _json) { |
+ if (_json.containsKey("dimensionName")) { |
+ dimensionName = _json["dimensionName"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dimensionName != null) { |
+ _json["dimensionName"] = dimensionName; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a DimensionValue resource. */ |
+class DimensionValue { |
+ /** The name of the dimension. */ |
+ core.String dimensionName; |
+ |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The ID associated with the value if available. */ |
+ core.String id; |
+ |
+ /** |
+ * The kind of resource this is, in this case dfareporting#dimensionValue. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Determines how the 'value' field is matched when filtering. One of: |
+ * - EXACT (default if not specified) |
+ * - CONTAINS |
+ * - BEGINS_WITH |
+ * - WILDCARD_EXPRESSION (allowing '*' as a placeholder for variable length |
+ * character sequences, it can be escaped with a backslash.) Note, only paid |
+ * search dimensions ('dfa:paidSearch*') allow a matchType other than EXACT. |
+ */ |
+ core.String matchType; |
+ |
+ /** The value of the dimension. */ |
+ core.String value; |
+ |
+ |
+ DimensionValue(); |
+ |
+ DimensionValue.fromJson(core.Map _json) { |
+ if (_json.containsKey("dimensionName")) { |
+ dimensionName = _json["dimensionName"]; |
+ } |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("matchType")) { |
+ matchType = _json["matchType"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dimensionName != null) { |
+ _json["dimensionName"] = dimensionName; |
+ } |
+ if (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (matchType != null) { |
+ _json["matchType"] = matchType; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents the list of DimensionValue resources. */ |
+class DimensionValueList { |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The dimension values returned in this response. */ |
+ core.List<DimensionValue> items; |
+ |
+ /** |
+ * The kind of list this is, in this case dfareporting#dimensionValueList. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Continuation token used to page through dimension values. To retrieve the |
+ * next page of results, set the next request's "pageToken" to the value of |
+ * this field. The page token is only valid for a limited amount of time and |
+ * should not be persisted. |
+ */ |
+ core.String nextPageToken; |
+ |
+ |
+ DimensionValueList(); |
+ |
+ DimensionValueList.fromJson(core.Map _json) { |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new DimensionValue.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 (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ 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 a DimensionValuesRequest. */ |
+class DimensionValueRequest { |
+ /** The name of the dimension for which values should be requested. */ |
+ core.String dimensionName; |
+ |
+ /** |
+ * The end date of the date range for which to retrieve dimension values. A |
+ * string of the format: "yyyy-MM-dd". |
+ */ |
+ core.DateTime endDate; |
+ |
+ /** The list of filters by which to filter values. The filters are ANDed. */ |
+ core.List<DimensionFilter> filters; |
+ |
+ /** |
+ * The kind of request this is, in this case |
+ * dfareporting#dimensionValueRequest. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * The start date of the date range for which to retrieve dimension values. A |
+ * string of the format: "yyyy-MM-dd". |
+ */ |
+ core.DateTime startDate; |
+ |
+ |
+ DimensionValueRequest(); |
+ |
+ DimensionValueRequest.fromJson(core.Map _json) { |
+ if (_json.containsKey("dimensionName")) { |
+ dimensionName = _json["dimensionName"]; |
+ } |
+ if (_json.containsKey("endDate")) { |
+ endDate = core.DateTime.parse(_json["endDate"]); |
+ } |
+ if (_json.containsKey("filters")) { |
+ filters = _json["filters"].map((value) => new DimensionFilter.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("startDate")) { |
+ startDate = core.DateTime.parse(_json["startDate"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dimensionName != null) { |
+ _json["dimensionName"] = dimensionName; |
+ } |
+ if (endDate != null) { |
+ _json["endDate"] = "${(endDate).year.toString().padLeft(4, '0')}-${(endDate).month.toString().padLeft(2, '0')}-${(endDate).day.toString().padLeft(2, '0')}"; |
+ } |
+ if (filters != null) { |
+ _json["filters"] = filters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (startDate != null) { |
+ _json["startDate"] = "${(startDate).year.toString().padLeft(4, '0')}-${(startDate).month.toString().padLeft(2, '0')}-${(startDate).day.toString().padLeft(2, '0')}"; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The urls where the completed report file can be downloaded. */ |
+class FileUrls { |
+ /** The url for downloading the report data through the API. */ |
+ core.String apiUrl; |
+ |
+ /** The url for downloading the report data through a browser. */ |
+ core.String browserUrl; |
+ |
+ |
+ FileUrls(); |
+ |
+ FileUrls.fromJson(core.Map _json) { |
+ if (_json.containsKey("apiUrl")) { |
+ apiUrl = _json["apiUrl"]; |
+ } |
+ if (_json.containsKey("browserUrl")) { |
+ browserUrl = _json["browserUrl"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (apiUrl != null) { |
+ _json["apiUrl"] = apiUrl; |
+ } |
+ if (browserUrl != null) { |
+ _json["browserUrl"] = browserUrl; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Represents a File resource. A File contains the meta-data for a report run. |
+ * It shows the status of the run and holds the urls to the generated report |
+ * data if the run is finished and the status is "REPORT_AVAILABLE". |
+ */ |
+class File { |
+ /** |
+ * The date range for which the file has report data. The date range will |
+ * always be the absolute date range for which the report is run. |
+ */ |
+ DateRange dateRange; |
+ |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The file name of the file. */ |
+ core.String fileName; |
+ |
+ /** |
+ * The output format of the report. Only available once the file is available. |
+ */ |
+ core.String format; |
+ |
+ /** The unique ID of this report file. */ |
+ core.String id; |
+ |
+ /** The kind of resource this is, in this case dfareporting#file. */ |
+ core.String kind; |
+ |
+ /** |
+ * The timestamp in milliseconds since epoch when this file was last modified. |
+ */ |
+ core.String lastModifiedTime; |
+ |
+ /** The ID of the report this file was generated from. */ |
+ core.String reportId; |
+ |
+ /** |
+ * The status of the report file, one of: |
+ * - "PROCESSING" |
+ * - "REPORT_AVAILABLE" |
+ * - "FAILED" |
+ * - "CANCELLED" |
+ */ |
+ core.String status; |
+ |
+ /** The urls where the completed report file can be downloaded. */ |
+ FileUrls urls; |
+ |
+ |
+ File(); |
+ |
+ File.fromJson(core.Map _json) { |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("fileName")) { |
+ fileName = _json["fileName"]; |
+ } |
+ if (_json.containsKey("format")) { |
+ format = _json["format"]; |
+ } |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("lastModifiedTime")) { |
+ lastModifiedTime = _json["lastModifiedTime"]; |
+ } |
+ if (_json.containsKey("reportId")) { |
+ reportId = _json["reportId"]; |
+ } |
+ if (_json.containsKey("status")) { |
+ status = _json["status"]; |
+ } |
+ if (_json.containsKey("urls")) { |
+ urls = new FileUrls.fromJson(_json["urls"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ if (fileName != null) { |
+ _json["fileName"] = fileName; |
+ } |
+ if (format != null) { |
+ _json["format"] = format; |
+ } |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (lastModifiedTime != null) { |
+ _json["lastModifiedTime"] = lastModifiedTime; |
+ } |
+ if (reportId != null) { |
+ _json["reportId"] = reportId; |
+ } |
+ if (status != null) { |
+ _json["status"] = status; |
+ } |
+ if (urls != null) { |
+ _json["urls"] = (urls).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents the list of File resources. */ |
+class FileList { |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The files returned in this response. */ |
+ core.List<File> items; |
+ |
+ /** The kind of list this is, in this case dfareporting#fileList. */ |
+ core.String kind; |
+ |
+ /** |
+ * Continuation token used to page through files. To retrieve the next page of |
+ * results, set the next request's "pageToken" to the value of this field. The |
+ * page token is only valid for a limited amount of time and should not be |
+ * persisted. |
+ */ |
+ core.String nextPageToken; |
+ |
+ |
+ FileList(); |
+ |
+ FileList.fromJson(core.Map _json) { |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new File.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 (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ 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 fields that are compatible to be selected for a report of type |
+ * "FlOODLIGHT". |
+ */ |
+class FloodlightReportCompatibleFields { |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensionFilters" |
+ * section of the report. |
+ */ |
+ core.List<Dimension> dimensionFilters; |
+ |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensions" section |
+ * of the report. |
+ */ |
+ core.List<Dimension> dimensions; |
+ |
+ /** |
+ * The kind of resource this is, in this case |
+ * dfareporting#floodlightReportCompatibleFields. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the "metricNames" section of |
+ * the report. |
+ */ |
+ core.List<Metric> metrics; |
+ |
+ |
+ FloodlightReportCompatibleFields(); |
+ |
+ FloodlightReportCompatibleFields.fromJson(core.Map _json) { |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("metrics")) { |
+ metrics = _json["metrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (metrics != null) { |
+ _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a metric. */ |
+class Metric { |
+ /** The kind of resource this is, in this case dfareporting#metric. */ |
+ core.String kind; |
+ |
+ /** The metric name, e.g. dfa:impressions */ |
+ core.String name; |
+ |
+ |
+ Metric(); |
+ |
+ Metric.fromJson(core.Map _json) { |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Represents fields that are compatible to be selected for a report of type |
+ * "PATH_TO_CONVERSION". |
+ */ |
+class PathToConversionReportCompatibleFields { |
+ /** |
+ * Conversion dimensions which are compatible to be selected in the |
+ * "conversionDimensions" section of the report. |
+ */ |
+ core.List<Dimension> conversionDimensions; |
+ |
+ /** |
+ * Custom floodlight variables which are compatible to be selected in the |
+ * "customFloodlightVariables" section of the report. |
+ */ |
+ core.List<Dimension> customFloodlightVariables; |
+ |
+ /** |
+ * The kind of resource this is, in this case |
+ * dfareporting#pathToConversionReportCompatibleFields. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the "metricNames" section of |
+ * the report. |
+ */ |
+ core.List<Metric> metrics; |
+ |
+ /** |
+ * Per-interaction dimensions which are compatible to be selected in the |
+ * "perInteractionDimensions" section of the report. |
+ */ |
+ core.List<Dimension> perInteractionDimensions; |
+ |
+ |
+ PathToConversionReportCompatibleFields(); |
+ |
+ PathToConversionReportCompatibleFields.fromJson(core.Map _json) { |
+ if (_json.containsKey("conversionDimensions")) { |
+ conversionDimensions = _json["conversionDimensions"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("customFloodlightVariables")) { |
+ customFloodlightVariables = _json["customFloodlightVariables"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("metrics")) { |
+ metrics = _json["metrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("perInteractionDimensions")) { |
+ perInteractionDimensions = _json["perInteractionDimensions"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (conversionDimensions != null) { |
+ _json["conversionDimensions"] = conversionDimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (customFloodlightVariables != null) { |
+ _json["customFloodlightVariables"] = customFloodlightVariables.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (metrics != null) { |
+ _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); |
+ } |
+ if (perInteractionDimensions != null) { |
+ _json["perInteractionDimensions"] = perInteractionDimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Represents fields that are compatible to be selected for a report of type |
+ * "REACH". |
+ */ |
+class ReachReportCompatibleFields { |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensionFilters" |
+ * section of the report. |
+ */ |
+ core.List<Dimension> dimensionFilters; |
+ |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensions" section |
+ * of the report. |
+ */ |
+ core.List<Dimension> dimensions; |
+ |
+ /** |
+ * The kind of resource this is, in this case |
+ * dfareporting#reachReportCompatibleFields. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the "metricNames" section of |
+ * the report. |
+ */ |
+ core.List<Metric> metrics; |
+ |
+ /** |
+ * Metrics which are compatible to be selected as activity metrics to pivot on |
+ * in the "activities" section of the report. |
+ */ |
+ core.List<Metric> pivotedActivityMetrics; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the |
+ * "reachByFrequencyMetricNames" section of the report. |
+ */ |
+ core.List<Metric> reachByFrequencyMetrics; |
+ |
+ |
+ ReachReportCompatibleFields(); |
+ |
+ ReachReportCompatibleFields.fromJson(core.Map _json) { |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("metrics")) { |
+ metrics = _json["metrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("pivotedActivityMetrics")) { |
+ pivotedActivityMetrics = _json["pivotedActivityMetrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("reachByFrequencyMetrics")) { |
+ reachByFrequencyMetrics = _json["reachByFrequencyMetrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (metrics != null) { |
+ _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); |
+ } |
+ if (pivotedActivityMetrics != null) { |
+ _json["pivotedActivityMetrics"] = pivotedActivityMetrics.map((value) => (value).toJson()).toList(); |
+ } |
+ if (reachByFrequencyMetrics != null) { |
+ _json["reachByFrequencyMetrics"] = reachByFrequencyMetrics.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a recipient. */ |
+class Recipient { |
+ /** |
+ * The delivery type for the recipient, one of: |
+ * - "ATTACHMENT" |
+ * - "LINK" |
+ */ |
+ core.String deliveryType; |
+ |
+ /** The email address of the recipient. */ |
+ core.String email; |
+ |
+ /** The kind of resource this is, in this case dfareporting#recipient. */ |
+ core.String kind; |
+ |
+ |
+ Recipient(); |
+ |
+ Recipient.fromJson(core.Map _json) { |
+ if (_json.containsKey("deliveryType")) { |
+ deliveryType = _json["deliveryType"]; |
+ } |
+ if (_json.containsKey("email")) { |
+ email = _json["email"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (deliveryType != null) { |
+ _json["deliveryType"] = deliveryType; |
+ } |
+ if (email != null) { |
+ _json["email"] = email; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report criteria for a report of type "ACTIVE_GRP". */ |
+class ReportActiveGrpCriteria { |
+ /** The date range this report should be run for. */ |
+ DateRange dateRange; |
+ |
+ /** |
+ * The list of filters on which dimensions are filtered. |
+ * Filters for different dimensions are ANDed, filters for the same dimension |
+ * are grouped together and ORed. |
+ * A valid active GRP report needs to have exactly one DimensionValue for the |
+ * United States in addition to any advertiser or campaign dimension values. |
+ */ |
+ core.List<DimensionValue> dimensionFilters; |
+ |
+ /** The list of dimensions the report should include. */ |
+ core.List<SortedDimension> dimensions; |
+ |
+ /** The list of names of metrics the report should include. */ |
+ core.List<core.String> metricNames; |
+ |
+ |
+ ReportActiveGrpCriteria(); |
+ |
+ ReportActiveGrpCriteria.fromJson(core.Map _json) { |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report criteria for a report of type "STANDARD". */ |
+class ReportCriteria { |
+ /** Activity group. */ |
+ Activities activities; |
+ |
+ /** Custom Rich Media Events group. */ |
+ CustomRichMediaEvents customRichMediaEvents; |
+ |
+ /** The date range for which this report should be run. */ |
+ DateRange dateRange; |
+ |
+ /** |
+ * The list of filters on which dimensions are filtered. |
+ * Filters for different dimensions are ANDed, filters for the same dimension |
+ * are grouped together and ORed. |
+ */ |
+ core.List<DimensionValue> dimensionFilters; |
+ |
+ /** The list of standard dimensions the report should include. */ |
+ core.List<SortedDimension> dimensions; |
+ |
+ /** The list of names of metrics the report should include. */ |
+ core.List<core.String> metricNames; |
+ |
+ |
+ ReportCriteria(); |
+ |
+ ReportCriteria.fromJson(core.Map _json) { |
+ if (_json.containsKey("activities")) { |
+ activities = new Activities.fromJson(_json["activities"]); |
+ } |
+ if (_json.containsKey("customRichMediaEvents")) { |
+ customRichMediaEvents = new CustomRichMediaEvents.fromJson(_json["customRichMediaEvents"]); |
+ } |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (activities != null) { |
+ _json["activities"] = (activities).toJson(); |
+ } |
+ if (customRichMediaEvents != null) { |
+ _json["customRichMediaEvents"] = (customRichMediaEvents).toJson(); |
+ } |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report criteria for a report of type "CROSS_DIMENSION_REACH". */ |
+class ReportCrossDimensionReachCriteria { |
+ /** The list of dimensions the report should include. */ |
+ core.List<SortedDimension> breakdown; |
+ |
+ /** The date range this report should be run for. */ |
+ DateRange dateRange; |
+ |
+ /** |
+ * The dimension option, one of: |
+ * - "ADVERTISER" |
+ * - "CAMPAIGN" |
+ * - "SITE_BY_ADVERTISER" |
+ * - "SITE_BY_CAMPAIGN" |
+ */ |
+ core.String dimension; |
+ |
+ /** The list of filters on which dimensions are filtered. */ |
+ core.List<DimensionValue> dimensionFilters; |
+ |
+ /** The list of names of metrics the report should include. */ |
+ core.List<core.String> metricNames; |
+ |
+ /** The list of names of overlap metrics the report should include. */ |
+ core.List<core.String> overlapMetricNames; |
+ |
+ /** Whether the report is pivoted or not. Defaults to true. */ |
+ core.bool pivoted; |
+ |
+ |
+ ReportCrossDimensionReachCriteria(); |
+ |
+ ReportCrossDimensionReachCriteria.fromJson(core.Map _json) { |
+ if (_json.containsKey("breakdown")) { |
+ breakdown = _json["breakdown"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("dimension")) { |
+ dimension = _json["dimension"]; |
+ } |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ if (_json.containsKey("overlapMetricNames")) { |
+ overlapMetricNames = _json["overlapMetricNames"]; |
+ } |
+ if (_json.containsKey("pivoted")) { |
+ pivoted = _json["pivoted"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (breakdown != null) { |
+ _json["breakdown"] = breakdown.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (dimension != null) { |
+ _json["dimension"] = dimension; |
+ } |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ if (overlapMetricNames != null) { |
+ _json["overlapMetricNames"] = overlapMetricNames; |
+ } |
+ if (pivoted != null) { |
+ _json["pivoted"] = pivoted; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report's email delivery settings. */ |
+class ReportDelivery { |
+ /** Whether the report should be emailed to the report owner. */ |
+ core.bool emailOwner; |
+ |
+ /** |
+ * The type of delivery for the owner to receive, if enabled. One of: |
+ * - "ATTACHMENT" |
+ * - "LINK" |
+ */ |
+ core.String emailOwnerDeliveryType; |
+ |
+ /** The message to be sent with each email. */ |
+ core.String message; |
+ |
+ /** The list of recipients to which to email the report. */ |
+ core.List<Recipient> recipients; |
+ |
+ |
+ ReportDelivery(); |
+ |
+ ReportDelivery.fromJson(core.Map _json) { |
+ if (_json.containsKey("emailOwner")) { |
+ emailOwner = _json["emailOwner"]; |
+ } |
+ if (_json.containsKey("emailOwnerDeliveryType")) { |
+ emailOwnerDeliveryType = _json["emailOwnerDeliveryType"]; |
+ } |
+ if (_json.containsKey("message")) { |
+ message = _json["message"]; |
+ } |
+ if (_json.containsKey("recipients")) { |
+ recipients = _json["recipients"].map((value) => new Recipient.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (emailOwner != null) { |
+ _json["emailOwner"] = emailOwner; |
+ } |
+ if (emailOwnerDeliveryType != null) { |
+ _json["emailOwnerDeliveryType"] = emailOwnerDeliveryType; |
+ } |
+ if (message != null) { |
+ _json["message"] = message; |
+ } |
+ if (recipients != null) { |
+ _json["recipients"] = recipients.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The properties of the report. */ |
+class ReportFloodlightCriteriaReportProperties { |
+ /** Include conversions that have no cookie, but do have an exposure path. */ |
+ core.bool includeAttributedIPConversions; |
+ |
+ /** |
+ * Include conversions of users with a DoubleClick cookie but without an |
+ * exposure. That means the user did not click or see an ad from the |
+ * advertiser within the Floodlight group, or that the interaction happened |
+ * outside the lookback window. |
+ */ |
+ core.bool includeUnattributedCookieConversions; |
+ |
+ /** |
+ * Include conversions that have no associated cookies and no exposures. It’s |
+ * therefore impossible to know how the user was exposed to your ads during |
+ * the lookback window prior to a conversion. |
+ */ |
+ core.bool includeUnattributedIPConversions; |
+ |
+ |
+ ReportFloodlightCriteriaReportProperties(); |
+ |
+ ReportFloodlightCriteriaReportProperties.fromJson(core.Map _json) { |
+ if (_json.containsKey("includeAttributedIPConversions")) { |
+ includeAttributedIPConversions = _json["includeAttributedIPConversions"]; |
+ } |
+ if (_json.containsKey("includeUnattributedCookieConversions")) { |
+ includeUnattributedCookieConversions = _json["includeUnattributedCookieConversions"]; |
+ } |
+ if (_json.containsKey("includeUnattributedIPConversions")) { |
+ includeUnattributedIPConversions = _json["includeUnattributedIPConversions"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (includeAttributedIPConversions != null) { |
+ _json["includeAttributedIPConversions"] = includeAttributedIPConversions; |
+ } |
+ if (includeUnattributedCookieConversions != null) { |
+ _json["includeUnattributedCookieConversions"] = includeUnattributedCookieConversions; |
+ } |
+ if (includeUnattributedIPConversions != null) { |
+ _json["includeUnattributedIPConversions"] = includeUnattributedIPConversions; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report criteria for a report of type "FLOODLIGHT". */ |
+class ReportFloodlightCriteria { |
+ /** The list of custom rich media events to include. */ |
+ core.List<DimensionValue> customRichMediaEvents; |
+ |
+ /** The date range this report should be run for. */ |
+ DateRange dateRange; |
+ |
+ /** |
+ * The list of filters on which dimensions are filtered. |
+ * Filters for different dimensions are ANDed, filters for the same dimension |
+ * are grouped together and ORed. |
+ */ |
+ core.List<DimensionValue> dimensionFilters; |
+ |
+ /** The list of dimensions the report should include. */ |
+ core.List<SortedDimension> dimensions; |
+ |
+ /** |
+ * The floodlight ID for which to show data in this report. All advertisers |
+ * associated with that ID will automatically be added. The dimension of the |
+ * value needs to be 'dfa:floodlightConfigId'. |
+ */ |
+ DimensionValue floodlightConfigId; |
+ |
+ /** The list of names of metrics the report should include. */ |
+ core.List<core.String> metricNames; |
+ |
+ /** The properties of the report. */ |
+ ReportFloodlightCriteriaReportProperties reportProperties; |
+ |
+ |
+ ReportFloodlightCriteria(); |
+ |
+ ReportFloodlightCriteria.fromJson(core.Map _json) { |
+ if (_json.containsKey("customRichMediaEvents")) { |
+ customRichMediaEvents = _json["customRichMediaEvents"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("floodlightConfigId")) { |
+ floodlightConfigId = new DimensionValue.fromJson(_json["floodlightConfigId"]); |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ if (_json.containsKey("reportProperties")) { |
+ reportProperties = new ReportFloodlightCriteriaReportProperties.fromJson(_json["reportProperties"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (customRichMediaEvents != null) { |
+ _json["customRichMediaEvents"] = customRichMediaEvents.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (floodlightConfigId != null) { |
+ _json["floodlightConfigId"] = (floodlightConfigId).toJson(); |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ if (reportProperties != null) { |
+ _json["reportProperties"] = (reportProperties).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The properties of the report. */ |
+class ReportPathToConversionCriteriaReportProperties { |
+ /** |
+ * DFA checks to see if a click interaction occurred within the specified |
+ * period of time before a conversion. By default the value is pulled from |
+ * Floodlight or you can manually enter a custom value. Valid values: 1-90. |
+ */ |
+ core.int clicksLookbackWindow; |
+ |
+ /** |
+ * DFA checks to see if an impression interaction occurred within the |
+ * specified period of time before a conversion. By default the value is |
+ * pulled from Floodlight or you can manually enter a custom value. Valid |
+ * values: 1-90. |
+ */ |
+ core.int impressionsLookbackWindow; |
+ |
+ /** Deprecated: has no effect. */ |
+ core.bool includeAttributedIPConversions; |
+ |
+ /** |
+ * Include conversions of users with a DoubleClick cookie but without an |
+ * exposure. That means the user did not click or see an ad from the |
+ * advertiser within the Floodlight group, or that the interaction happened |
+ * outside the lookback window. |
+ */ |
+ core.bool includeUnattributedCookieConversions; |
+ |
+ /** |
+ * Include conversions that have no associated cookies and no exposures. It’s |
+ * therefore impossible to know how the user was exposed to your ads during |
+ * the lookback window prior to a conversion. |
+ */ |
+ core.bool includeUnattributedIPConversions; |
+ |
+ /** |
+ * The maximum number of click interactions to include in the report. |
+ * Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 |
+ * impressions). If another advertiser in your network is paying for E2C, you |
+ * can have up to 5 total exposures per report. |
+ */ |
+ core.int maximumClickInteractions; |
+ |
+ /** |
+ * The maximum number of click interactions to include in the report. |
+ * Advertisers currently paying for E2C reports get up to 200 (100 clicks, 100 |
+ * impressions). If another advertiser in your network is paying for E2C, you |
+ * can have up to 5 total exposures per report. |
+ */ |
+ core.int maximumImpressionInteractions; |
+ |
+ /** |
+ * The maximum amount of time that can take place between interactions (clicks |
+ * or impressions) by the same user. Valid values: 1-90. |
+ */ |
+ core.int maximumInteractionGap; |
+ |
+ /** Enable pivoting on interaction path. */ |
+ core.bool pivotOnInteractionPath; |
+ |
+ |
+ ReportPathToConversionCriteriaReportProperties(); |
+ |
+ ReportPathToConversionCriteriaReportProperties.fromJson(core.Map _json) { |
+ if (_json.containsKey("clicksLookbackWindow")) { |
+ clicksLookbackWindow = _json["clicksLookbackWindow"]; |
+ } |
+ if (_json.containsKey("impressionsLookbackWindow")) { |
+ impressionsLookbackWindow = _json["impressionsLookbackWindow"]; |
+ } |
+ if (_json.containsKey("includeAttributedIPConversions")) { |
+ includeAttributedIPConversions = _json["includeAttributedIPConversions"]; |
+ } |
+ if (_json.containsKey("includeUnattributedCookieConversions")) { |
+ includeUnattributedCookieConversions = _json["includeUnattributedCookieConversions"]; |
+ } |
+ if (_json.containsKey("includeUnattributedIPConversions")) { |
+ includeUnattributedIPConversions = _json["includeUnattributedIPConversions"]; |
+ } |
+ if (_json.containsKey("maximumClickInteractions")) { |
+ maximumClickInteractions = _json["maximumClickInteractions"]; |
+ } |
+ if (_json.containsKey("maximumImpressionInteractions")) { |
+ maximumImpressionInteractions = _json["maximumImpressionInteractions"]; |
+ } |
+ if (_json.containsKey("maximumInteractionGap")) { |
+ maximumInteractionGap = _json["maximumInteractionGap"]; |
+ } |
+ if (_json.containsKey("pivotOnInteractionPath")) { |
+ pivotOnInteractionPath = _json["pivotOnInteractionPath"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (clicksLookbackWindow != null) { |
+ _json["clicksLookbackWindow"] = clicksLookbackWindow; |
+ } |
+ if (impressionsLookbackWindow != null) { |
+ _json["impressionsLookbackWindow"] = impressionsLookbackWindow; |
+ } |
+ if (includeAttributedIPConversions != null) { |
+ _json["includeAttributedIPConversions"] = includeAttributedIPConversions; |
+ } |
+ if (includeUnattributedCookieConversions != null) { |
+ _json["includeUnattributedCookieConversions"] = includeUnattributedCookieConversions; |
+ } |
+ if (includeUnattributedIPConversions != null) { |
+ _json["includeUnattributedIPConversions"] = includeUnattributedIPConversions; |
+ } |
+ if (maximumClickInteractions != null) { |
+ _json["maximumClickInteractions"] = maximumClickInteractions; |
+ } |
+ if (maximumImpressionInteractions != null) { |
+ _json["maximumImpressionInteractions"] = maximumImpressionInteractions; |
+ } |
+ if (maximumInteractionGap != null) { |
+ _json["maximumInteractionGap"] = maximumInteractionGap; |
+ } |
+ if (pivotOnInteractionPath != null) { |
+ _json["pivotOnInteractionPath"] = pivotOnInteractionPath; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report criteria for a report of type "PATH_TO_CONVERSION". */ |
+class ReportPathToConversionCriteria { |
+ /** The list of 'dfa:activity' values to filter on. */ |
+ core.List<DimensionValue> activityFilters; |
+ |
+ /** The list of conversion dimensions the report should include. */ |
+ core.List<SortedDimension> conversionDimensions; |
+ |
+ /** The list of custom floodlight variables the report should include. */ |
+ core.List<SortedDimension> customFloodlightVariables; |
+ |
+ /** The list of custom rich media events to include. */ |
+ core.List<DimensionValue> customRichMediaEvents; |
+ |
+ /** The date range this report should be run for. */ |
+ DateRange dateRange; |
+ |
+ /** |
+ * The floodlight ID for which to show data in this report. All advertisers |
+ * associated with that ID will automatically be added. The dimension of the |
+ * value needs to be 'dfa:floodlightConfigId'. |
+ */ |
+ DimensionValue floodlightConfigId; |
+ |
+ /** The list of names of metrics the report should include. */ |
+ core.List<core.String> metricNames; |
+ |
+ /** The list of per interaction dimensions the report should include. */ |
+ core.List<SortedDimension> perInteractionDimensions; |
+ |
+ /** The properties of the report. */ |
+ ReportPathToConversionCriteriaReportProperties reportProperties; |
+ |
+ |
+ ReportPathToConversionCriteria(); |
+ |
+ ReportPathToConversionCriteria.fromJson(core.Map _json) { |
+ if (_json.containsKey("activityFilters")) { |
+ activityFilters = _json["activityFilters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("conversionDimensions")) { |
+ conversionDimensions = _json["conversionDimensions"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("customFloodlightVariables")) { |
+ customFloodlightVariables = _json["customFloodlightVariables"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("customRichMediaEvents")) { |
+ customRichMediaEvents = _json["customRichMediaEvents"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("floodlightConfigId")) { |
+ floodlightConfigId = new DimensionValue.fromJson(_json["floodlightConfigId"]); |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ if (_json.containsKey("perInteractionDimensions")) { |
+ perInteractionDimensions = _json["perInteractionDimensions"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("reportProperties")) { |
+ reportProperties = new ReportPathToConversionCriteriaReportProperties.fromJson(_json["reportProperties"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (activityFilters != null) { |
+ _json["activityFilters"] = activityFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (conversionDimensions != null) { |
+ _json["conversionDimensions"] = conversionDimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (customFloodlightVariables != null) { |
+ _json["customFloodlightVariables"] = customFloodlightVariables.map((value) => (value).toJson()).toList(); |
+ } |
+ if (customRichMediaEvents != null) { |
+ _json["customRichMediaEvents"] = customRichMediaEvents.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (floodlightConfigId != null) { |
+ _json["floodlightConfigId"] = (floodlightConfigId).toJson(); |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ if (perInteractionDimensions != null) { |
+ _json["perInteractionDimensions"] = perInteractionDimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (reportProperties != null) { |
+ _json["reportProperties"] = (reportProperties).toJson(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The report criteria for a report of type "REACH". */ |
+class ReportReachCriteria { |
+ /** Activity group. */ |
+ Activities activities; |
+ |
+ /** Custom Rich Media Events group. */ |
+ CustomRichMediaEvents customRichMediaEvents; |
+ |
+ /** The date range this report should be run for. */ |
+ DateRange dateRange; |
+ |
+ /** |
+ * The list of filters on which dimensions are filtered. |
+ * Filters for different dimensions are ANDed, filters for the same dimension |
+ * are grouped together and ORed. |
+ */ |
+ core.List<DimensionValue> dimensionFilters; |
+ |
+ /** The list of dimensions the report should include. */ |
+ core.List<SortedDimension> dimensions; |
+ |
+ /** The list of names of metrics the report should include. */ |
+ core.List<core.String> metricNames; |
+ |
+ /** |
+ * The list of names of Reach By Frequency metrics the report should include. |
+ */ |
+ core.List<core.String> reachByFrequencyMetricNames; |
+ |
+ |
+ ReportReachCriteria(); |
+ |
+ ReportReachCriteria.fromJson(core.Map _json) { |
+ if (_json.containsKey("activities")) { |
+ activities = new Activities.fromJson(_json["activities"]); |
+ } |
+ if (_json.containsKey("customRichMediaEvents")) { |
+ customRichMediaEvents = new CustomRichMediaEvents.fromJson(_json["customRichMediaEvents"]); |
+ } |
+ if (_json.containsKey("dateRange")) { |
+ dateRange = new DateRange.fromJson(_json["dateRange"]); |
+ } |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new DimensionValue.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new SortedDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("metricNames")) { |
+ metricNames = _json["metricNames"]; |
+ } |
+ if (_json.containsKey("reachByFrequencyMetricNames")) { |
+ reachByFrequencyMetricNames = _json["reachByFrequencyMetricNames"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (activities != null) { |
+ _json["activities"] = (activities).toJson(); |
+ } |
+ if (customRichMediaEvents != null) { |
+ _json["customRichMediaEvents"] = (customRichMediaEvents).toJson(); |
+ } |
+ if (dateRange != null) { |
+ _json["dateRange"] = (dateRange).toJson(); |
+ } |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (metricNames != null) { |
+ _json["metricNames"] = metricNames; |
+ } |
+ if (reachByFrequencyMetricNames != null) { |
+ _json["reachByFrequencyMetricNames"] = reachByFrequencyMetricNames; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * The report's schedule. Can only be set if the report's 'dateRange' is a |
+ * relative date range and the relative date range is not "TODAY". |
+ */ |
+class ReportSchedule { |
+ /** |
+ * Whether the schedule is active or not. Must be set to either true or false. |
+ */ |
+ core.bool active; |
+ |
+ /** |
+ * Defines every how many days, weeks or months the report should be run. |
+ * Needs to be set when "repeats" is either "DAILY", "WEEKLY" or "MONTHLY". |
+ */ |
+ core.int every; |
+ |
+ /** The expiration date when the scheduled report stops running. */ |
+ core.DateTime expirationDate; |
+ |
+ /** |
+ * The interval for which the report is repeated, one of: |
+ * - "DAILY", also requires field "every" to be set. |
+ * - "WEEKLY", also requires fields "every" and "repeatsOnWeekDays" to be set. |
+ * - "TWICE_A_MONTH" |
+ * - "MONTHLY", also requires fields "every" and "runsOnDayOfMonth" to be set. |
+ * - "QUARTERLY" |
+ * - "YEARLY" |
+ */ |
+ core.String repeats; |
+ |
+ /** List of week days "WEEKLY" on which scheduled reports should run. */ |
+ core.List<core.String> repeatsOnWeekDays; |
+ |
+ /** |
+ * Enum to define for "MONTHLY" scheduled reports whether reports should be |
+ * repeated on the same day of the month as "startDate" or the same day of the |
+ * week of the month. Possible values are: |
+ * - DAY_OF_MONTH |
+ * - WEEK_OF_MONTH |
+ * Example: If 'startDate' is Monday, April 2nd 2012 (2012-04-02), |
+ * "DAY_OF_MONTH" would run subsequent reports on the 2nd of every Month, and |
+ * "WEEK_OF_MONTH" would run subsequent reports on the first Monday of the |
+ * month. |
+ */ |
+ core.String runsOnDayOfMonth; |
+ |
+ /** Start date of date range for which scheduled reports should be run. */ |
+ core.DateTime startDate; |
+ |
+ |
+ ReportSchedule(); |
+ |
+ ReportSchedule.fromJson(core.Map _json) { |
+ if (_json.containsKey("active")) { |
+ active = _json["active"]; |
+ } |
+ if (_json.containsKey("every")) { |
+ every = _json["every"]; |
+ } |
+ if (_json.containsKey("expirationDate")) { |
+ expirationDate = core.DateTime.parse(_json["expirationDate"]); |
+ } |
+ if (_json.containsKey("repeats")) { |
+ repeats = _json["repeats"]; |
+ } |
+ if (_json.containsKey("repeatsOnWeekDays")) { |
+ repeatsOnWeekDays = _json["repeatsOnWeekDays"]; |
+ } |
+ if (_json.containsKey("runsOnDayOfMonth")) { |
+ runsOnDayOfMonth = _json["runsOnDayOfMonth"]; |
+ } |
+ if (_json.containsKey("startDate")) { |
+ startDate = core.DateTime.parse(_json["startDate"]); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (active != null) { |
+ _json["active"] = active; |
+ } |
+ if (every != null) { |
+ _json["every"] = every; |
+ } |
+ if (expirationDate != null) { |
+ _json["expirationDate"] = "${(expirationDate).year.toString().padLeft(4, '0')}-${(expirationDate).month.toString().padLeft(2, '0')}-${(expirationDate).day.toString().padLeft(2, '0')}"; |
+ } |
+ if (repeats != null) { |
+ _json["repeats"] = repeats; |
+ } |
+ if (repeatsOnWeekDays != null) { |
+ _json["repeatsOnWeekDays"] = repeatsOnWeekDays; |
+ } |
+ if (runsOnDayOfMonth != null) { |
+ _json["runsOnDayOfMonth"] = runsOnDayOfMonth; |
+ } |
+ if (startDate != null) { |
+ _json["startDate"] = "${(startDate).year.toString().padLeft(4, '0')}-${(startDate).month.toString().padLeft(2, '0')}-${(startDate).day.toString().padLeft(2, '0')}"; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a Report resource. */ |
+class Report { |
+ /** The account ID to which this report belongs. */ |
+ core.String accountId; |
+ |
+ /** The report criteria for a report of type "ACTIVE_GRP". */ |
+ ReportActiveGrpCriteria activeGrpCriteria; |
+ |
+ /** The report criteria for a report of type "STANDARD". */ |
+ ReportCriteria criteria; |
+ |
+ /** The report criteria for a report of type "CROSS_DIMENSION_REACH". */ |
+ ReportCrossDimensionReachCriteria crossDimensionReachCriteria; |
+ |
+ /** The report's email delivery settings. */ |
+ ReportDelivery delivery; |
+ |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The file name used when generating report files for this report. */ |
+ core.String fileName; |
+ |
+ /** The report criteria for a report of type "FLOODLIGHT". */ |
+ ReportFloodlightCriteria floodlightCriteria; |
+ |
+ /** |
+ * The output format of the report, one of: |
+ * - "CSV" |
+ * - "EXCEL" If not specified, default format is "CSV". Note that the actual |
+ * format in the completed report file might differ if for instance the |
+ * report's size exceeds the format's capabilities. "CSV" will then be the |
+ * fallback format. |
+ */ |
+ core.String format; |
+ |
+ /** The unique ID identifying this report resource. */ |
+ core.String id; |
+ |
+ /** The kind of resource this is, in this case dfareporting#report. */ |
+ core.String kind; |
+ |
+ /** |
+ * The timestamp (in milliseconds since epoch) of when this report was last |
+ * modified. |
+ */ |
+ core.String lastModifiedTime; |
+ |
+ /** The name of the report. */ |
+ core.String name; |
+ |
+ /** The user profile id of the owner of this report. */ |
+ core.String ownerProfileId; |
+ |
+ /** The report criteria for a report of type "PATH_TO_CONVERSION". */ |
+ ReportPathToConversionCriteria pathToConversionCriteria; |
+ |
+ /** The report criteria for a report of type "REACH". */ |
+ ReportReachCriteria reachCriteria; |
+ |
+ /** |
+ * The report's schedule. Can only be set if the report's 'dateRange' is a |
+ * relative date range and the relative date range is not "TODAY". |
+ */ |
+ ReportSchedule schedule; |
+ |
+ /** The subbaccount ID to which this report belongs if applicable. */ |
+ core.String subAccountId; |
+ |
+ /** |
+ * The type of the report, one of: |
+ * - STANDARD |
+ * - REACH |
+ * - ACTIVE_GRP |
+ * - PATH_TO_CONVERSION |
+ * - FLOODLIGHT |
+ * - CROSS_DIMENSION_REACH |
+ */ |
+ core.String type; |
+ |
+ |
+ Report(); |
+ |
+ Report.fromJson(core.Map _json) { |
+ if (_json.containsKey("accountId")) { |
+ accountId = _json["accountId"]; |
+ } |
+ if (_json.containsKey("activeGrpCriteria")) { |
+ activeGrpCriteria = new ReportActiveGrpCriteria.fromJson(_json["activeGrpCriteria"]); |
+ } |
+ if (_json.containsKey("criteria")) { |
+ criteria = new ReportCriteria.fromJson(_json["criteria"]); |
+ } |
+ if (_json.containsKey("crossDimensionReachCriteria")) { |
+ crossDimensionReachCriteria = new ReportCrossDimensionReachCriteria.fromJson(_json["crossDimensionReachCriteria"]); |
+ } |
+ if (_json.containsKey("delivery")) { |
+ delivery = new ReportDelivery.fromJson(_json["delivery"]); |
+ } |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("fileName")) { |
+ fileName = _json["fileName"]; |
+ } |
+ if (_json.containsKey("floodlightCriteria")) { |
+ floodlightCriteria = new ReportFloodlightCriteria.fromJson(_json["floodlightCriteria"]); |
+ } |
+ if (_json.containsKey("format")) { |
+ format = _json["format"]; |
+ } |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("lastModifiedTime")) { |
+ lastModifiedTime = _json["lastModifiedTime"]; |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("ownerProfileId")) { |
+ ownerProfileId = _json["ownerProfileId"]; |
+ } |
+ if (_json.containsKey("pathToConversionCriteria")) { |
+ pathToConversionCriteria = new ReportPathToConversionCriteria.fromJson(_json["pathToConversionCriteria"]); |
+ } |
+ if (_json.containsKey("reachCriteria")) { |
+ reachCriteria = new ReportReachCriteria.fromJson(_json["reachCriteria"]); |
+ } |
+ if (_json.containsKey("schedule")) { |
+ schedule = new ReportSchedule.fromJson(_json["schedule"]); |
+ } |
+ if (_json.containsKey("subAccountId")) { |
+ subAccountId = _json["subAccountId"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (accountId != null) { |
+ _json["accountId"] = accountId; |
+ } |
+ if (activeGrpCriteria != null) { |
+ _json["activeGrpCriteria"] = (activeGrpCriteria).toJson(); |
+ } |
+ if (criteria != null) { |
+ _json["criteria"] = (criteria).toJson(); |
+ } |
+ if (crossDimensionReachCriteria != null) { |
+ _json["crossDimensionReachCriteria"] = (crossDimensionReachCriteria).toJson(); |
+ } |
+ if (delivery != null) { |
+ _json["delivery"] = (delivery).toJson(); |
+ } |
+ if (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ if (fileName != null) { |
+ _json["fileName"] = fileName; |
+ } |
+ if (floodlightCriteria != null) { |
+ _json["floodlightCriteria"] = (floodlightCriteria).toJson(); |
+ } |
+ if (format != null) { |
+ _json["format"] = format; |
+ } |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (lastModifiedTime != null) { |
+ _json["lastModifiedTime"] = lastModifiedTime; |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (ownerProfileId != null) { |
+ _json["ownerProfileId"] = ownerProfileId; |
+ } |
+ if (pathToConversionCriteria != null) { |
+ _json["pathToConversionCriteria"] = (pathToConversionCriteria).toJson(); |
+ } |
+ if (reachCriteria != null) { |
+ _json["reachCriteria"] = (reachCriteria).toJson(); |
+ } |
+ if (schedule != null) { |
+ _json["schedule"] = (schedule).toJson(); |
+ } |
+ if (subAccountId != null) { |
+ _json["subAccountId"] = subAccountId; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * Represents fields that are compatible to be selected for a report of type |
+ * "STANDARD". |
+ */ |
+class ReportCompatibleFields { |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensionFilters" |
+ * section of the report. |
+ */ |
+ core.List<Dimension> dimensionFilters; |
+ |
+ /** |
+ * Dimensions which are compatible to be selected in the "dimensions" section |
+ * of the report. |
+ */ |
+ core.List<Dimension> dimensions; |
+ |
+ /** |
+ * The kind of resource this is, in this case |
+ * dfareporting#reportCompatibleFields. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * Metrics which are compatible to be selected in the "metricNames" section of |
+ * the report. |
+ */ |
+ core.List<Metric> metrics; |
+ |
+ /** |
+ * Metrics which are compatible to be selected as activity metrics to pivot on |
+ * in the "activities" section of the report. |
+ */ |
+ core.List<Metric> pivotedActivityMetrics; |
+ |
+ |
+ ReportCompatibleFields(); |
+ |
+ ReportCompatibleFields.fromJson(core.Map _json) { |
+ if (_json.containsKey("dimensionFilters")) { |
+ dimensionFilters = _json["dimensionFilters"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dimensions")) { |
+ dimensions = _json["dimensions"].map((value) => new Dimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("metrics")) { |
+ metrics = _json["metrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("pivotedActivityMetrics")) { |
+ pivotedActivityMetrics = _json["pivotedActivityMetrics"].map((value) => new Metric.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (dimensionFilters != null) { |
+ _json["dimensionFilters"] = dimensionFilters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dimensions != null) { |
+ _json["dimensions"] = dimensions.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (metrics != null) { |
+ _json["metrics"] = metrics.map((value) => (value).toJson()).toList(); |
+ } |
+ if (pivotedActivityMetrics != null) { |
+ _json["pivotedActivityMetrics"] = pivotedActivityMetrics.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents the list of reports. */ |
+class ReportList { |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The reports returned in this response. */ |
+ core.List<Report> items; |
+ |
+ /** The kind of list this is, in this case dfareporting#reportList. */ |
+ core.String kind; |
+ |
+ /** |
+ * Continuation token used to page through reports. To retrieve the next page |
+ * of results, set the next request's "pageToken" to the value of this field. |
+ * The page token is only valid for a limited amount of time and should not be |
+ * persisted. |
+ */ |
+ core.String nextPageToken; |
+ |
+ |
+ ReportList(); |
+ |
+ ReportList.fromJson(core.Map _json) { |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new Report.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 (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ 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 a sorted dimension. */ |
+class SortedDimension { |
+ /** |
+ * The kind of resource this is, in this case dfareporting#sortedDimension. |
+ */ |
+ core.String kind; |
+ |
+ /** The name of the dimension. */ |
+ core.String name; |
+ |
+ /** |
+ * An optional sort order for the dimension column, one of: |
+ * - "ASCENDING" |
+ * - "DESCENDING" |
+ */ |
+ core.String sortOrder; |
+ |
+ |
+ SortedDimension(); |
+ |
+ SortedDimension.fromJson(core.Map _json) { |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("sortOrder")) { |
+ sortOrder = _json["sortOrder"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (sortOrder != null) { |
+ _json["sortOrder"] = sortOrder; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents a UserProfile resource. */ |
+class UserProfile { |
+ /** The account ID to which this profile belongs. */ |
+ core.String accountId; |
+ |
+ /** The account name this profile belongs to. */ |
+ core.String accountName; |
+ |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The kind of resource this is, in this case dfareporting#userProfile. */ |
+ core.String kind; |
+ |
+ /** The unique ID of the user profile. */ |
+ core.String profileId; |
+ |
+ /** The sub account ID this profile belongs to if applicable. */ |
+ core.String subAccountId; |
+ |
+ /** The sub account name this profile belongs to if applicable. */ |
+ core.String subAccountName; |
+ |
+ /** The user name. */ |
+ core.String userName; |
+ |
+ |
+ UserProfile(); |
+ |
+ UserProfile.fromJson(core.Map _json) { |
+ if (_json.containsKey("accountId")) { |
+ accountId = _json["accountId"]; |
+ } |
+ if (_json.containsKey("accountName")) { |
+ accountName = _json["accountName"]; |
+ } |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("profileId")) { |
+ profileId = _json["profileId"]; |
+ } |
+ if (_json.containsKey("subAccountId")) { |
+ subAccountId = _json["subAccountId"]; |
+ } |
+ if (_json.containsKey("subAccountName")) { |
+ subAccountName = _json["subAccountName"]; |
+ } |
+ if (_json.containsKey("userName")) { |
+ userName = _json["userName"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (accountId != null) { |
+ _json["accountId"] = accountId; |
+ } |
+ if (accountName != null) { |
+ _json["accountName"] = accountName; |
+ } |
+ if (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (profileId != null) { |
+ _json["profileId"] = profileId; |
+ } |
+ if (subAccountId != null) { |
+ _json["subAccountId"] = subAccountId; |
+ } |
+ if (subAccountName != null) { |
+ _json["subAccountName"] = subAccountName; |
+ } |
+ if (userName != null) { |
+ _json["userName"] = userName; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Represents the list of user profiles. */ |
+class UserProfileList { |
+ /** The eTag of this response for caching purposes. */ |
+ core.String etag; |
+ |
+ /** The user profiles returned in this response. */ |
+ core.List<UserProfile> items; |
+ |
+ /** The kind of list this is, in this case dfareporting#userProfileList. */ |
+ core.String kind; |
+ |
+ |
+ UserProfileList(); |
+ |
+ UserProfileList.fromJson(core.Map _json) { |
+ if (_json.containsKey("etag")) { |
+ etag = _json["etag"]; |
+ } |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new UserProfile.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (etag != null) { |
+ _json["etag"] = etag; |
+ } |
+ if (items != null) { |
+ _json["items"] = items.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |