Index: generated/googleapis/lib/doubleclicksearch/v2.dart |
diff --git a/generated/googleapis/lib/doubleclicksearch/v2.dart b/generated/googleapis/lib/doubleclicksearch/v2.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..759ac8676c8255fd7197c5415dd8c26cd91488a5 |
--- /dev/null |
+++ b/generated/googleapis/lib/doubleclicksearch/v2.dart |
@@ -0,0 +1,1884 @@ |
+library googleapis.doubleclicksearch.v2; |
+ |
+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; |
+ |
+/** |
+ * Report and modify your advertising data in DoubleClick Search (for example, |
+ * campaigns, ad groups, keywords, and conversions). |
+ */ |
+class DoubleclicksearchApi { |
+ /** View and manage your advertising data in DoubleClick Search */ |
+ static const DoubleclicksearchScope = "https://www.googleapis.com/auth/doubleclicksearch"; |
+ |
+ |
+ final common_internal.ApiRequester _requester; |
+ |
+ ConversionResourceApi get conversion => new ConversionResourceApi(_requester); |
+ ReportsResourceApi get reports => new ReportsResourceApi(_requester); |
+ SavedColumnsResourceApi get savedColumns => new SavedColumnsResourceApi(_requester); |
+ |
+ DoubleclicksearchApi(http.Client client) : |
+ _requester = new common_internal.ApiRequester(client, "https://www.googleapis.com/", "/doubleclicksearch/v2/"); |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ConversionResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ ConversionResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieves a list of conversions from a DoubleClick Search engine account. |
+ * |
+ * Request parameters: |
+ * |
+ * [agencyId] - Numeric ID of the agency. |
+ * |
+ * [advertiserId] - Numeric ID of the advertiser. |
+ * |
+ * [engineAccountId] - Numeric ID of the engine account. |
+ * |
+ * [endDate] - Last date (inclusive) on which to retrieve conversions. Format |
+ * is yyyymmdd. |
+ * Value must be between "20091101" and "99991231". |
+ * |
+ * [rowCount] - The number of conversions to return per call. |
+ * Value must be between "1" and "1000". |
+ * |
+ * [startDate] - First date (inclusive) on which to retrieve conversions. |
+ * Format is yyyymmdd. |
+ * Value must be between "20091101" and "99991231". |
+ * |
+ * [startRow] - The 0-based starting index for retrieving conversions results. |
+ * |
+ * [adGroupId] - Numeric ID of the ad group. |
+ * |
+ * [adId] - Numeric ID of the ad. |
+ * |
+ * [campaignId] - Numeric ID of the campaign. |
+ * |
+ * [criterionId] - Numeric ID of the criterion. |
+ * |
+ * Completes with a [ConversionList]. |
+ * |
+ * 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<ConversionList> get(core.String agencyId, core.String advertiserId, core.String engineAccountId, core.int endDate, core.int rowCount, core.int startDate, core.int startRow, {core.String adGroupId, core.String adId, core.String campaignId, core.String criterionId}) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (agencyId == null) { |
+ throw new core.ArgumentError("Parameter agencyId is required."); |
+ } |
+ if (advertiserId == null) { |
+ throw new core.ArgumentError("Parameter advertiserId is required."); |
+ } |
+ if (engineAccountId == null) { |
+ throw new core.ArgumentError("Parameter engineAccountId is required."); |
+ } |
+ if (endDate == null) { |
+ throw new core.ArgumentError("Parameter endDate is required."); |
+ } |
+ _queryParams["endDate"] = ["${endDate}"]; |
+ if (rowCount == null) { |
+ throw new core.ArgumentError("Parameter rowCount is required."); |
+ } |
+ _queryParams["rowCount"] = ["${rowCount}"]; |
+ if (startDate == null) { |
+ throw new core.ArgumentError("Parameter startDate is required."); |
+ } |
+ _queryParams["startDate"] = ["${startDate}"]; |
+ if (startRow == null) { |
+ throw new core.ArgumentError("Parameter startRow is required."); |
+ } |
+ _queryParams["startRow"] = ["${startRow}"]; |
+ if (adGroupId != null) { |
+ _queryParams["adGroupId"] = [adGroupId]; |
+ } |
+ if (adId != null) { |
+ _queryParams["adId"] = [adId]; |
+ } |
+ if (campaignId != null) { |
+ _queryParams["campaignId"] = [campaignId]; |
+ } |
+ if (criterionId != null) { |
+ _queryParams["criterionId"] = [criterionId]; |
+ } |
+ |
+ |
+ _url = 'agency/' + common_internal.Escaper.ecapeVariable('$agencyId') + '/advertiser/' + common_internal.Escaper.ecapeVariable('$advertiserId') + '/engine/' + common_internal.Escaper.ecapeVariable('$engineAccountId') + '/conversion'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ConversionList.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Inserts a batch of new conversions into DoubleClick Search. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * Completes with a [ConversionList]. |
+ * |
+ * 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<ConversionList> insert(ConversionList request) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ |
+ |
+ _url = 'conversion'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ConversionList.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Updates a batch of conversions in DoubleClick Search. This method supports |
+ * patch semantics. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * [advertiserId] - Numeric ID of the advertiser. |
+ * |
+ * [agencyId] - Numeric ID of the agency. |
+ * |
+ * [endDate] - Last date (inclusive) on which to retrieve conversions. Format |
+ * is yyyymmdd. |
+ * Value must be between "20091101" and "99991231". |
+ * |
+ * [engineAccountId] - Numeric ID of the engine account. |
+ * |
+ * [rowCount] - The number of conversions to return per call. |
+ * Value must be between "1" and "1000". |
+ * |
+ * [startDate] - First date (inclusive) on which to retrieve conversions. |
+ * Format is yyyymmdd. |
+ * Value must be between "20091101" and "99991231". |
+ * |
+ * [startRow] - The 0-based starting index for retrieving conversions results. |
+ * |
+ * Completes with a [ConversionList]. |
+ * |
+ * 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<ConversionList> patch(ConversionList request, core.String advertiserId, core.String agencyId, core.int endDate, core.String engineAccountId, core.int rowCount, core.int startDate, core.int startRow) { |
+ 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 (advertiserId == null) { |
+ throw new core.ArgumentError("Parameter advertiserId is required."); |
+ } |
+ _queryParams["advertiserId"] = [advertiserId]; |
+ if (agencyId == null) { |
+ throw new core.ArgumentError("Parameter agencyId is required."); |
+ } |
+ _queryParams["agencyId"] = [agencyId]; |
+ if (endDate == null) { |
+ throw new core.ArgumentError("Parameter endDate is required."); |
+ } |
+ _queryParams["endDate"] = ["${endDate}"]; |
+ if (engineAccountId == null) { |
+ throw new core.ArgumentError("Parameter engineAccountId is required."); |
+ } |
+ _queryParams["engineAccountId"] = [engineAccountId]; |
+ if (rowCount == null) { |
+ throw new core.ArgumentError("Parameter rowCount is required."); |
+ } |
+ _queryParams["rowCount"] = ["${rowCount}"]; |
+ if (startDate == null) { |
+ throw new core.ArgumentError("Parameter startDate is required."); |
+ } |
+ _queryParams["startDate"] = ["${startDate}"]; |
+ if (startRow == null) { |
+ throw new core.ArgumentError("Parameter startRow is required."); |
+ } |
+ _queryParams["startRow"] = ["${startRow}"]; |
+ |
+ |
+ _url = 'conversion'; |
+ |
+ var _response = _requester.request(_url, |
+ "PATCH", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ConversionList.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Updates a batch of conversions in DoubleClick Search. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * Completes with a [ConversionList]. |
+ * |
+ * 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<ConversionList> update(ConversionList request) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ |
+ |
+ _url = 'conversion'; |
+ |
+ var _response = _requester.request(_url, |
+ "PUT", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new ConversionList.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Updates the availabilities of a batch of floodlight activities in |
+ * DoubleClick Search. |
+ * |
+ * [request] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * Completes with a [UpdateAvailabilityResponse]. |
+ * |
+ * 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<UpdateAvailabilityResponse> updateAvailability(UpdateAvailabilityRequest request) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request != null) { |
+ _body = convert.JSON.encode((request).toJson()); |
+ } |
+ |
+ |
+ _url = 'conversion/updateAvailability'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new UpdateAvailabilityResponse.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ ReportsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Generates and returns a report immediately. |
+ * |
+ * [request_1] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * 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> generate(ReportRequest request_1) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request_1 != null) { |
+ _body = convert.JSON.encode((request_1).toJson()); |
+ } |
+ |
+ |
+ _url = 'reports/generate'; |
+ |
+ var _response = _requester.request(_url, |
+ "POST", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new Report.fromJson(data)); |
+ } |
+ |
+ /** |
+ * Polls for the status of a report request. |
+ * |
+ * Request parameters: |
+ * |
+ * [reportId] - ID of the report request being polled. |
+ * |
+ * 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 reportId) { |
+ 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."); |
+ } |
+ |
+ |
+ _url = '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)); |
+ } |
+ |
+ /** |
+ * Downloads a report file. |
+ * |
+ * Request parameters: |
+ * |
+ * [reportId] - ID of the report. |
+ * |
+ * [reportFragment] - The index of the report fragment to download. |
+ * |
+ * [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 [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 getFile(core.String reportId, core.int reportFragment, {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 (reportFragment == null) { |
+ throw new core.ArgumentError("Parameter reportFragment is required."); |
+ } |
+ |
+ _downloadOptions = downloadOptions; |
+ |
+ _url = 'reports/' + common_internal.Escaper.ecapeVariable('$reportId') + '/files/' + common_internal.Escaper.ecapeVariable('$reportFragment'); |
+ |
+ 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) => null); |
+ } else { |
+ return _response; |
+ } |
+ } |
+ |
+ /** |
+ * Inserts a report request into the reporting system. |
+ * |
+ * [request_1] - The metadata request object. |
+ * |
+ * Request parameters: |
+ * |
+ * 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> request(ReportRequest request_1) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (request_1 != null) { |
+ _body = convert.JSON.encode((request_1).toJson()); |
+ } |
+ |
+ |
+ _url = '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)); |
+ } |
+ |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class SavedColumnsResourceApi { |
+ final common_internal.ApiRequester _requester; |
+ |
+ SavedColumnsResourceApi(common_internal.ApiRequester client) : |
+ _requester = client; |
+ |
+ /** |
+ * Retrieve the list of saved columns for a specified advertiser. |
+ * |
+ * Request parameters: |
+ * |
+ * [agencyId] - DS ID of the agency. |
+ * |
+ * [advertiserId] - DS ID of the advertiser. |
+ * |
+ * Completes with a [SavedColumnList]. |
+ * |
+ * 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<SavedColumnList> list(core.String agencyId, core.String advertiserId) { |
+ var _url = null; |
+ var _queryParams = new core.Map(); |
+ var _uploadMedia = null; |
+ var _uploadOptions = null; |
+ var _downloadOptions = common.DownloadOptions.Metadata; |
+ var _body = null; |
+ |
+ if (agencyId == null) { |
+ throw new core.ArgumentError("Parameter agencyId is required."); |
+ } |
+ if (advertiserId == null) { |
+ throw new core.ArgumentError("Parameter advertiserId is required."); |
+ } |
+ |
+ |
+ _url = 'agency/' + common_internal.Escaper.ecapeVariable('$agencyId') + '/advertiser/' + common_internal.Escaper.ecapeVariable('$advertiserId') + '/savedcolumns'; |
+ |
+ var _response = _requester.request(_url, |
+ "GET", |
+ body: _body, |
+ queryParams: _queryParams, |
+ uploadOptions: _uploadOptions, |
+ uploadMedia: _uploadMedia, |
+ downloadOptions: _downloadOptions); |
+ return _response.then((data) => new SavedColumnList.fromJson(data)); |
+ } |
+ |
+} |
+ |
+ |
+ |
+/** A message containing availability data relevant to DoubleClick Search. */ |
+class Availability { |
+ /** DS advertiser ID. */ |
+ core.String advertiserId; |
+ |
+ /** DS agency ID. */ |
+ core.String agencyId; |
+ |
+ /** |
+ * The time by which all conversions have been uploaded, in epoch millis UTC. |
+ */ |
+ core.String availabilityTimestamp; |
+ |
+ /** |
+ * The numeric segmentation identifier (for example, DoubleClick Search |
+ * Floodlight activity ID). |
+ */ |
+ core.String segmentationId; |
+ |
+ /** |
+ * The friendly segmentation identifier (for example, DoubleClick Search |
+ * Floodlight activity name). |
+ */ |
+ core.String segmentationName; |
+ |
+ /** |
+ * The segmentation type that this availability is for (its default value is |
+ * FLOODLIGHT). |
+ */ |
+ core.String segmentationType; |
+ |
+ |
+ Availability(); |
+ |
+ Availability.fromJson(core.Map _json) { |
+ if (_json.containsKey("advertiserId")) { |
+ advertiserId = _json["advertiserId"]; |
+ } |
+ if (_json.containsKey("agencyId")) { |
+ agencyId = _json["agencyId"]; |
+ } |
+ if (_json.containsKey("availabilityTimestamp")) { |
+ availabilityTimestamp = _json["availabilityTimestamp"]; |
+ } |
+ if (_json.containsKey("segmentationId")) { |
+ segmentationId = _json["segmentationId"]; |
+ } |
+ if (_json.containsKey("segmentationName")) { |
+ segmentationName = _json["segmentationName"]; |
+ } |
+ if (_json.containsKey("segmentationType")) { |
+ segmentationType = _json["segmentationType"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (advertiserId != null) { |
+ _json["advertiserId"] = advertiserId; |
+ } |
+ if (agencyId != null) { |
+ _json["agencyId"] = agencyId; |
+ } |
+ if (availabilityTimestamp != null) { |
+ _json["availabilityTimestamp"] = availabilityTimestamp; |
+ } |
+ if (segmentationId != null) { |
+ _json["segmentationId"] = segmentationId; |
+ } |
+ if (segmentationName != null) { |
+ _json["segmentationName"] = segmentationName; |
+ } |
+ if (segmentationType != null) { |
+ _json["segmentationType"] = segmentationType; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** A conversion containing data relevant to DoubleClick Search. */ |
+class Conversion { |
+ /** DS ad group ID. */ |
+ core.String adGroupId; |
+ |
+ /** DS ad ID. */ |
+ core.String adId; |
+ |
+ /** DS advertiser ID. */ |
+ core.String advertiserId; |
+ |
+ /** DS agency ID. */ |
+ core.String agencyId; |
+ |
+ /** DS campaign ID. */ |
+ core.String campaignId; |
+ |
+ /** DS click ID for the conversion. */ |
+ core.String clickId; |
+ |
+ /** Advertiser-provided ID for the conversion, also known as the order ID. */ |
+ core.String conversionId; |
+ |
+ /** |
+ * The time at which the conversion was last modified, in epoch millis UTC. |
+ */ |
+ core.String conversionModifiedTimestamp; |
+ |
+ /** The time at which the conversion took place, in epoch millis UTC. */ |
+ core.String conversionTimestamp; |
+ |
+ /** DS criterion (keyword) ID. */ |
+ core.String criterionId; |
+ |
+ /** |
+ * The currency code for the conversion's revenue. Should be in ISO 4217 |
+ * alphabetic (3-char) format. |
+ */ |
+ core.String currencyCode; |
+ |
+ /** |
+ * Custom dimensions for the conversion, which can be used to filter data in a |
+ * report. |
+ */ |
+ core.List<CustomDimension> customDimension; |
+ |
+ /** Custom metrics for the conversion. */ |
+ core.List<CustomMetric> customMetric; |
+ |
+ /** DS conversion ID. */ |
+ core.String dsConversionId; |
+ |
+ /** DS engine account ID. */ |
+ core.String engineAccountId; |
+ |
+ /** The advertiser-provided order id for the conversion. */ |
+ core.String floodlightOrderId; |
+ |
+ /** The quantity of this conversion, in millis. */ |
+ core.String quantityMillis; |
+ |
+ /** The revenue amount of this TRANSACTION conversion, in micros. */ |
+ core.String revenueMicros; |
+ |
+ /** |
+ * The numeric segmentation identifier (for example, DoubleClick Search |
+ * Floodlight activity ID). |
+ */ |
+ core.String segmentationId; |
+ |
+ /** |
+ * The friendly segmentation identifier (for example, DoubleClick Search |
+ * Floodlight activity name). |
+ */ |
+ core.String segmentationName; |
+ |
+ /** The segmentation type of this conversion (for example, FLOODLIGHT). */ |
+ core.String segmentationType; |
+ |
+ /** The state of the conversion, that is, either ACTIVE or DELETED. */ |
+ core.String state; |
+ |
+ /** |
+ * The type of the conversion, that is, either ACTION or TRANSACTION. An |
+ * ACTION conversion is an action by the user that has no monetarily |
+ * quantifiable value, while a TRANSACTION conversion is an action that does |
+ * have a monetarily quantifiable value. Examples are email list signups |
+ * (ACTION) versus ecommerce purchases (TRANSACTION). |
+ */ |
+ core.String type; |
+ |
+ |
+ Conversion(); |
+ |
+ Conversion.fromJson(core.Map _json) { |
+ if (_json.containsKey("adGroupId")) { |
+ adGroupId = _json["adGroupId"]; |
+ } |
+ if (_json.containsKey("adId")) { |
+ adId = _json["adId"]; |
+ } |
+ if (_json.containsKey("advertiserId")) { |
+ advertiserId = _json["advertiserId"]; |
+ } |
+ if (_json.containsKey("agencyId")) { |
+ agencyId = _json["agencyId"]; |
+ } |
+ if (_json.containsKey("campaignId")) { |
+ campaignId = _json["campaignId"]; |
+ } |
+ if (_json.containsKey("clickId")) { |
+ clickId = _json["clickId"]; |
+ } |
+ if (_json.containsKey("conversionId")) { |
+ conversionId = _json["conversionId"]; |
+ } |
+ if (_json.containsKey("conversionModifiedTimestamp")) { |
+ conversionModifiedTimestamp = _json["conversionModifiedTimestamp"]; |
+ } |
+ if (_json.containsKey("conversionTimestamp")) { |
+ conversionTimestamp = _json["conversionTimestamp"]; |
+ } |
+ if (_json.containsKey("criterionId")) { |
+ criterionId = _json["criterionId"]; |
+ } |
+ if (_json.containsKey("currencyCode")) { |
+ currencyCode = _json["currencyCode"]; |
+ } |
+ if (_json.containsKey("customDimension")) { |
+ customDimension = _json["customDimension"].map((value) => new CustomDimension.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("customMetric")) { |
+ customMetric = _json["customMetric"].map((value) => new CustomMetric.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("dsConversionId")) { |
+ dsConversionId = _json["dsConversionId"]; |
+ } |
+ if (_json.containsKey("engineAccountId")) { |
+ engineAccountId = _json["engineAccountId"]; |
+ } |
+ if (_json.containsKey("floodlightOrderId")) { |
+ floodlightOrderId = _json["floodlightOrderId"]; |
+ } |
+ if (_json.containsKey("quantityMillis")) { |
+ quantityMillis = _json["quantityMillis"]; |
+ } |
+ if (_json.containsKey("revenueMicros")) { |
+ revenueMicros = _json["revenueMicros"]; |
+ } |
+ if (_json.containsKey("segmentationId")) { |
+ segmentationId = _json["segmentationId"]; |
+ } |
+ if (_json.containsKey("segmentationName")) { |
+ segmentationName = _json["segmentationName"]; |
+ } |
+ if (_json.containsKey("segmentationType")) { |
+ segmentationType = _json["segmentationType"]; |
+ } |
+ if (_json.containsKey("state")) { |
+ state = _json["state"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (adGroupId != null) { |
+ _json["adGroupId"] = adGroupId; |
+ } |
+ if (adId != null) { |
+ _json["adId"] = adId; |
+ } |
+ if (advertiserId != null) { |
+ _json["advertiserId"] = advertiserId; |
+ } |
+ if (agencyId != null) { |
+ _json["agencyId"] = agencyId; |
+ } |
+ if (campaignId != null) { |
+ _json["campaignId"] = campaignId; |
+ } |
+ if (clickId != null) { |
+ _json["clickId"] = clickId; |
+ } |
+ if (conversionId != null) { |
+ _json["conversionId"] = conversionId; |
+ } |
+ if (conversionModifiedTimestamp != null) { |
+ _json["conversionModifiedTimestamp"] = conversionModifiedTimestamp; |
+ } |
+ if (conversionTimestamp != null) { |
+ _json["conversionTimestamp"] = conversionTimestamp; |
+ } |
+ if (criterionId != null) { |
+ _json["criterionId"] = criterionId; |
+ } |
+ if (currencyCode != null) { |
+ _json["currencyCode"] = currencyCode; |
+ } |
+ if (customDimension != null) { |
+ _json["customDimension"] = customDimension.map((value) => (value).toJson()).toList(); |
+ } |
+ if (customMetric != null) { |
+ _json["customMetric"] = customMetric.map((value) => (value).toJson()).toList(); |
+ } |
+ if (dsConversionId != null) { |
+ _json["dsConversionId"] = dsConversionId; |
+ } |
+ if (engineAccountId != null) { |
+ _json["engineAccountId"] = engineAccountId; |
+ } |
+ if (floodlightOrderId != null) { |
+ _json["floodlightOrderId"] = floodlightOrderId; |
+ } |
+ if (quantityMillis != null) { |
+ _json["quantityMillis"] = quantityMillis; |
+ } |
+ if (revenueMicros != null) { |
+ _json["revenueMicros"] = revenueMicros; |
+ } |
+ if (segmentationId != null) { |
+ _json["segmentationId"] = segmentationId; |
+ } |
+ if (segmentationName != null) { |
+ _json["segmentationName"] = segmentationName; |
+ } |
+ if (segmentationType != null) { |
+ _json["segmentationType"] = segmentationType; |
+ } |
+ if (state != null) { |
+ _json["state"] = state; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** A list of conversions. */ |
+class ConversionList { |
+ /** The conversions being requested. */ |
+ core.List<Conversion> conversion; |
+ |
+ /** |
+ * Identifies this as a ConversionList resource. Value: the fixed string |
+ * doubleclicksearch#conversionList. |
+ */ |
+ core.String kind; |
+ |
+ |
+ ConversionList(); |
+ |
+ ConversionList.fromJson(core.Map _json) { |
+ if (_json.containsKey("conversion")) { |
+ conversion = _json["conversion"].map((value) => new Conversion.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (conversion != null) { |
+ _json["conversion"] = conversion.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** A message containing the custome dimension. */ |
+class CustomDimension { |
+ /** Custom dimension name. */ |
+ core.String name; |
+ |
+ /** Custom dimension value. */ |
+ core.String value; |
+ |
+ |
+ CustomDimension(); |
+ |
+ CustomDimension.fromJson(core.Map _json) { |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** A message containing the custome metric. */ |
+class CustomMetric { |
+ /** Custom metric name. */ |
+ core.String name; |
+ |
+ /** Custom metric numeric value. */ |
+ core.double value; |
+ |
+ |
+ CustomMetric(); |
+ |
+ CustomMetric.fromJson(core.Map _json) { |
+ if (_json.containsKey("name")) { |
+ name = _json["name"]; |
+ } |
+ if (_json.containsKey("value")) { |
+ value = _json["value"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (name != null) { |
+ _json["name"] = name; |
+ } |
+ if (value != null) { |
+ _json["value"] = value; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportFiles { |
+ /** The size of this report file in bytes. */ |
+ core.String byteCount; |
+ |
+ /** Use this url to download the report file. */ |
+ core.String url; |
+ |
+ |
+ ReportFiles(); |
+ |
+ ReportFiles.fromJson(core.Map _json) { |
+ if (_json.containsKey("byteCount")) { |
+ byteCount = _json["byteCount"]; |
+ } |
+ if (_json.containsKey("url")) { |
+ url = _json["url"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (byteCount != null) { |
+ _json["byteCount"] = byteCount; |
+ } |
+ if (url != null) { |
+ _json["url"] = url; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * A DoubleClick Search report. This object contains the report request, some |
+ * report metadata such as currency code, and the generated report rows or |
+ * report files. |
+ */ |
+class Report { |
+ /** |
+ * Asynchronous report only. Contains a list of generated report files once |
+ * the report has succesfully completed. |
+ */ |
+ core.List<ReportFiles> files; |
+ |
+ /** Asynchronous report only. Id of the report. */ |
+ core.String id; |
+ |
+ /** |
+ * Asynchronous report only. True if and only if the report has completed |
+ * successfully and the report files are ready to be downloaded. |
+ */ |
+ core.bool isReportReady; |
+ |
+ /** |
+ * Identifies this as a Report resource. Value: the fixed string |
+ * doubleclicksearch#report. |
+ */ |
+ core.String kind; |
+ |
+ /** |
+ * The request that created the report. Optional fields not specified in the |
+ * original request are filled with default values. |
+ */ |
+ ReportRequest request; |
+ |
+ /** |
+ * The number of report rows generated by the report, not including headers. |
+ */ |
+ core.int rowCount; |
+ |
+ /** Synchronous report only. Generated report rows. */ |
+ core.List<ReportRow> rows; |
+ |
+ /** |
+ * The currency code of all monetary values produced in the report, including |
+ * values that are set by users (e.g., keyword bid settings) and metrics |
+ * (e.g., cost and revenue). The currency code of a report is determined by |
+ * the statisticsCurrency field of the report request. |
+ */ |
+ core.String statisticsCurrencyCode; |
+ |
+ /** |
+ * If all statistics of the report are sourced from the same time zone, this |
+ * would be it. Otherwise the field is unset. |
+ */ |
+ core.String statisticsTimeZone; |
+ |
+ |
+ Report(); |
+ |
+ Report.fromJson(core.Map _json) { |
+ if (_json.containsKey("files")) { |
+ files = _json["files"].map((value) => new ReportFiles.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("id")) { |
+ id = _json["id"]; |
+ } |
+ if (_json.containsKey("isReportReady")) { |
+ isReportReady = _json["isReportReady"]; |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("request")) { |
+ request = new ReportRequest.fromJson(_json["request"]); |
+ } |
+ if (_json.containsKey("rowCount")) { |
+ rowCount = _json["rowCount"]; |
+ } |
+ if (_json.containsKey("rows")) { |
+ rows = _json["rows"].map((value) => new ReportRow.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("statisticsCurrencyCode")) { |
+ statisticsCurrencyCode = _json["statisticsCurrencyCode"]; |
+ } |
+ if (_json.containsKey("statisticsTimeZone")) { |
+ statisticsTimeZone = _json["statisticsTimeZone"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (files != null) { |
+ _json["files"] = files.map((value) => (value).toJson()).toList(); |
+ } |
+ if (id != null) { |
+ _json["id"] = id; |
+ } |
+ if (isReportReady != null) { |
+ _json["isReportReady"] = isReportReady; |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (request != null) { |
+ _json["request"] = (request).toJson(); |
+ } |
+ if (rowCount != null) { |
+ _json["rowCount"] = rowCount; |
+ } |
+ if (rows != null) { |
+ _json["rows"] = rows; |
+ } |
+ if (statisticsCurrencyCode != null) { |
+ _json["statisticsCurrencyCode"] = statisticsCurrencyCode; |
+ } |
+ if (statisticsTimeZone != null) { |
+ _json["statisticsTimeZone"] = statisticsTimeZone; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** A request object used to create a DoubleClick Search report. */ |
+class ReportApiColumnSpec { |
+ /** Name of a DoubleClick Search column to include in the report. */ |
+ core.String columnName; |
+ |
+ /** |
+ * Segments a report by a custom dimension. The report must be scoped to an |
+ * advertiser or lower, and the custom dimension must already be set up in |
+ * DoubleClick Search. The custom dimension name, which appears in DoubleClick |
+ * Search, is case sensitive. |
+ */ |
+ core.String customDimensionName; |
+ |
+ /** |
+ * Inclusive day in YYYY-MM-DD format. When provided, this overrides the |
+ * overall time range of the report for this column only. Must be provided |
+ * together with startDate. |
+ */ |
+ core.String endDate; |
+ |
+ /** |
+ * Synchronous report only. Set to true to group by this column. Defaults to |
+ * false. |
+ */ |
+ core.bool groupByColumn; |
+ |
+ /** |
+ * Text used to identify this column in the report output; defaults to |
+ * columnName or savedColumnName when not specified. This can be used to |
+ * prevent collisions between DoubleClick Search columns and saved columns |
+ * with the same name. |
+ */ |
+ core.String headerText; |
+ |
+ /** |
+ * The platform that is used to provide data for the custom dimension. |
+ * Acceptable values are "Floodlight". |
+ */ |
+ core.String platformSource; |
+ |
+ /** |
+ * Name of a saved column to include in the report. The report must be scoped |
+ * at advertiser or lower, and this saved column must already be created in |
+ * the DoubleClick Search UI. |
+ */ |
+ core.String savedColumnName; |
+ |
+ /** |
+ * Inclusive date in YYYY-MM-DD format. When provided, this overrides the |
+ * overall time range of the report for this column only. Must be provided |
+ * together with endDate. |
+ */ |
+ core.String startDate; |
+ |
+ |
+ ReportApiColumnSpec(); |
+ |
+ ReportApiColumnSpec.fromJson(core.Map _json) { |
+ if (_json.containsKey("columnName")) { |
+ columnName = _json["columnName"]; |
+ } |
+ if (_json.containsKey("customDimensionName")) { |
+ customDimensionName = _json["customDimensionName"]; |
+ } |
+ if (_json.containsKey("endDate")) { |
+ endDate = _json["endDate"]; |
+ } |
+ if (_json.containsKey("groupByColumn")) { |
+ groupByColumn = _json["groupByColumn"]; |
+ } |
+ if (_json.containsKey("headerText")) { |
+ headerText = _json["headerText"]; |
+ } |
+ if (_json.containsKey("platformSource")) { |
+ platformSource = _json["platformSource"]; |
+ } |
+ if (_json.containsKey("savedColumnName")) { |
+ savedColumnName = _json["savedColumnName"]; |
+ } |
+ if (_json.containsKey("startDate")) { |
+ startDate = _json["startDate"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (columnName != null) { |
+ _json["columnName"] = columnName; |
+ } |
+ if (customDimensionName != null) { |
+ _json["customDimensionName"] = customDimensionName; |
+ } |
+ if (endDate != null) { |
+ _json["endDate"] = endDate; |
+ } |
+ if (groupByColumn != null) { |
+ _json["groupByColumn"] = groupByColumn; |
+ } |
+ if (headerText != null) { |
+ _json["headerText"] = headerText; |
+ } |
+ if (platformSource != null) { |
+ _json["platformSource"] = platformSource; |
+ } |
+ if (savedColumnName != null) { |
+ _json["savedColumnName"] = savedColumnName; |
+ } |
+ if (startDate != null) { |
+ _json["startDate"] = startDate; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportRequestFilters { |
+ /** |
+ * Column to perform the filter on. This can be a DoubleClick Search column or |
+ * a saved column. |
+ */ |
+ ReportApiColumnSpec column; |
+ |
+ /** |
+ * Operator to use in the filter. See the filter reference for a list of |
+ * available operators. |
+ */ |
+ core.String operator; |
+ |
+ /** |
+ * A list of values to filter the column value against. |
+ * |
+ * The values for Object must be JSON objects. It can consist of `num`, |
+ * `String`, `bool` and `null` as well as `Map` and `List` values. |
+ */ |
+ core.List<core.Object> values; |
+ |
+ |
+ ReportRequestFilters(); |
+ |
+ ReportRequestFilters.fromJson(core.Map _json) { |
+ if (_json.containsKey("column")) { |
+ column = new ReportApiColumnSpec.fromJson(_json["column"]); |
+ } |
+ if (_json.containsKey("operator")) { |
+ operator = _json["operator"]; |
+ } |
+ if (_json.containsKey("values")) { |
+ values = _json["values"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (column != null) { |
+ _json["column"] = (column).toJson(); |
+ } |
+ if (operator != null) { |
+ _json["operator"] = operator; |
+ } |
+ if (values != null) { |
+ _json["values"] = values; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** Not documented yet. */ |
+class ReportRequestOrderBy { |
+ /** |
+ * Column to perform the sort on. This can be a DoubleClick Search-defined |
+ * column or a saved column. |
+ */ |
+ ReportApiColumnSpec column; |
+ |
+ /** The sort direction, which is either ascending or descending. */ |
+ core.String sortOrder; |
+ |
+ |
+ ReportRequestOrderBy(); |
+ |
+ ReportRequestOrderBy.fromJson(core.Map _json) { |
+ if (_json.containsKey("column")) { |
+ column = new ReportApiColumnSpec.fromJson(_json["column"]); |
+ } |
+ if (_json.containsKey("sortOrder")) { |
+ sortOrder = _json["sortOrder"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (column != null) { |
+ _json["column"] = (column).toJson(); |
+ } |
+ if (sortOrder != null) { |
+ _json["sortOrder"] = sortOrder; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * The reportScope is a set of IDs that are used to determine which subset of |
+ * entities will be returned in the report. The full lineage of IDs from the |
+ * lowest scoped level desired up through agency is required. |
+ */ |
+class ReportRequestReportScope { |
+ /** DS ad group ID. */ |
+ core.String adGroupId; |
+ |
+ /** DS ad ID. */ |
+ core.String adId; |
+ |
+ /** DS advertiser ID. */ |
+ core.String advertiserId; |
+ |
+ /** DS agency ID. */ |
+ core.String agencyId; |
+ |
+ /** DS campaign ID. */ |
+ core.String campaignId; |
+ |
+ /** DS engine account ID. */ |
+ core.String engineAccountId; |
+ |
+ /** DS keyword ID. */ |
+ core.String keywordId; |
+ |
+ |
+ ReportRequestReportScope(); |
+ |
+ ReportRequestReportScope.fromJson(core.Map _json) { |
+ if (_json.containsKey("adGroupId")) { |
+ adGroupId = _json["adGroupId"]; |
+ } |
+ if (_json.containsKey("adId")) { |
+ adId = _json["adId"]; |
+ } |
+ if (_json.containsKey("advertiserId")) { |
+ advertiserId = _json["advertiserId"]; |
+ } |
+ if (_json.containsKey("agencyId")) { |
+ agencyId = _json["agencyId"]; |
+ } |
+ if (_json.containsKey("campaignId")) { |
+ campaignId = _json["campaignId"]; |
+ } |
+ if (_json.containsKey("engineAccountId")) { |
+ engineAccountId = _json["engineAccountId"]; |
+ } |
+ if (_json.containsKey("keywordId")) { |
+ keywordId = _json["keywordId"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (adGroupId != null) { |
+ _json["adGroupId"] = adGroupId; |
+ } |
+ if (adId != null) { |
+ _json["adId"] = adId; |
+ } |
+ if (advertiserId != null) { |
+ _json["advertiserId"] = advertiserId; |
+ } |
+ if (agencyId != null) { |
+ _json["agencyId"] = agencyId; |
+ } |
+ if (campaignId != null) { |
+ _json["campaignId"] = campaignId; |
+ } |
+ if (engineAccountId != null) { |
+ _json["engineAccountId"] = engineAccountId; |
+ } |
+ if (keywordId != null) { |
+ _json["keywordId"] = keywordId; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * If metrics are requested in a report, this argument will be used to restrict |
+ * the metrics to a specific time range. |
+ */ |
+class ReportRequestTimeRange { |
+ /** |
+ * Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See |
+ * additional references on how changed attribute reports work. |
+ */ |
+ core.DateTime changedAttributesSinceTimestamp; |
+ |
+ /** |
+ * Inclusive UTC timestamp in RFC format, e.g., 2013-07-16T10:16:23.555Z. See |
+ * additional references on how changed metrics reports work. |
+ */ |
+ core.DateTime changedMetricsSinceTimestamp; |
+ |
+ /** Inclusive date in YYYY-MM-DD format. */ |
+ core.String endDate; |
+ |
+ /** Inclusive date in YYYY-MM-DD format. */ |
+ core.String startDate; |
+ |
+ |
+ ReportRequestTimeRange(); |
+ |
+ ReportRequestTimeRange.fromJson(core.Map _json) { |
+ if (_json.containsKey("changedAttributesSinceTimestamp")) { |
+ changedAttributesSinceTimestamp = core.DateTime.parse(_json["changedAttributesSinceTimestamp"]); |
+ } |
+ if (_json.containsKey("changedMetricsSinceTimestamp")) { |
+ changedMetricsSinceTimestamp = core.DateTime.parse(_json["changedMetricsSinceTimestamp"]); |
+ } |
+ if (_json.containsKey("endDate")) { |
+ endDate = _json["endDate"]; |
+ } |
+ if (_json.containsKey("startDate")) { |
+ startDate = _json["startDate"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (changedAttributesSinceTimestamp != null) { |
+ _json["changedAttributesSinceTimestamp"] = (changedAttributesSinceTimestamp).toIso8601String(); |
+ } |
+ if (changedMetricsSinceTimestamp != null) { |
+ _json["changedMetricsSinceTimestamp"] = (changedMetricsSinceTimestamp).toIso8601String(); |
+ } |
+ if (endDate != null) { |
+ _json["endDate"] = endDate; |
+ } |
+ if (startDate != null) { |
+ _json["startDate"] = startDate; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** A request object used to create a DoubleClick Search report. */ |
+class ReportRequest { |
+ /** |
+ * The columns to include in the report. This includes both DoubleClick Search |
+ * columns and saved columns. For DoubleClick Search columns, only the |
+ * columnName parameter is required. For saved columns only the |
+ * savedColumnName parameter is required. Both columnName and savedColumnName |
+ * cannot be set in the same stanza. |
+ */ |
+ core.List<ReportApiColumnSpec> columns; |
+ |
+ /** |
+ * Format that the report should be returned in. Currently csv or tsv is |
+ * supported. |
+ */ |
+ core.String downloadFormat; |
+ |
+ /** A list of filters to be applied to the report. */ |
+ core.List<ReportRequestFilters> filters; |
+ |
+ /** |
+ * Determines if removed entities should be included in the report. Defaults |
+ * to false. Deprecated, please use includeRemovedEntities instead. |
+ */ |
+ core.bool includeDeletedEntities; |
+ |
+ /** |
+ * Determines if removed entities should be included in the report. Defaults |
+ * to false. |
+ */ |
+ core.bool includeRemovedEntities; |
+ |
+ /** |
+ * Asynchronous report only. The maximum number of rows per report file. A |
+ * large report is split into many files based on this field. Acceptable |
+ * values are 1000000 to 100000000, inclusive. |
+ */ |
+ core.int maxRowsPerFile; |
+ |
+ /** |
+ * Synchronous report only. A list of columns and directions defining sorting |
+ * to be performed on the report rows. |
+ */ |
+ core.List<ReportRequestOrderBy> orderBy; |
+ |
+ /** |
+ * The reportScope is a set of IDs that are used to determine which subset of |
+ * entities will be returned in the report. The full lineage of IDs from the |
+ * lowest scoped level desired up through agency is required. |
+ */ |
+ ReportRequestReportScope reportScope; |
+ |
+ /** |
+ * Determines the type of rows that are returned in the report. For example, |
+ * if you specify reportType: keyword, each row in the report will contain |
+ * data about a keyword. See the Types of Reports reference for the columns |
+ * that are available for each type. |
+ */ |
+ core.String reportType; |
+ |
+ /** |
+ * Synchronous report only. The maxinum number of rows to return; additional |
+ * rows are dropped. Acceptable values are 0 to 10000, inclusive. Defaults to |
+ * 10000. |
+ */ |
+ core.int rowCount; |
+ |
+ /** |
+ * Synchronous report only. Zero-based index of the first row to return. |
+ * Acceptable values are 0 to 50000, inclusive. Defaults to 0. |
+ */ |
+ core.int startRow; |
+ |
+ /** |
+ * Specifies the currency in which monetary will be returned. Possible values |
+ * are: usd, agency (valid if the report is scoped to agency or lower), |
+ * advertiser (valid if the report is scoped to * advertiser or lower), or |
+ * account (valid if the report is scoped to engine account or lower). |
+ */ |
+ core.String statisticsCurrency; |
+ |
+ /** |
+ * If metrics are requested in a report, this argument will be used to |
+ * restrict the metrics to a specific time range. |
+ */ |
+ ReportRequestTimeRange timeRange; |
+ |
+ /** |
+ * If true, the report would only be created if all the requested stat data |
+ * are sourced from a single timezone. Defaults to false. |
+ */ |
+ core.bool verifySingleTimeZone; |
+ |
+ |
+ ReportRequest(); |
+ |
+ ReportRequest.fromJson(core.Map _json) { |
+ if (_json.containsKey("columns")) { |
+ columns = _json["columns"].map((value) => new ReportApiColumnSpec.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("downloadFormat")) { |
+ downloadFormat = _json["downloadFormat"]; |
+ } |
+ if (_json.containsKey("filters")) { |
+ filters = _json["filters"].map((value) => new ReportRequestFilters.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("includeDeletedEntities")) { |
+ includeDeletedEntities = _json["includeDeletedEntities"]; |
+ } |
+ if (_json.containsKey("includeRemovedEntities")) { |
+ includeRemovedEntities = _json["includeRemovedEntities"]; |
+ } |
+ if (_json.containsKey("maxRowsPerFile")) { |
+ maxRowsPerFile = _json["maxRowsPerFile"]; |
+ } |
+ if (_json.containsKey("orderBy")) { |
+ orderBy = _json["orderBy"].map((value) => new ReportRequestOrderBy.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("reportScope")) { |
+ reportScope = new ReportRequestReportScope.fromJson(_json["reportScope"]); |
+ } |
+ if (_json.containsKey("reportType")) { |
+ reportType = _json["reportType"]; |
+ } |
+ if (_json.containsKey("rowCount")) { |
+ rowCount = _json["rowCount"]; |
+ } |
+ if (_json.containsKey("startRow")) { |
+ startRow = _json["startRow"]; |
+ } |
+ if (_json.containsKey("statisticsCurrency")) { |
+ statisticsCurrency = _json["statisticsCurrency"]; |
+ } |
+ if (_json.containsKey("timeRange")) { |
+ timeRange = new ReportRequestTimeRange.fromJson(_json["timeRange"]); |
+ } |
+ if (_json.containsKey("verifySingleTimeZone")) { |
+ verifySingleTimeZone = _json["verifySingleTimeZone"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (columns != null) { |
+ _json["columns"] = columns.map((value) => (value).toJson()).toList(); |
+ } |
+ if (downloadFormat != null) { |
+ _json["downloadFormat"] = downloadFormat; |
+ } |
+ if (filters != null) { |
+ _json["filters"] = filters.map((value) => (value).toJson()).toList(); |
+ } |
+ if (includeDeletedEntities != null) { |
+ _json["includeDeletedEntities"] = includeDeletedEntities; |
+ } |
+ if (includeRemovedEntities != null) { |
+ _json["includeRemovedEntities"] = includeRemovedEntities; |
+ } |
+ if (maxRowsPerFile != null) { |
+ _json["maxRowsPerFile"] = maxRowsPerFile; |
+ } |
+ if (orderBy != null) { |
+ _json["orderBy"] = orderBy.map((value) => (value).toJson()).toList(); |
+ } |
+ if (reportScope != null) { |
+ _json["reportScope"] = (reportScope).toJson(); |
+ } |
+ if (reportType != null) { |
+ _json["reportType"] = reportType; |
+ } |
+ if (rowCount != null) { |
+ _json["rowCount"] = rowCount; |
+ } |
+ if (startRow != null) { |
+ _json["startRow"] = startRow; |
+ } |
+ if (statisticsCurrency != null) { |
+ _json["statisticsCurrency"] = statisticsCurrency; |
+ } |
+ if (timeRange != null) { |
+ _json["timeRange"] = (timeRange).toJson(); |
+ } |
+ if (verifySingleTimeZone != null) { |
+ _json["verifySingleTimeZone"] = verifySingleTimeZone; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * A row in a DoubleClick Search report. |
+ * |
+ * Indicates the columns that are represented in this row. That is, each key |
+ * corresponds to a column with a non-empty cell in this row. |
+ */ |
+class ReportRow |
+ extends collection.MapBase<core.String, core.Object> { |
+ final core.Map _innerMap = {}; |
+ |
+ ReportRow(); |
+ |
+ ReportRow.fromJson(core.Map _json) { |
+ _json.forEach((core.String key, value) { |
+ this[key] = value; |
+ }); |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = {}; |
+ this.forEach((core.String key, value) { |
+ _json[key] = value; |
+ }); |
+ return _json; |
+ } |
+ |
+ core.Object operator [](core.Object key) |
+ => _innerMap[key]; |
+ |
+ operator []=(core.String key, core.Object value) { |
+ _innerMap[key] = value; |
+ } |
+ |
+ void clear() { |
+ _innerMap.clear(); |
+ } |
+ |
+ core.Iterable<core.String> get keys => _innerMap.keys; |
+ |
+ core.Object remove(core.Object key) => _innerMap.remove(key); |
+} |
+ |
+ |
+/** A saved column */ |
+class SavedColumn { |
+ /** |
+ * Identifies this as a SavedColumn resource. Value: the fixed string |
+ * doubleclicksearch#savedColumn. |
+ */ |
+ core.String kind; |
+ |
+ /** The name of the saved column. */ |
+ core.String savedColumnName; |
+ |
+ /** The type of data this saved column will produce. */ |
+ core.String type; |
+ |
+ |
+ SavedColumn(); |
+ |
+ SavedColumn.fromJson(core.Map _json) { |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ if (_json.containsKey("savedColumnName")) { |
+ savedColumnName = _json["savedColumnName"]; |
+ } |
+ if (_json.containsKey("type")) { |
+ type = _json["type"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ if (savedColumnName != null) { |
+ _json["savedColumnName"] = savedColumnName; |
+ } |
+ if (type != null) { |
+ _json["type"] = type; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** |
+ * A list of saved columns. Advertisers create saved columns to report on |
+ * Floodlight activities, Google Analytics goals, or custom KPIs. To request |
+ * reports with saved columns, you'll need the saved column names that are |
+ * available from this list. |
+ */ |
+class SavedColumnList { |
+ /** The saved columns being requested. */ |
+ core.List<SavedColumn> items; |
+ |
+ /** |
+ * Identifies this as a SavedColumnList resource. Value: the fixed string |
+ * doubleclicksearch#savedColumnList. |
+ */ |
+ core.String kind; |
+ |
+ |
+ SavedColumnList(); |
+ |
+ SavedColumnList.fromJson(core.Map _json) { |
+ if (_json.containsKey("items")) { |
+ items = _json["items"].map((value) => new SavedColumn.fromJson(value)).toList(); |
+ } |
+ if (_json.containsKey("kind")) { |
+ kind = _json["kind"]; |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (items != null) { |
+ _json["items"] = items.map((value) => (value).toJson()).toList(); |
+ } |
+ if (kind != null) { |
+ _json["kind"] = kind; |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The request to update availability. */ |
+class UpdateAvailabilityRequest { |
+ /** The availabilities being requested. */ |
+ core.List<Availability> availabilities; |
+ |
+ |
+ UpdateAvailabilityRequest(); |
+ |
+ UpdateAvailabilityRequest.fromJson(core.Map _json) { |
+ if (_json.containsKey("availabilities")) { |
+ availabilities = _json["availabilities"].map((value) => new Availability.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (availabilities != null) { |
+ _json["availabilities"] = availabilities.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |
+/** The response to a update availability request. */ |
+class UpdateAvailabilityResponse { |
+ /** The availabilities being returned. */ |
+ core.List<Availability> availabilities; |
+ |
+ |
+ UpdateAvailabilityResponse(); |
+ |
+ UpdateAvailabilityResponse.fromJson(core.Map _json) { |
+ if (_json.containsKey("availabilities")) { |
+ availabilities = _json["availabilities"].map((value) => new Availability.fromJson(value)).toList(); |
+ } |
+ } |
+ |
+ core.Map toJson() { |
+ var _json = new core.Map(); |
+ if (availabilities != null) { |
+ _json["availabilities"] = availabilities.map((value) => (value).toJson()).toList(); |
+ } |
+ return _json; |
+ } |
+} |
+ |
+ |