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

Unified Diff: generated/googleapis/lib/dfareporting/v1_3.dart

Issue 559053002: Generate 0.1.0 version of googleapis/googleapis_beta (Closed) Base URL: git@github.com:dart-lang/googleapis.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: generated/googleapis/lib/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;
+ }
+}
+
+

Powered by Google App Engine
This is Rietveld 408576698