| // This is a generated file (see the discoveryapis_generator project). |
| |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: comment_references |
| // ignore_for_file: file_names |
| // ignore_for_file: library_names |
| // ignore_for_file: lines_longer_than_80_chars |
| // ignore_for_file: non_constant_identifier_names |
| // ignore_for_file: prefer_expression_function_bodies |
| // ignore_for_file: prefer_final_locals |
| // ignore_for_file: prefer_interpolation_to_compose_strings |
| // ignore_for_file: unnecessary_brace_in_string_interps |
| // ignore_for_file: unnecessary_cast |
| // ignore_for_file: unnecessary_lambdas |
| // ignore_for_file: unnecessary_parenthesis |
| // ignore_for_file: unnecessary_string_interpolations |
| |
| /// Ad Exchange Buyer API II - v2beta1 |
| /// |
| /// Accesses the latest features for managing Authorized Buyers accounts, |
| /// Real-Time Bidding configurations and auction metrics, and Marketplace |
| /// programmatic deals. |
| /// |
| /// For more information, see |
| /// <https://developers.google.com/authorized-buyers/apis/reference/rest/> |
| /// |
| /// Create an instance of [AdExchangeBuyerIIApi] to access these resources: |
| /// |
| /// - [AccountsResource] |
| /// - [AccountsClientsResource] |
| /// - [AccountsClientsInvitationsResource] |
| /// - [AccountsClientsUsersResource] |
| /// - [AccountsCreativesResource] |
| /// - [AccountsCreativesDealAssociationsResource] |
| /// - [AccountsFinalizedProposalsResource] |
| /// - [AccountsProductsResource] |
| /// - [AccountsProposalsResource] |
| /// - [AccountsPublisherProfilesResource] |
| /// - [BiddersResource] |
| /// - [BiddersAccountsResource] |
| /// - [BiddersAccountsFilterSetsResource] |
| /// - [BiddersAccountsFilterSetsBidMetricsResource] |
| /// - [BiddersAccountsFilterSetsBidResponseErrorsResource] |
| /// - [BiddersAccountsFilterSetsBidResponsesWithoutBidsResource] |
| /// - [BiddersAccountsFilterSetsFilteredBidRequestsResource] |
| /// - [BiddersAccountsFilterSetsFilteredBidsResource] |
| /// - [BiddersAccountsFilterSetsFilteredBidsCreativesResource] |
| /// - [BiddersAccountsFilterSetsFilteredBidsDetailsResource] |
| /// - [BiddersAccountsFilterSetsImpressionMetricsResource] |
| /// - [BiddersAccountsFilterSetsLosingBidsResource] |
| /// - [BiddersAccountsFilterSetsNonBillableWinningBidsResource] |
| /// - [BiddersFilterSetsResource] |
| /// - [BiddersFilterSetsBidMetricsResource] |
| /// - [BiddersFilterSetsBidResponseErrorsResource] |
| /// - [BiddersFilterSetsBidResponsesWithoutBidsResource] |
| /// - [BiddersFilterSetsFilteredBidRequestsResource] |
| /// - [BiddersFilterSetsFilteredBidsResource] |
| /// - [BiddersFilterSetsFilteredBidsCreativesResource] |
| /// - [BiddersFilterSetsFilteredBidsDetailsResource] |
| /// - [BiddersFilterSetsImpressionMetricsResource] |
| /// - [BiddersFilterSetsLosingBidsResource] |
| /// - [BiddersFilterSetsNonBillableWinningBidsResource] |
| library adexchangebuyer2.v2beta1; |
| |
| import 'dart:async' as async; |
| import 'dart:convert' as convert; |
| import 'dart:core' as core; |
| |
| import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; |
| import 'package:http/http.dart' as http; |
| |
| import '../src/user_agent.dart'; |
| |
| export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' |
| show ApiRequestError, DetailedApiRequestError; |
| |
| /// Accesses the latest features for managing Authorized Buyers accounts, |
| /// Real-Time Bidding configurations and auction metrics, and Marketplace |
| /// programmatic deals. |
| class AdExchangeBuyerIIApi { |
| /// Manage your Ad Exchange buyer account configuration |
| static const adexchangeBuyerScope = |
| 'https://www.googleapis.com/auth/adexchange.buyer'; |
| |
| final commons.ApiRequester _requester; |
| |
| AccountsResource get accounts => AccountsResource(_requester); |
| BiddersResource get bidders => BiddersResource(_requester); |
| |
| AdExchangeBuyerIIApi(http.Client client, |
| {core.String rootUrl = 'https://adexchangebuyer.googleapis.com/', |
| core.String servicePath = ''}) |
| : _requester = |
| commons.ApiRequester(client, rootUrl, servicePath, userAgent); |
| } |
| |
| class AccountsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsClientsResource get clients => AccountsClientsResource(_requester); |
| AccountsCreativesResource get creatives => |
| AccountsCreativesResource(_requester); |
| AccountsFinalizedProposalsResource get finalizedProposals => |
| AccountsFinalizedProposalsResource(_requester); |
| AccountsProductsResource get products => AccountsProductsResource(_requester); |
| AccountsProposalsResource get proposals => |
| AccountsProposalsResource(_requester); |
| AccountsPublisherProfilesResource get publisherProfiles => |
| AccountsPublisherProfilesResource(_requester); |
| |
| AccountsResource(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class AccountsClientsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsClientsInvitationsResource get invitations => |
| AccountsClientsInvitationsResource(_requester); |
| AccountsClientsUsersResource get users => |
| AccountsClientsUsersResource(_requester); |
| |
| AccountsClientsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates a new client buyer. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Unique numerical account ID for the buyer of which the |
| /// client buyer is a customer; the sponsor buyer to create a client for. |
| /// (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Client]. |
| /// |
| /// Completes with a [commons.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<Client> create( |
| Client request, |
| core.String accountId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Client.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Gets a client buyer with a given client account ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the client's sponsor buyer. |
| /// (required) |
| /// |
| /// [clientAccountId] - Numerical account ID of the client buyer to retrieve. |
| /// (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Client]. |
| /// |
| /// Completes with a [commons.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<Client> get( |
| core.String accountId, |
| core.String clientAccountId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Client.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Lists all the clients for the current sponsor buyer. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Unique numerical account ID of the sponsor buyer to list the |
| /// clients for. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer clients than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of ListClientsResponse.nextPageToken |
| /// returned from the previous call to the accounts.clients.list method. |
| /// |
| /// [partnerClientId] - Optional unique identifier (from the standpoint of an |
| /// Ad Exchange sponsor buyer partner) of the client to return. If specified, |
| /// at most one client will be returned in the response. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListClientsResponse]. |
| /// |
| /// Completes with a [commons.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<ListClientsResponse> list( |
| core.String accountId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String partnerClientId, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (partnerClientId != null) { |
| _queryParams['partnerClientId'] = [partnerClientId]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListClientsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Updates an existing client buyer. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Unique numerical account ID for the buyer of which the |
| /// client buyer is a customer; the sponsor buyer to update a client for. |
| /// (required) |
| /// |
| /// [clientAccountId] - Unique numerical account ID of the client to update. |
| /// (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Client]. |
| /// |
| /// Completes with a [commons.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<Client> update( |
| Client request, |
| core.String accountId, |
| core.String clientAccountId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PUT', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Client.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsClientsInvitationsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsClientsInvitationsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates and sends out an email invitation to access an Ad Exchange client |
| /// buyer account. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the client's sponsor buyer. |
| /// (required) |
| /// |
| /// [clientAccountId] - Numerical account ID of the client buyer that the user |
| /// should be associated with. (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ClientUserInvitation]. |
| /// |
| /// Completes with a [commons.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<ClientUserInvitation> create( |
| ClientUserInvitation request, |
| core.String accountId, |
| core.String clientAccountId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId') + |
| '/invitations'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ClientUserInvitation.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Retrieves an existing client user invitation. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the client's sponsor buyer. |
| /// (required) |
| /// |
| /// [clientAccountId] - Numerical account ID of the client buyer that the user |
| /// invitation to be retrieved is associated with. (required) |
| /// |
| /// [invitationId] - Numerical identifier of the user invitation to retrieve. |
| /// (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ClientUserInvitation]. |
| /// |
| /// Completes with a [commons.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<ClientUserInvitation> get( |
| core.String accountId, |
| core.String clientAccountId, |
| core.String invitationId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if (invitationId == null) { |
| throw core.ArgumentError('Parameter invitationId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId') + |
| '/invitations/' + |
| commons.Escaper.ecapeVariable('$invitationId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ClientUserInvitation.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Lists all the client users invitations for a client with a given account |
| /// ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the client's sponsor buyer. |
| /// (required) |
| /// |
| /// [clientAccountId] - Numerical account ID of the client buyer to list |
| /// invitations for. (required) You must either specify a string |
| /// representation of a numerical account identifier or the `-` character to |
| /// list all the invitations for all the clients of a given sponsor buyer. |
| /// |
| /// [pageSize] - Requested page size. Server may return fewer clients than |
| /// requested. If unspecified, server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListClientUserInvitationsResponse.nextPageToken returned from the previous |
| /// call to the clients.invitations.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListClientUserInvitationsResponse]. |
| /// |
| /// Completes with a [commons.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<ListClientUserInvitationsResponse> list( |
| core.String accountId, |
| core.String clientAccountId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId') + |
| '/invitations'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListClientUserInvitationsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsClientsUsersResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsClientsUsersResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Retrieves an existing client user. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the client's sponsor buyer. |
| /// (required) |
| /// |
| /// [clientAccountId] - Numerical account ID of the client buyer that the user |
| /// to be retrieved is associated with. (required) |
| /// |
| /// [userId] - Numerical identifier of the user to retrieve. (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ClientUser]. |
| /// |
| /// Completes with a [commons.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<ClientUser> get( |
| core.String accountId, |
| core.String clientAccountId, |
| core.String userId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if (userId == null) { |
| throw core.ArgumentError('Parameter userId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId') + |
| '/users/' + |
| commons.Escaper.ecapeVariable('$userId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => |
| ClientUser.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Lists all the known client users for a specified sponsor buyer account ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the sponsor buyer of the client to |
| /// list users for. (required) |
| /// |
| /// [clientAccountId] - The account ID of the client buyer to list users for. |
| /// (required) You must specify either a string representation of a numerical |
| /// account identifier or the `-` character to list all the client users for |
| /// all the clients of a given sponsor buyer. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer clients than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListClientUsersResponse.nextPageToken returned from the previous call to |
| /// the accounts.clients.users.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListClientUsersResponse]. |
| /// |
| /// Completes with a [commons.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<ListClientUsersResponse> list( |
| core.String accountId, |
| core.String clientAccountId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId') + |
| '/users'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListClientUsersResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Updates an existing client user. Only the user status can be changed on |
| /// update. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Numerical account ID of the client's sponsor buyer. |
| /// (required) |
| /// |
| /// [clientAccountId] - Numerical account ID of the client buyer that the user |
| /// to be retrieved is associated with. (required) |
| /// |
| /// [userId] - Numerical identifier of the user to retrieve. (required) |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ClientUser]. |
| /// |
| /// Completes with a [commons.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<ClientUser> update( |
| ClientUser request, |
| core.String accountId, |
| core.String clientAccountId, |
| core.String userId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (clientAccountId == null) { |
| throw core.ArgumentError('Parameter clientAccountId is required.'); |
| } |
| if (userId == null) { |
| throw core.ArgumentError('Parameter userId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/clients/' + |
| commons.Escaper.ecapeVariable('$clientAccountId') + |
| '/users/' + |
| commons.Escaper.ecapeVariable('$userId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PUT', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => |
| ClientUser.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsCreativesResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsCreativesDealAssociationsResource get dealAssociations => |
| AccountsCreativesDealAssociationsResource(_requester); |
| |
| AccountsCreativesResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates a creative. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account that this creative belongs to. Can be used to |
| /// filter the response of the creatives.list method. |
| /// |
| /// [duplicateIdMode] - Indicates if multiple creatives can share an ID or |
| /// not. Default is NO_DUPLICATES (one ID per creative). |
| /// Possible string values are: |
| /// - "NO_DUPLICATES" : Recommended. This means that an ID will be unique to a |
| /// single creative. Multiple creatives will not share an ID. |
| /// - "FORCE_ENABLE_DUPLICATE_IDS" : Not recommended. Using this option will |
| /// allow multiple creatives to share the same ID. Get and Update requests |
| /// will not be possible for any ID that has more than one creative |
| /// associated. (List will still function.) This is only intended for |
| /// backwards compatibility in cases where a single ID is already shared by |
| /// multiple creatives from previous APIs. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Creative]. |
| /// |
| /// Completes with a [commons.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<Creative> create( |
| Creative request, |
| core.String accountId, { |
| core.String duplicateIdMode, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (duplicateIdMode != null) { |
| _queryParams['duplicateIdMode'] = [duplicateIdMode]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Creative.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Gets a creative. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account the creative belongs to. |
| /// |
| /// [creativeId] - The ID of the creative to retrieve. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Creative]. |
| /// |
| /// Completes with a [commons.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<Creative> get( |
| core.String accountId, |
| core.String creativeId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Creative.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Lists creatives. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account to list the creatives from. Specify "-" to list |
| /// all creatives the current user has access to. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer creatives |
| /// than requested (due to timeout constraint) even if more are available via |
| /// another call. If unspecified, server will pick an appropriate default. |
| /// Acceptable values are 1 to 1000, inclusive. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativesResponse.next_page_token returned from the previous call to |
| /// 'ListCreatives' method. |
| /// |
| /// [query] - An optional query string to filter creatives. If no filter is |
| /// specified, all active creatives will be returned. Supported queries are: - |
| /// accountId=*account_id_string* - creativeId=*creative_id_string* - |
| /// dealsStatus: {approved, conditionally_approved, disapproved, not_checked} |
| /// - openAuctionStatus: {approved, conditionally_approved, disapproved, |
| /// not_checked} - attribute: {a numeric attribute from the list of |
| /// attributes} - disapprovalReason: {a reason from DisapprovalReason} |
| /// Example: 'accountId=12345 AND (dealsStatus:disapproved AND |
| /// disapprovalReason:unacceptable_content) OR attribute:47' |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativesResponse]. |
| /// |
| /// Completes with a [commons.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<ListCreativesResponse> list( |
| core.String accountId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String query, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (query != null) { |
| _queryParams['query'] = [query]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListCreativesResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Stops watching a creative. Will stop push notifications being sent to the |
| /// topics when the creative changes status. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account of the creative to stop notifications for. |
| /// |
| /// [creativeId] - The creative ID of the creative to stop notifications for. |
| /// Specify "-" to specify stopping account level notifications. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.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<Empty> stopWatching( |
| StopWatchingCreativeRequest request, |
| core.String accountId, |
| core.String creativeId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId') + |
| ':stopWatching'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Empty.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Updates a creative. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account that this creative belongs to. Can be used to |
| /// filter the response of the creatives.list method. |
| /// |
| /// [creativeId] - The buyer-defined creative ID of this creative. Can be used |
| /// to filter the response of the creatives.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Creative]. |
| /// |
| /// Completes with a [commons.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<Creative> update( |
| Creative request, |
| core.String accountId, |
| core.String creativeId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PUT', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Creative.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Watches a creative. Will result in push notifications being sent to the |
| /// topic when the creative changes status. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account of the creative to watch. |
| /// |
| /// [creativeId] - The creative ID to watch for status changes. Specify "-" to |
| /// watch all creatives under the above account. If both creative-level and |
| /// account-level notifications are sent, only a single notification will be |
| /// sent to the creative-level notification topic. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.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<Empty> watch( |
| WatchCreativeRequest request, |
| core.String accountId, |
| core.String creativeId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId') + |
| ':watch'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Empty.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsCreativesDealAssociationsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsCreativesDealAssociationsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Associate an existing deal with a creative. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account the creative belongs to. |
| /// |
| /// [creativeId] - The ID of the creative associated with the deal. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.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<Empty> add( |
| AddDealAssociationRequest request, |
| core.String accountId, |
| core.String creativeId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId') + |
| '/dealAssociations:add'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Empty.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// List all creative-deal associations. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account to list the associations from. Specify "-" to |
| /// list all creatives the current user has access to. |
| /// |
| /// [creativeId] - The creative ID to list the associations from. Specify "-" |
| /// to list all creatives under the above account. |
| /// |
| /// [pageSize] - Requested page size. Server may return fewer associations |
| /// than requested. If unspecified, server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListDealAssociationsResponse.next_page_token returned from the previous |
| /// call to 'ListDealAssociations' method. |
| /// |
| /// [query] - An optional query string to filter deal associations. If no |
| /// filter is specified, all associations will be returned. Supported queries |
| /// are: - accountId=*account_id_string* - creativeId=*creative_id_string* - |
| /// dealsId=*deals_id_string* - dealsStatus:{approved, conditionally_approved, |
| /// disapproved, not_checked} - openAuctionStatus:{approved, |
| /// conditionally_approved, disapproved, not_checked} Example: 'dealsId=12345 |
| /// AND dealsStatus:disapproved' |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListDealAssociationsResponse]. |
| /// |
| /// Completes with a [commons.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<ListDealAssociationsResponse> list( |
| core.String accountId, |
| core.String creativeId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String query, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if (query != null) { |
| _queryParams['query'] = [query]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId') + |
| '/dealAssociations'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListDealAssociationsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Remove the association between a deal and a creative. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - The account the creative belongs to. |
| /// |
| /// [creativeId] - The ID of the creative associated with the deal. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.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<Empty> remove( |
| RemoveDealAssociationRequest request, |
| core.String accountId, |
| core.String creativeId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (creativeId == null) { |
| throw core.ArgumentError('Parameter creativeId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/creatives/' + |
| commons.Escaper.ecapeVariable('$creativeId') + |
| '/dealAssociations:remove'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Empty.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsFinalizedProposalsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsFinalizedProposalsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List finalized proposals, regardless if a proposal is being renegotiated. |
| /// A filter expression (PQL query) may be specified to filter the results. |
| /// The notes will not be returned. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [filter] - An optional PQL filter query used to query for proposals. |
| /// Nested repeated fields, such as proposal.deals.targetingCriterion, cannot |
| /// be filtered. |
| /// |
| /// [filterSyntax] - Syntax the filter is written in. Current implementation |
| /// defaults to PQL but in the future it will be LIST_FILTER. |
| /// Possible string values are: |
| /// - "FILTER_SYNTAX_UNSPECIFIED" : A placeholder for an undefined filter |
| /// syntax. |
| /// - "PQL" : PQL query syntax. Visit |
| /// https://developers.google.com/ad-manager/api/pqlreference for PQL |
| /// documentation and examples. |
| /// - "LIST_FILTER" : API list filtering syntax. Read about syntax and usage |
| /// at |
| /// https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - The page token as returned from ListProposalsResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListProposalsResponse]. |
| /// |
| /// Completes with a [commons.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<ListProposalsResponse> list( |
| core.String accountId, { |
| core.String filter, |
| core.String filterSyntax, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (filterSyntax != null) { |
| _queryParams['filterSyntax'] = [filterSyntax]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/finalizedProposals'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListProposalsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsProductsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsProductsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Gets the requested product by ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [productId] - The ID for the product to get the head revision for. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Product]. |
| /// |
| /// Completes with a [commons.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<Product> get( |
| core.String accountId, |
| core.String productId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (productId == null) { |
| throw core.ArgumentError('Parameter productId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/products/' + |
| commons.Escaper.ecapeVariable('$productId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Product.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// List all products visible to the buyer (optionally filtered by the |
| /// specified PQL query). |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [filter] - An optional PQL query used to query for products. See |
| /// https://developers.google.com/ad-manager/docs/pqlreference for |
| /// documentation about PQL and examples. Nested repeated fields, such as |
| /// product.targetingCriterion.inclusions, cannot be filtered. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - The page token as returned from ListProductsResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListProductsResponse]. |
| /// |
| /// Completes with a [commons.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<ListProductsResponse> list( |
| core.String accountId, { |
| core.String filter, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/products'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListProductsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsProposalsResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsProposalsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Mark the proposal as accepted at the given revision number. If the number |
| /// does not match the server's revision number an `ABORTED` error message |
| /// will be returned. This call updates the proposal_state from `PROPOSED` to |
| /// `BUYER_ACCEPTED`, or from `SELLER_ACCEPTED` to `FINALIZED`. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The ID of the proposal to accept. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> accept( |
| AcceptProposalRequest request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId') + |
| ':accept'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Create a new note and attach it to the proposal. The note is assigned a |
| /// unique ID by the server. The proposal revision number will not increase |
| /// when associated with a new note. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The ID of the proposal to attach the note to. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Note]. |
| /// |
| /// Completes with a [commons.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<Note> addNote( |
| AddNoteRequest request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId') + |
| ':addNote'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Note.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Cancel an ongoing negotiation on a proposal. This does not cancel or end |
| /// serving for the deals if the proposal has been finalized, but only cancels |
| /// a negotiation unilaterally. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The ID of the proposal to cancel negotiation for. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> cancelNegotiation( |
| CancelNegotiationRequest request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId') + |
| ':cancelNegotiation'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Update the given proposal to indicate that setup has been completed. This |
| /// method is called by the buyer when the line items have been created on |
| /// their end for a finalized proposal and all the required creatives have |
| /// been uploaded using the creatives API. This call updates the |
| /// `is_setup_completed` bit on the proposal and also notifies the seller. The |
| /// server will advance the revision number of the most recent proposal. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The ID of the proposal to mark as setup completed. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> completeSetup( |
| CompleteSetupRequest request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId') + |
| ':completeSetup'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Create the given proposal. Each created proposal and any deals it contains |
| /// are assigned a unique ID by the server. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> create( |
| Proposal request, |
| core.String accountId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Gets a proposal given its ID. The proposal is returned at its head |
| /// revision. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The unique ID of the proposal |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> get( |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// List proposals. A filter expression (PQL query) may be specified to filter |
| /// the results. To retrieve all finalized proposals, regardless if a proposal |
| /// is being renegotiated, see the FinalizedProposals resource. Note that |
| /// Bidder/ChildSeat relationships differ from the usual behavior. A Bidder |
| /// account can only see its child seats' proposals by specifying the |
| /// ChildSeat's accountId in the request path. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [filter] - An optional PQL filter query used to query for proposals. |
| /// Nested repeated fields, such as proposal.deals.targetingCriterion, cannot |
| /// be filtered. |
| /// |
| /// [filterSyntax] - Syntax the filter is written in. Current implementation |
| /// defaults to PQL but in the future it will be LIST_FILTER. |
| /// Possible string values are: |
| /// - "FILTER_SYNTAX_UNSPECIFIED" : A placeholder for an undefined filter |
| /// syntax. |
| /// - "PQL" : PQL query syntax. Visit |
| /// https://developers.google.com/ad-manager/api/pqlreference for PQL |
| /// documentation and examples. |
| /// - "LIST_FILTER" : API list filtering syntax. Read about syntax and usage |
| /// at |
| /// https://developers.google.com/authorized-buyers/apis/guides/v2/list-filters. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - The page token as returned from ListProposalsResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListProposalsResponse]. |
| /// |
| /// Completes with a [commons.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<ListProposalsResponse> list( |
| core.String accountId, { |
| core.String filter, |
| core.String filterSyntax, |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (filter != null) { |
| _queryParams['filter'] = [filter]; |
| } |
| if (filterSyntax != null) { |
| _queryParams['filterSyntax'] = [filterSyntax]; |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListProposalsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Update the given proposal to pause serving. This method will set the |
| /// `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to true for all |
| /// deals in the proposal. It is a no-op to pause an already-paused proposal. |
| /// It is an error to call PauseProposal for a proposal that is not finalized |
| /// or renegotiating. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The ID of the proposal to pause. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> pause( |
| PauseProposalRequest request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId') + |
| ':pause'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Update the given proposal to resume serving. This method will set the |
| /// `DealServingMetadata.DealPauseStatus.has_buyer_paused` bit to false for |
| /// all deals in the proposal. Note that if the `has_seller_paused` bit is |
| /// also set, serving will not resume until the seller also resumes. It is a |
| /// no-op to resume an already-running proposal. It is an error to call |
| /// ResumeProposal for a proposal that is not finalized or renegotiating. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The ID of the proposal to resume. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> resume( |
| ResumeProposalRequest request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId') + |
| ':resume'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Update the given proposal at the client known revision number. If the |
| /// server revision has advanced since the passed-in |
| /// `proposal.proposal_revision`, an `ABORTED` error message will be returned. |
| /// Only the buyer-modifiable fields of the proposal will be updated. Note |
| /// that the deals in the proposal will be updated to match the passed-in |
| /// copy. If a passed-in deal does not have a `deal_id`, the server will |
| /// assign a new unique ID and create the deal. If passed-in deal has a |
| /// `deal_id`, it will be updated to match the passed-in copy. Any existing |
| /// deals not present in the passed-in proposal will be deleted. It is an |
| /// error to pass in a deal with a `deal_id` not present at head. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [proposalId] - The unique ID of the proposal. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Proposal]. |
| /// |
| /// Completes with a [commons.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<Proposal> update( |
| Proposal request, |
| core.String accountId, |
| core.String proposalId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (proposalId == null) { |
| throw core.ArgumentError('Parameter proposalId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/proposals/' + |
| commons.Escaper.ecapeVariable('$proposalId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'PUT', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Proposal.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class AccountsPublisherProfilesResource { |
| final commons.ApiRequester _requester; |
| |
| AccountsPublisherProfilesResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Gets the requested publisher profile by id. |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [publisherProfileId] - The id for the publisher profile to get. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [PublisherProfile]. |
| /// |
| /// Completes with a [commons.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<PublisherProfile> get( |
| core.String accountId, |
| core.String publisherProfileId, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (publisherProfileId == null) { |
| throw core.ArgumentError('Parameter publisherProfileId is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/publisherProfiles/' + |
| commons.Escaper.ecapeVariable('$publisherProfileId'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => PublisherProfile.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// List all publisher profiles visible to the buyer |
| /// |
| /// Request parameters: |
| /// |
| /// [accountId] - Account ID of the buyer. |
| /// |
| /// [pageSize] - Specify the number of results to include per page. |
| /// |
| /// [pageToken] - The page token as return from ListPublisherProfilesResponse. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListPublisherProfilesResponse]. |
| /// |
| /// Completes with a [commons.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<ListPublisherProfilesResponse> list( |
| core.String accountId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (accountId == null) { |
| throw core.ArgumentError('Parameter accountId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/accounts/' + |
| commons.Escaper.ecapeVariable('$accountId') + |
| '/publisherProfiles'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListPublisherProfilesResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsResource get accounts => BiddersAccountsResource(_requester); |
| BiddersFilterSetsResource get filterSets => |
| BiddersFilterSetsResource(_requester); |
| |
| BiddersResource(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class BiddersAccountsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsResource get filterSets => |
| BiddersAccountsFilterSetsResource(_requester); |
| |
| BiddersAccountsResource(commons.ApiRequester client) : _requester = client; |
| } |
| |
| class BiddersAccountsFilterSetsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsBidMetricsResource get bidMetrics => |
| BiddersAccountsFilterSetsBidMetricsResource(_requester); |
| BiddersAccountsFilterSetsBidResponseErrorsResource get bidResponseErrors => |
| BiddersAccountsFilterSetsBidResponseErrorsResource(_requester); |
| BiddersAccountsFilterSetsBidResponsesWithoutBidsResource |
| get bidResponsesWithoutBids => |
| BiddersAccountsFilterSetsBidResponsesWithoutBidsResource(_requester); |
| BiddersAccountsFilterSetsFilteredBidRequestsResource |
| get filteredBidRequests => |
| BiddersAccountsFilterSetsFilteredBidRequestsResource(_requester); |
| BiddersAccountsFilterSetsFilteredBidsResource get filteredBids => |
| BiddersAccountsFilterSetsFilteredBidsResource(_requester); |
| BiddersAccountsFilterSetsImpressionMetricsResource get impressionMetrics => |
| BiddersAccountsFilterSetsImpressionMetricsResource(_requester); |
| BiddersAccountsFilterSetsLosingBidsResource get losingBids => |
| BiddersAccountsFilterSetsLosingBidsResource(_requester); |
| BiddersAccountsFilterSetsNonBillableWinningBidsResource |
| get nonBillableWinningBids => |
| BiddersAccountsFilterSetsNonBillableWinningBidsResource(_requester); |
| |
| BiddersAccountsFilterSetsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Creates the specified filter set for the account with the given account |
| /// ID. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [ownerName] - Name of the owner (bidder or account) of the filter set to |
| /// be created. For example: - For a bidder-level filter set for bidder 123: |
| /// `bidders/123` - For an account-level filter set for the buyer account |
| /// representing bidder 123: `bidders/123/accounts/123` - For an account-level |
| /// filter set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+$". |
| /// |
| /// [isTransient] - Whether the filter set is transient, or should be |
| /// persisted indefinitely. By default, filter sets are not transient. If |
| /// transient, it will be available for at least 1 hour after creation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [FilterSet]. |
| /// |
| /// Completes with a [commons.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<FilterSet> create( |
| FilterSet request, |
| core.String ownerName, { |
| core.bool isTransient, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (ownerName == null) { |
| throw core.ArgumentError('Parameter ownerName is required.'); |
| } |
| if (isTransient != null) { |
| _queryParams['isTransient'] = ['${isTransient}']; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$ownerName') + |
| '/filterSets'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => FilterSet.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Deletes the requested filter set from the account with the given account |
| /// ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Full name of the resource to delete. For example: - For a |
| /// bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For |
| /// an account-level filter set for the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.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<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Empty.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Retrieves the requested filter set for the account with the given account |
| /// ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Full name of the resource being requested. For example: - For a |
| /// bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For |
| /// an account-level filter set for the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [FilterSet]. |
| /// |
| /// Completes with a [commons.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<FilterSet> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => FilterSet.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Lists all filter sets for the account with the given account ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [ownerName] - Name of the owner (bidder or account) of the filter sets to |
| /// be listed. For example: - For a bidder-level filter set for bidder 123: |
| /// `bidders/123` - For an account-level filter set for the buyer account |
| /// representing bidder 123: `bidders/123/accounts/123` - For an account-level |
| /// filter set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListFilterSetsResponse.nextPageToken returned from the previous call to |
| /// the accounts.filterSets.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListFilterSetsResponse]. |
| /// |
| /// Completes with a [commons.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<ListFilterSetsResponse> list( |
| core.String ownerName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (ownerName == null) { |
| throw core.ArgumentError('Parameter ownerName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$ownerName') + |
| '/filterSets'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListFilterSetsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsBidMetricsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsBidMetricsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists all metrics that are measured in terms of number of bids. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListBidMetricsResponse.nextPageToken returned from the previous call to |
| /// the bidMetrics.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBidMetricsResponse]. |
| /// |
| /// Completes with a [commons.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<ListBidMetricsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/bidMetrics'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListBidMetricsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsBidResponseErrorsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsBidResponseErrorsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all errors that occurred in bid responses, with the number of bid |
| /// responses affected for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListBidResponseErrorsResponse.nextPageToken returned from the previous |
| /// call to the bidResponseErrors.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBidResponseErrorsResponse]. |
| /// |
| /// Completes with a [commons.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<ListBidResponseErrorsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/bidResponseErrors'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListBidResponseErrorsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsBidResponsesWithoutBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsBidResponsesWithoutBidsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which bid responses were considered to have no |
| /// applicable bids, with the number of bid responses affected for each |
| /// reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListBidResponsesWithoutBidsResponse.nextPageToken returned from the |
| /// previous call to the bidResponsesWithoutBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBidResponsesWithoutBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListBidResponsesWithoutBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/bidResponsesWithoutBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListBidResponsesWithoutBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsFilteredBidRequestsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsFilteredBidRequestsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons that caused a bid request not to be sent for an |
| /// impression, with the number of bid requests not sent for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListFilteredBidRequestsResponse.nextPageToken returned from the previous |
| /// call to the filteredBidRequests.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListFilteredBidRequestsResponse]. |
| /// |
| /// Completes with a [commons.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<ListFilteredBidRequestsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBidRequests'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListFilteredBidRequestsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsFilteredBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsFilteredBidsCreativesResource get creatives => |
| BiddersAccountsFilterSetsFilteredBidsCreativesResource(_requester); |
| BiddersAccountsFilterSetsFilteredBidsDetailsResource get details => |
| BiddersAccountsFilterSetsFilteredBidsDetailsResource(_requester); |
| |
| BiddersAccountsFilterSetsFilteredBidsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which bids were filtered, with the number of bids |
| /// filtered for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListFilteredBidsResponse.nextPageToken returned from the previous call to |
| /// the filteredBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListFilteredBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListFilteredBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListFilteredBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsFilteredBidsCreativesResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsFilteredBidsCreativesResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all creatives associated with a specific reason for which bids were |
| /// filtered, with the number of bids filtered for each creative. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [creativeStatusId] - The ID of the creative status for which to retrieve a |
| /// breakdown by creative. See |
| /// [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes). |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativeStatusBreakdownByCreativeResponse.nextPageToken returned from |
| /// the previous call to the filteredBids.creatives.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativeStatusBreakdownByCreativeResponse]. |
| /// |
| /// Completes with a [commons.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<ListCreativeStatusBreakdownByCreativeResponse> list( |
| core.String filterSetName, |
| core.int creativeStatusId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (creativeStatusId == null) { |
| throw core.ArgumentError('Parameter creativeStatusId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBids/' + |
| commons.Escaper.ecapeVariable('$creativeStatusId') + |
| '/creatives'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListCreativeStatusBreakdownByCreativeResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsFilteredBidsDetailsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsFilteredBidsDetailsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all details associated with a specific reason for which bids were |
| /// filtered, with the number of bids filtered for each detail. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [creativeStatusId] - The ID of the creative status for which to retrieve a |
| /// breakdown by detail. See |
| /// [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes). |
| /// Details are only available for statuses 10, 14, 15, 17, 18, 19, 86, and |
| /// 87. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativeStatusBreakdownByDetailResponse.nextPageToken returned from |
| /// the previous call to the filteredBids.details.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativeStatusBreakdownByDetailResponse]. |
| /// |
| /// Completes with a [commons.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<ListCreativeStatusBreakdownByDetailResponse> list( |
| core.String filterSetName, |
| core.int creativeStatusId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (creativeStatusId == null) { |
| throw core.ArgumentError('Parameter creativeStatusId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBids/' + |
| commons.Escaper.ecapeVariable('$creativeStatusId') + |
| '/details'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListCreativeStatusBreakdownByDetailResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsImpressionMetricsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsImpressionMetricsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists all metrics that are measured in terms of number of impressions. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListImpressionMetricsResponse.nextPageToken returned from the previous |
| /// call to the impressionMetrics.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListImpressionMetricsResponse]. |
| /// |
| /// Completes with a [commons.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<ListImpressionMetricsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/impressionMetrics'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListImpressionMetricsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsLosingBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsLosingBidsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which bids lost in the auction, with the number of |
| /// bids that lost for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListLosingBidsResponse.nextPageToken returned from the previous call to |
| /// the losingBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListLosingBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListLosingBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/losingBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListLosingBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersAccountsFilterSetsNonBillableWinningBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersAccountsFilterSetsNonBillableWinningBidsResource( |
| commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which winning bids were not billable, with the number |
| /// of bids not billed for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/accounts/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListNonBillableWinningBidsResponse.nextPageToken returned from the |
| /// previous call to the nonBillableWinningBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListNonBillableWinningBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListNonBillableWinningBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/nonBillableWinningBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListNonBillableWinningBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsBidMetricsResource get bidMetrics => |
| BiddersFilterSetsBidMetricsResource(_requester); |
| BiddersFilterSetsBidResponseErrorsResource get bidResponseErrors => |
| BiddersFilterSetsBidResponseErrorsResource(_requester); |
| BiddersFilterSetsBidResponsesWithoutBidsResource |
| get bidResponsesWithoutBids => |
| BiddersFilterSetsBidResponsesWithoutBidsResource(_requester); |
| BiddersFilterSetsFilteredBidRequestsResource get filteredBidRequests => |
| BiddersFilterSetsFilteredBidRequestsResource(_requester); |
| BiddersFilterSetsFilteredBidsResource get filteredBids => |
| BiddersFilterSetsFilteredBidsResource(_requester); |
| BiddersFilterSetsImpressionMetricsResource get impressionMetrics => |
| BiddersFilterSetsImpressionMetricsResource(_requester); |
| BiddersFilterSetsLosingBidsResource get losingBids => |
| BiddersFilterSetsLosingBidsResource(_requester); |
| BiddersFilterSetsNonBillableWinningBidsResource get nonBillableWinningBids => |
| BiddersFilterSetsNonBillableWinningBidsResource(_requester); |
| |
| BiddersFilterSetsResource(commons.ApiRequester client) : _requester = client; |
| |
| /// Creates the specified filter set for the account with the given account |
| /// ID. |
| /// |
| /// [request] - The metadata request object. |
| /// |
| /// Request parameters: |
| /// |
| /// [ownerName] - Name of the owner (bidder or account) of the filter set to |
| /// be created. For example: - For a bidder-level filter set for bidder 123: |
| /// `bidders/123` - For an account-level filter set for the buyer account |
| /// representing bidder 123: `bidders/123/accounts/123` - For an account-level |
| /// filter set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456` |
| /// Value must have pattern "^bidders/[^/]+$". |
| /// |
| /// [isTransient] - Whether the filter set is transient, or should be |
| /// persisted indefinitely. By default, filter sets are not transient. If |
| /// transient, it will be available for at least 1 hour after creation. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [FilterSet]. |
| /// |
| /// Completes with a [commons.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<FilterSet> create( |
| FilterSet request, |
| core.String ownerName, { |
| core.bool isTransient, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (request != null) { |
| _body = convert.json.encode(request.toJson()); |
| } |
| if (ownerName == null) { |
| throw core.ArgumentError('Parameter ownerName is required.'); |
| } |
| if (isTransient != null) { |
| _queryParams['isTransient'] = ['${isTransient}']; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$ownerName') + |
| '/filterSets'; |
| |
| final _response = _requester.request( |
| _url, |
| 'POST', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => FilterSet.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Deletes the requested filter set from the account with the given account |
| /// ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Full name of the resource to delete. For example: - For a |
| /// bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For |
| /// an account-level filter set for the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [Empty]. |
| /// |
| /// Completes with a [commons.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<Empty> delete( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'DELETE', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => Empty.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Retrieves the requested filter set for the account with the given account |
| /// ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [name] - Full name of the resource being requested. For example: - For a |
| /// bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For |
| /// an account-level filter set for the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [FilterSet]. |
| /// |
| /// Completes with a [commons.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<FilterSet> get( |
| core.String name, { |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (name == null) { |
| throw core.ArgumentError('Parameter name is required.'); |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + commons.Escaper.ecapeVariableReserved('$name'); |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => FilterSet.fromJson(data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| |
| /// Lists all filter sets for the account with the given account ID. |
| /// |
| /// Request parameters: |
| /// |
| /// [ownerName] - Name of the owner (bidder or account) of the filter sets to |
| /// be listed. For example: - For a bidder-level filter set for bidder 123: |
| /// `bidders/123` - For an account-level filter set for the buyer account |
| /// representing bidder 123: `bidders/123/accounts/123` - For an account-level |
| /// filter set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456` |
| /// Value must have pattern "^bidders/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListFilterSetsResponse.nextPageToken returned from the previous call to |
| /// the accounts.filterSets.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListFilterSetsResponse]. |
| /// |
| /// Completes with a [commons.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<ListFilterSetsResponse> list( |
| core.String ownerName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (ownerName == null) { |
| throw core.ArgumentError('Parameter ownerName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$ownerName') + |
| '/filterSets'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListFilterSetsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsBidMetricsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsBidMetricsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists all metrics that are measured in terms of number of bids. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListBidMetricsResponse.nextPageToken returned from the previous call to |
| /// the bidMetrics.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBidMetricsResponse]. |
| /// |
| /// Completes with a [commons.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<ListBidMetricsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/bidMetrics'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListBidMetricsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsBidResponseErrorsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsBidResponseErrorsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all errors that occurred in bid responses, with the number of bid |
| /// responses affected for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListBidResponseErrorsResponse.nextPageToken returned from the previous |
| /// call to the bidResponseErrors.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBidResponseErrorsResponse]. |
| /// |
| /// Completes with a [commons.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<ListBidResponseErrorsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/bidResponseErrors'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListBidResponseErrorsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsBidResponsesWithoutBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsBidResponsesWithoutBidsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which bid responses were considered to have no |
| /// applicable bids, with the number of bid responses affected for each |
| /// reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListBidResponsesWithoutBidsResponse.nextPageToken returned from the |
| /// previous call to the bidResponsesWithoutBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListBidResponsesWithoutBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListBidResponsesWithoutBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/bidResponsesWithoutBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListBidResponsesWithoutBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsFilteredBidRequestsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsFilteredBidRequestsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons that caused a bid request not to be sent for an |
| /// impression, with the number of bid requests not sent for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListFilteredBidRequestsResponse.nextPageToken returned from the previous |
| /// call to the filteredBidRequests.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListFilteredBidRequestsResponse]. |
| /// |
| /// Completes with a [commons.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<ListFilteredBidRequestsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBidRequests'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListFilteredBidRequestsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsFilteredBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsFilteredBidsCreativesResource get creatives => |
| BiddersFilterSetsFilteredBidsCreativesResource(_requester); |
| BiddersFilterSetsFilteredBidsDetailsResource get details => |
| BiddersFilterSetsFilteredBidsDetailsResource(_requester); |
| |
| BiddersFilterSetsFilteredBidsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which bids were filtered, with the number of bids |
| /// filtered for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListFilteredBidsResponse.nextPageToken returned from the previous call to |
| /// the filteredBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListFilteredBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListFilteredBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListFilteredBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsFilteredBidsCreativesResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsFilteredBidsCreativesResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all creatives associated with a specific reason for which bids were |
| /// filtered, with the number of bids filtered for each creative. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [creativeStatusId] - The ID of the creative status for which to retrieve a |
| /// breakdown by creative. See |
| /// [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes). |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativeStatusBreakdownByCreativeResponse.nextPageToken returned from |
| /// the previous call to the filteredBids.creatives.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativeStatusBreakdownByCreativeResponse]. |
| /// |
| /// Completes with a [commons.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<ListCreativeStatusBreakdownByCreativeResponse> list( |
| core.String filterSetName, |
| core.int creativeStatusId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (creativeStatusId == null) { |
| throw core.ArgumentError('Parameter creativeStatusId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBids/' + |
| commons.Escaper.ecapeVariable('$creativeStatusId') + |
| '/creatives'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListCreativeStatusBreakdownByCreativeResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsFilteredBidsDetailsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsFilteredBidsDetailsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all details associated with a specific reason for which bids were |
| /// filtered, with the number of bids filtered for each detail. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [creativeStatusId] - The ID of the creative status for which to retrieve a |
| /// breakdown by detail. See |
| /// [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes). |
| /// Details are only available for statuses 10, 14, 15, 17, 18, 19, 86, and |
| /// 87. |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListCreativeStatusBreakdownByDetailResponse.nextPageToken returned from |
| /// the previous call to the filteredBids.details.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListCreativeStatusBreakdownByDetailResponse]. |
| /// |
| /// Completes with a [commons.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<ListCreativeStatusBreakdownByDetailResponse> list( |
| core.String filterSetName, |
| core.int creativeStatusId, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (creativeStatusId == null) { |
| throw core.ArgumentError('Parameter creativeStatusId is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/filteredBids/' + |
| commons.Escaper.ecapeVariable('$creativeStatusId') + |
| '/details'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListCreativeStatusBreakdownByDetailResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsImpressionMetricsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsImpressionMetricsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// Lists all metrics that are measured in terms of number of impressions. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListImpressionMetricsResponse.nextPageToken returned from the previous |
| /// call to the impressionMetrics.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListImpressionMetricsResponse]. |
| /// |
| /// Completes with a [commons.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<ListImpressionMetricsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/impressionMetrics'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListImpressionMetricsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsLosingBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsLosingBidsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which bids lost in the auction, with the number of |
| /// bids that lost for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListLosingBidsResponse.nextPageToken returned from the previous call to |
| /// the losingBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListLosingBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListLosingBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/losingBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListLosingBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| class BiddersFilterSetsNonBillableWinningBidsResource { |
| final commons.ApiRequester _requester; |
| |
| BiddersFilterSetsNonBillableWinningBidsResource(commons.ApiRequester client) |
| : _requester = client; |
| |
| /// List all reasons for which winning bids were not billable, with the number |
| /// of bids not billed for each reason. |
| /// |
| /// Request parameters: |
| /// |
| /// [filterSetName] - Name of the filter set that should be applied to the |
| /// requested metrics. For example: - For a bidder-level filter set for bidder |
| /// 123: `bidders/123/filterSets/abc` - For an account-level filter set for |
| /// the buyer account representing bidder 123: |
| /// `bidders/123/accounts/123/filterSets/abc` - For an account-level filter |
| /// set for the child seat buyer account 456 whose bidder is 123: |
| /// `bidders/123/accounts/456/filterSets/abc` |
| /// Value must have pattern "^bidders/[^/]+/filterSets/[^/]+$". |
| /// |
| /// [pageSize] - Requested page size. The server may return fewer results than |
| /// requested. If unspecified, the server will pick an appropriate default. |
| /// |
| /// [pageToken] - A token identifying a page of results the server should |
| /// return. Typically, this is the value of |
| /// ListNonBillableWinningBidsResponse.nextPageToken returned from the |
| /// previous call to the nonBillableWinningBids.list method. |
| /// |
| /// [$fields] - Selector specifying which fields to include in a partial |
| /// response. |
| /// |
| /// Completes with a [ListNonBillableWinningBidsResponse]. |
| /// |
| /// Completes with a [commons.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<ListNonBillableWinningBidsResponse> list( |
| core.String filterSetName, { |
| core.int pageSize, |
| core.String pageToken, |
| core.String $fields, |
| }) { |
| core.String _url; |
| final _queryParams = <core.String, core.List<core.String>>{}; |
| commons.Media _uploadMedia; |
| commons.UploadOptions _uploadOptions; |
| var _downloadOptions = commons.DownloadOptions.Metadata; |
| core.String _body; |
| |
| if (filterSetName == null) { |
| throw core.ArgumentError('Parameter filterSetName is required.'); |
| } |
| if (pageSize != null) { |
| _queryParams['pageSize'] = ['${pageSize}']; |
| } |
| if (pageToken != null) { |
| _queryParams['pageToken'] = [pageToken]; |
| } |
| if ($fields != null) { |
| _queryParams['fields'] = [$fields]; |
| } |
| |
| _url = 'v2beta1/' + |
| commons.Escaper.ecapeVariableReserved('$filterSetName') + |
| '/nonBillableWinningBids'; |
| |
| final _response = _requester.request( |
| _url, |
| 'GET', |
| body: _body, |
| queryParams: _queryParams, |
| uploadOptions: _uploadOptions, |
| uploadMedia: _uploadMedia, |
| downloadOptions: _downloadOptions, |
| ); |
| return _response.then( |
| (data) => ListNonBillableWinningBidsResponse.fromJson( |
| data as core.Map<core.String, core.dynamic>), |
| ); |
| } |
| } |
| |
| /// An absolute date range, specified by its start date and end date. The |
| /// supported range of dates begins 30 days before today and ends today. |
| /// Validity checked upon filter set creation. If a filter set with an absolute |
| /// date range is run at a later date more than 30 days after start_date, it |
| /// will fail. |
| class AbsoluteDateRange { |
| /// The end date of the range (inclusive). Must be within the 30 days leading |
| /// up to current date, and must be equal to or after start_date. |
| Date endDate; |
| |
| /// The start date of the range (inclusive). Must be within the 30 days |
| /// leading up to current date, and must be equal to or before end_date. |
| Date startDate; |
| |
| AbsoluteDateRange(); |
| |
| AbsoluteDateRange.fromJson(core.Map _json) { |
| if (_json.containsKey('endDate')) { |
| endDate = Date.fromJson( |
| _json['endDate'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('startDate')) { |
| startDate = Date.fromJson( |
| _json['startDate'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (endDate != null) { |
| _json['endDate'] = endDate.toJson(); |
| } |
| if (startDate != null) { |
| _json['startDate'] = startDate.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request to accept a proposal. |
| class AcceptProposalRequest { |
| /// The last known client revision number of the proposal. |
| core.String proposalRevision; |
| |
| AcceptProposalRequest(); |
| |
| AcceptProposalRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('proposalRevision')) { |
| proposalRevision = _json['proposalRevision'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (proposalRevision != null) { |
| _json['proposalRevision'] = proposalRevision; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents size of a single ad slot, or a creative. |
| class AdSize { |
| /// The height of the ad slot in pixels. This field will be present only when |
| /// size type is `PIXEL`. |
| core.String height; |
| |
| /// The size type of the ad slot. |
| /// Possible string values are: |
| /// - "SIZE_TYPE_UNSPECIFIED" : A placeholder for an undefined size type. |
| /// - "PIXEL" : Ad slot with size specified by height and width in pixels. |
| /// - "INTERSTITIAL" : Special size to describe an interstitial ad slot. |
| /// - "NATIVE" : Native (mobile) ads rendered by the publisher. |
| /// - "FLUID" : Fluid size (i.e., responsive size) can be resized |
| /// automatically with the change of outside environment. |
| core.String sizeType; |
| |
| /// The width of the ad slot in pixels. This field will be present only when |
| /// size type is `PIXEL`. |
| core.String width; |
| |
| AdSize(); |
| |
| AdSize.fromJson(core.Map _json) { |
| if (_json.containsKey('height')) { |
| height = _json['height'] as core.String; |
| } |
| if (_json.containsKey('sizeType')) { |
| sizeType = _json['sizeType'] as core.String; |
| } |
| if (_json.containsKey('width')) { |
| width = _json['width'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (height != null) { |
| _json['height'] = height; |
| } |
| if (sizeType != null) { |
| _json['sizeType'] = sizeType; |
| } |
| if (width != null) { |
| _json['width'] = width; |
| } |
| return _json; |
| } |
| } |
| |
| /// Detected ad technology provider information. |
| class AdTechnologyProviders { |
| /// The detected ad technology provider IDs for this creative. See |
| /// https://storage.googleapis.com/adx-rtb-dictionaries/providers.csv for |
| /// mapping of provider ID to provided name, a privacy policy URL, and a list |
| /// of domains which can be attributed to the provider. If the creative |
| /// contains provider IDs that are outside of those listed in the |
| /// `BidRequest.adslot.consented_providers_settings.consented_providers` field |
| /// on the (Google bid |
| /// protocol)[https://developers.google.com/authorized-buyers/rtb/downloads/realtime-bidding-proto] |
| /// and the |
| /// `BidRequest.user.ext.consented_providers_settings.consented_providers` |
| /// field on the (OpenRTB |
| /// protocol)[https://developers.google.com/authorized-buyers/rtb/downloads/openrtb-adx-proto], |
| /// and a bid is submitted with that creative for an impression that will |
| /// serve to an EEA user, the bid will be filtered before the auction. |
| core.List<core.String> detectedProviderIds; |
| |
| /// Whether the creative contains an unidentified ad technology provider. If |
| /// true for a given creative, any bid submitted with that creative for an |
| /// impression that will serve to an EEA user will be filtered before the |
| /// auction. |
| core.bool hasUnidentifiedProvider; |
| |
| AdTechnologyProviders(); |
| |
| AdTechnologyProviders.fromJson(core.Map _json) { |
| if (_json.containsKey('detectedProviderIds')) { |
| detectedProviderIds = (_json['detectedProviderIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('hasUnidentifiedProvider')) { |
| hasUnidentifiedProvider = _json['hasUnidentifiedProvider'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (detectedProviderIds != null) { |
| _json['detectedProviderIds'] = detectedProviderIds; |
| } |
| if (hasUnidentifiedProvider != null) { |
| _json['hasUnidentifiedProvider'] = hasUnidentifiedProvider; |
| } |
| return _json; |
| } |
| } |
| |
| /// A request for associating a deal and a creative. |
| class AddDealAssociationRequest { |
| /// The association between a creative and a deal that should be added. |
| CreativeDealAssociation association; |
| |
| AddDealAssociationRequest(); |
| |
| AddDealAssociationRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('association')) { |
| association = CreativeDealAssociation.fromJson( |
| _json['association'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (association != null) { |
| _json['association'] = association.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for adding a note to a given proposal. |
| class AddNoteRequest { |
| /// Details of the note to add. |
| Note note; |
| |
| AddNoteRequest(); |
| |
| AddNoteRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('note')) { |
| note = |
| Note.fromJson(_json['note'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (note != null) { |
| _json['note'] = note.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. The app type the restriction applies to for mobile device. |
| class AppContext { |
| /// The app types this restriction applies to. |
| core.List<core.String> appTypes; |
| |
| AppContext(); |
| |
| AppContext.fromJson(core.Map _json) { |
| if (_json.containsKey('appTypes')) { |
| appTypes = (_json['appTypes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (appTypes != null) { |
| _json['appTypes'] = appTypes; |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. The auction type the restriction applies to. |
| class AuctionContext { |
| /// The auction types this restriction applies to. |
| core.List<core.String> auctionTypes; |
| |
| AuctionContext(); |
| |
| AuctionContext.fromJson(core.Map _json) { |
| if (_json.containsKey('auctionTypes')) { |
| auctionTypes = (_json['auctionTypes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (auctionTypes != null) { |
| _json['auctionTypes'] = auctionTypes; |
| } |
| return _json; |
| } |
| } |
| |
| /// The set of metrics that are measured in numbers of bids, representing how |
| /// many bids with the specified dimension values were considered eligible at |
| /// each stage of the bidding funnel; |
| class BidMetricsRow { |
| /// The number of bids that Ad Exchange received from the buyer. |
| MetricValue bids; |
| |
| /// The number of bids that were permitted to compete in the auction. |
| MetricValue bidsInAuction; |
| |
| /// The number of bids for which the buyer was billed. |
| MetricValue billedImpressions; |
| |
| /// The number of bids that won the auction. |
| MetricValue impressionsWon; |
| |
| /// The number of bids for which the corresponding impression was measurable |
| /// for viewability (as defined by Active View). |
| MetricValue measurableImpressions; |
| |
| /// The number of bids that won the auction and also won the mediation |
| /// waterfall (if any). |
| MetricValue reachedQueries; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| /// The number of bids for which the corresponding impression was viewable (as |
| /// defined by Active View). |
| MetricValue viewableImpressions; |
| |
| BidMetricsRow(); |
| |
| BidMetricsRow.fromJson(core.Map _json) { |
| if (_json.containsKey('bids')) { |
| bids = MetricValue.fromJson( |
| _json['bids'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('bidsInAuction')) { |
| bidsInAuction = MetricValue.fromJson( |
| _json['bidsInAuction'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('billedImpressions')) { |
| billedImpressions = MetricValue.fromJson( |
| _json['billedImpressions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('impressionsWon')) { |
| impressionsWon = MetricValue.fromJson( |
| _json['impressionsWon'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('measurableImpressions')) { |
| measurableImpressions = MetricValue.fromJson( |
| _json['measurableImpressions'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('reachedQueries')) { |
| reachedQueries = MetricValue.fromJson( |
| _json['reachedQueries'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('viewableImpressions')) { |
| viewableImpressions = MetricValue.fromJson( |
| _json['viewableImpressions'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bids != null) { |
| _json['bids'] = bids.toJson(); |
| } |
| if (bidsInAuction != null) { |
| _json['bidsInAuction'] = bidsInAuction.toJson(); |
| } |
| if (billedImpressions != null) { |
| _json['billedImpressions'] = billedImpressions.toJson(); |
| } |
| if (impressionsWon != null) { |
| _json['impressionsWon'] = impressionsWon.toJson(); |
| } |
| if (measurableImpressions != null) { |
| _json['measurableImpressions'] = measurableImpressions.toJson(); |
| } |
| if (reachedQueries != null) { |
| _json['reachedQueries'] = reachedQueries.toJson(); |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| if (viewableImpressions != null) { |
| _json['viewableImpressions'] = viewableImpressions.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The number of impressions with the specified dimension values that were |
| /// considered to have no applicable bids, as described by the specified status. |
| class BidResponseWithoutBidsStatusRow { |
| /// The number of impressions for which there was a bid response with the |
| /// specified status. |
| MetricValue impressionCount; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| /// The status specifying why the bid responses were considered to have no |
| /// applicable bids. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : A placeholder for an undefined status. This value |
| /// will never be returned in responses. |
| /// - "RESPONSES_WITHOUT_BIDS" : The response had no bids. |
| /// - "RESPONSES_WITHOUT_BIDS_FOR_ACCOUNT" : The response had no bids for the |
| /// specified account, though it may have included bids on behalf of other |
| /// accounts. Applies if: 1. Request is on behalf of a bidder and an account |
| /// filter is present. 2. Request is on behalf of a child seat. |
| /// - "RESPONSES_WITHOUT_BIDS_FOR_DEAL" : The response had no bids for the |
| /// specified deal, though it may have included bids on other deals on behalf |
| /// of the account to which the deal belongs. If request is on behalf of a |
| /// bidder and an account filter is not present, this also includes responses |
| /// that have bids on behalf of accounts other than the account to which the |
| /// deal belongs. |
| core.String status; |
| |
| BidResponseWithoutBidsStatusRow(); |
| |
| BidResponseWithoutBidsStatusRow.fromJson(core.Map _json) { |
| if (_json.containsKey('impressionCount')) { |
| impressionCount = MetricValue.fromJson( |
| _json['impressionCount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('status')) { |
| status = _json['status'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (impressionCount != null) { |
| _json['impressionCount'] = impressionCount.toJson(); |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| if (status != null) { |
| _json['status'] = status; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a buyer of inventory. Each buyer is identified by a unique |
| /// Authorized Buyers account ID. |
| class Buyer { |
| /// Authorized Buyers account ID of the buyer. |
| core.String accountId; |
| |
| Buyer(); |
| |
| Buyer.fromJson(core.Map _json) { |
| if (_json.containsKey('accountId')) { |
| accountId = _json['accountId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountId != null) { |
| _json['accountId'] = accountId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The number of impressions with the specified dimension values where the |
| /// corresponding bid request or bid response was not successful, as described |
| /// by the specified callout status. |
| class CalloutStatusRow { |
| /// The ID of the callout status. See |
| /// [callout-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/callout-status-codes). |
| core.int calloutStatusId; |
| |
| /// The number of impressions for which there was a bid request or bid |
| /// response with the specified callout status. |
| MetricValue impressionCount; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| CalloutStatusRow(); |
| |
| CalloutStatusRow.fromJson(core.Map _json) { |
| if (_json.containsKey('calloutStatusId')) { |
| calloutStatusId = _json['calloutStatusId'] as core.int; |
| } |
| if (_json.containsKey('impressionCount')) { |
| impressionCount = MetricValue.fromJson( |
| _json['impressionCount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (calloutStatusId != null) { |
| _json['calloutStatusId'] = calloutStatusId; |
| } |
| if (impressionCount != null) { |
| _json['impressionCount'] = impressionCount.toJson(); |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request to cancel an ongoing negotiation. |
| class CancelNegotiationRequest { |
| CancelNegotiationRequest(); |
| |
| CancelNegotiationRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// A client resource represents a client buyer—an agency, a brand, or an |
| /// advertiser customer of the sponsor buyer. Users associated with the client |
| /// buyer have restricted access to the Marketplace and certain other sections |
| /// of the Authorized Buyers UI based on the role granted to the client buyer. |
| /// All fields are required unless otherwise specified. |
| class Client { |
| /// The globally-unique numerical ID of the client. The value of this field is |
| /// ignored in create and update operations. |
| core.String clientAccountId; |
| |
| /// Name used to represent this client to publishers. You may have multiple |
| /// clients that map to the same entity, but for each client the combination |
| /// of `clientName` and entity must be unique. You can specify this field as |
| /// empty. |
| core.String clientName; |
| |
| /// Numerical identifier of the client entity. The entity can be an |
| /// advertiser, a brand, or an agency. This identifier is unique among all the |
| /// entities with the same type. The value of this field is ignored if the |
| /// entity type is not provided. A list of all known advertisers with their |
| /// identifiers is available in the |
| /// [advertisers.txt](https://storage.googleapis.com/adx-rtb-dictionaries/advertisers.txt) |
| /// file. A list of all known brands with their identifiers is available in |
| /// the |
| /// [brands.txt](https://storage.googleapis.com/adx-rtb-dictionaries/brands.txt) |
| /// file. A list of all known agencies with their identifiers is available in |
| /// the |
| /// [agencies.txt](https://storage.googleapis.com/adx-rtb-dictionaries/agencies.txt) |
| /// file. |
| core.String entityId; |
| |
| /// The name of the entity. This field is automatically fetched based on the |
| /// type and ID. The value of this field is ignored in create and update |
| /// operations. |
| core.String entityName; |
| |
| /// An optional field for specifying the type of the client entity: |
| /// `ADVERTISER`, `BRAND`, or `AGENCY`. |
| /// Possible string values are: |
| /// - "ENTITY_TYPE_UNSPECIFIED" : A placeholder for an undefined client entity |
| /// type. Should not be used. |
| /// - "ADVERTISER" : An advertiser. |
| /// - "BRAND" : A brand. |
| /// - "AGENCY" : An advertising agency. |
| /// - "ENTITY_TYPE_UNCLASSIFIED" : An explicit value for a client that was not |
| /// yet classified as any particular entity. |
| core.String entityType; |
| |
| /// Optional arbitrary unique identifier of this client buyer from the |
| /// standpoint of its Ad Exchange sponsor buyer. This field can be used to |
| /// associate a client buyer with the identifier in the namespace of its |
| /// sponsor buyer, lookup client buyers by that identifier and verify whether |
| /// an Ad Exchange counterpart of a given client buyer already exists. If |
| /// present, must be unique among all the client buyers for its Ad Exchange |
| /// sponsor buyer. |
| core.String partnerClientId; |
| |
| /// The role which is assigned to the client buyer. Each role implies a set of |
| /// permissions granted to the client. Must be one of `CLIENT_DEAL_VIEWER`, |
| /// `CLIENT_DEAL_NEGOTIATOR` or `CLIENT_DEAL_APPROVER`. |
| /// Possible string values are: |
| /// - "CLIENT_ROLE_UNSPECIFIED" : A placeholder for an undefined client role. |
| /// - "CLIENT_DEAL_VIEWER" : Users associated with this client can see |
| /// publisher deal offers in the Marketplace. They can neither negotiate |
| /// proposals nor approve deals. If this client is visible to publishers, they |
| /// can send deal proposals to this client. |
| /// - "CLIENT_DEAL_NEGOTIATOR" : Users associated with this client can respond |
| /// to deal proposals sent to them by publishers. They can also initiate deal |
| /// proposals of their own. |
| /// - "CLIENT_DEAL_APPROVER" : Users associated with this client can approve |
| /// eligible deals on your behalf. Some deals may still explicitly require |
| /// publisher finalization. If this role is not selected, the sponsor buyer |
| /// will need to manually approve each of their deals. |
| core.String role; |
| |
| /// The status of the client buyer. |
| /// Possible string values are: |
| /// - "CLIENT_STATUS_UNSPECIFIED" : A placeholder for an undefined client |
| /// status. |
| /// - "DISABLED" : A client that is currently disabled. |
| /// - "ACTIVE" : A client that is currently active. |
| core.String status; |
| |
| /// Whether the client buyer will be visible to sellers. |
| core.bool visibleToSeller; |
| |
| Client(); |
| |
| Client.fromJson(core.Map _json) { |
| if (_json.containsKey('clientAccountId')) { |
| clientAccountId = _json['clientAccountId'] as core.String; |
| } |
| if (_json.containsKey('clientName')) { |
| clientName = _json['clientName'] as core.String; |
| } |
| if (_json.containsKey('entityId')) { |
| entityId = _json['entityId'] as core.String; |
| } |
| if (_json.containsKey('entityName')) { |
| entityName = _json['entityName'] as core.String; |
| } |
| if (_json.containsKey('entityType')) { |
| entityType = _json['entityType'] as core.String; |
| } |
| if (_json.containsKey('partnerClientId')) { |
| partnerClientId = _json['partnerClientId'] as core.String; |
| } |
| if (_json.containsKey('role')) { |
| role = _json['role'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = _json['status'] as core.String; |
| } |
| if (_json.containsKey('visibleToSeller')) { |
| visibleToSeller = _json['visibleToSeller'] as core.bool; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (clientAccountId != null) { |
| _json['clientAccountId'] = clientAccountId; |
| } |
| if (clientName != null) { |
| _json['clientName'] = clientName; |
| } |
| if (entityId != null) { |
| _json['entityId'] = entityId; |
| } |
| if (entityName != null) { |
| _json['entityName'] = entityName; |
| } |
| if (entityType != null) { |
| _json['entityType'] = entityType; |
| } |
| if (partnerClientId != null) { |
| _json['partnerClientId'] = partnerClientId; |
| } |
| if (role != null) { |
| _json['role'] = role; |
| } |
| if (status != null) { |
| _json['status'] = status; |
| } |
| if (visibleToSeller != null) { |
| _json['visibleToSeller'] = visibleToSeller; |
| } |
| return _json; |
| } |
| } |
| |
| /// A client user is created under a client buyer and has restricted access to |
| /// the Marketplace and certain other sections of the Authorized Buyers UI based |
| /// on the role granted to the associated client buyer. The only way a new |
| /// client user can be created is via accepting an email invitation (see the |
| /// accounts.clients.invitations.create method). All fields are required unless |
| /// otherwise specified. |
| class ClientUser { |
| /// Numerical account ID of the client buyer with which the user is |
| /// associated; the buyer must be a client of the current sponsor buyer. The |
| /// value of this field is ignored in an update operation. |
| core.String clientAccountId; |
| |
| /// User's email address. The value of this field is ignored in an update |
| /// operation. |
| core.String email; |
| |
| /// The status of the client user. |
| /// Possible string values are: |
| /// - "USER_STATUS_UNSPECIFIED" : A placeholder for an undefined user status. |
| /// - "PENDING" : A user who was already created but hasn't accepted the |
| /// invitation yet. |
| /// - "ACTIVE" : A user that is currently active. |
| /// - "DISABLED" : A user that is currently disabled. |
| core.String status; |
| |
| /// The unique numerical ID of the client user that has accepted an |
| /// invitation. The value of this field is ignored in an update operation. |
| core.String userId; |
| |
| ClientUser(); |
| |
| ClientUser.fromJson(core.Map _json) { |
| if (_json.containsKey('clientAccountId')) { |
| clientAccountId = _json['clientAccountId'] as core.String; |
| } |
| if (_json.containsKey('email')) { |
| email = _json['email'] as core.String; |
| } |
| if (_json.containsKey('status')) { |
| status = _json['status'] as core.String; |
| } |
| if (_json.containsKey('userId')) { |
| userId = _json['userId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (clientAccountId != null) { |
| _json['clientAccountId'] = clientAccountId; |
| } |
| if (email != null) { |
| _json['email'] = email; |
| } |
| if (status != null) { |
| _json['status'] = status; |
| } |
| if (userId != null) { |
| _json['userId'] = userId; |
| } |
| return _json; |
| } |
| } |
| |
| /// An invitation for a new client user to get access to the Authorized Buyers |
| /// UI. All fields are required unless otherwise specified. |
| class ClientUserInvitation { |
| /// Numerical account ID of the client buyer that the invited user is |
| /// associated with. The value of this field is ignored in create operations. |
| core.String clientAccountId; |
| |
| /// The email address to which the invitation is sent. Email addresses should |
| /// be unique among all client users under each sponsor buyer. |
| core.String email; |
| |
| /// The unique numerical ID of the invitation that is sent to the user. The |
| /// value of this field is ignored in create operations. |
| core.String invitationId; |
| |
| ClientUserInvitation(); |
| |
| ClientUserInvitation.fromJson(core.Map _json) { |
| if (_json.containsKey('clientAccountId')) { |
| clientAccountId = _json['clientAccountId'] as core.String; |
| } |
| if (_json.containsKey('email')) { |
| email = _json['email'] as core.String; |
| } |
| if (_json.containsKey('invitationId')) { |
| invitationId = _json['invitationId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (clientAccountId != null) { |
| _json['clientAccountId'] = clientAccountId; |
| } |
| if (email != null) { |
| _json['email'] = email; |
| } |
| if (invitationId != null) { |
| _json['invitationId'] = invitationId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message for indicating that the proposal's setup step is complete. |
| class CompleteSetupRequest { |
| CompleteSetupRequest(); |
| |
| CompleteSetupRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// Contains information on how a buyer or seller can be reached. |
| class ContactInformation { |
| /// Email address for the contact. |
| core.String email; |
| |
| /// The name of the contact. |
| core.String name; |
| |
| ContactInformation(); |
| |
| ContactInformation.fromJson(core.Map _json) { |
| if (_json.containsKey('email')) { |
| email = _json['email'] as core.String; |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (email != null) { |
| _json['email'] = email; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. Shows any corrections that were applied to this creative. |
| class Correction { |
| /// The contexts for the correction. |
| core.List<ServingContext> contexts; |
| |
| /// Additional details about what was corrected. |
| core.List<core.String> details; |
| |
| /// The type of correction that was applied to the creative. |
| /// Possible string values are: |
| /// - "CORRECTION_TYPE_UNSPECIFIED" : The correction type is unknown. Refer to |
| /// the details for more information. |
| /// - "VENDOR_IDS_ADDED" : The ad's declared vendors did not match the vendors |
| /// that were detected. The detected vendors were added. |
| /// - "SSL_ATTRIBUTE_REMOVED" : The ad had the SSL attribute declared but was |
| /// not SSL-compliant. The SSL attribute was removed. |
| /// - "FLASH_FREE_ATTRIBUTE_REMOVED" : The ad was declared as Flash-free but |
| /// contained Flash, so the Flash-free attribute was removed. |
| /// - "FLASH_FREE_ATTRIBUTE_ADDED" : The ad was not declared as Flash-free but |
| /// it did not reference any flash content, so the Flash-free attribute was |
| /// added. |
| /// - "REQUIRED_ATTRIBUTE_ADDED" : The ad did not declare a required creative |
| /// attribute. The attribute was added. |
| /// - "REQUIRED_VENDOR_ADDED" : The ad did not declare a required technology |
| /// vendor. The technology vendor was added. |
| /// - "SSL_ATTRIBUTE_ADDED" : The ad did not declare the SSL attribute but was |
| /// SSL-compliant, so the SSL attribute was added. |
| /// - "IN_BANNER_VIDEO_ATTRIBUTE_ADDED" : Properties consistent with In-banner |
| /// video were found, so an In-Banner Video attribute was added. |
| /// - "MRAID_ATTRIBUTE_ADDED" : The ad makes calls to the MRAID API so the |
| /// MRAID attribute was added. |
| /// - "FLASH_ATTRIBUTE_REMOVED" : The ad unnecessarily declared the Flash |
| /// attribute, so the Flash attribute was removed. |
| /// - "VIDEO_IN_SNIPPET_ATTRIBUTE_ADDED" : The ad contains video content. |
| core.String type; |
| |
| Correction(); |
| |
| Correction.fromJson(core.Map _json) { |
| if (_json.containsKey('contexts')) { |
| contexts = (_json['contexts'] as core.List) |
| .map<ServingContext>((value) => ServingContext.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('details')) { |
| details = (_json['details'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('type')) { |
| type = _json['type'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (contexts != null) { |
| _json['contexts'] = contexts.map((value) => value.toJson()).toList(); |
| } |
| if (details != null) { |
| _json['details'] = details; |
| } |
| if (type != null) { |
| _json['type'] = type; |
| } |
| return _json; |
| } |
| } |
| |
| /// A creative and its classification data. |
| class Creative { |
| /// The account that this creative belongs to. Can be used to filter the |
| /// response of the creatives.list method. |
| core.String accountId; |
| |
| /// The link to AdChoices destination page. |
| core.String adChoicesDestinationUrl; |
| |
| /// Output only. The detected ad technology providers. |
| AdTechnologyProviders adTechnologyProviders; |
| |
| /// The name of the company being advertised in the creative. |
| core.String advertiserName; |
| |
| /// The agency ID for this creative. |
| core.String agencyId; |
| |
| /// Output only. The last update timestamp of the creative via API. |
| core.String apiUpdateTime; |
| |
| /// All attributes for the ads that may be shown from this creative. Can be |
| /// used to filter the response of the creatives.list method. |
| core.List<core.String> attributes; |
| |
| /// The set of destination URLs for the creative. |
| core.List<core.String> clickThroughUrls; |
| |
| /// Output only. Shows any corrections that were applied to this creative. |
| core.List<Correction> corrections; |
| |
| /// The buyer-defined creative ID of this creative. Can be used to filter the |
| /// response of the creatives.list method. |
| core.String creativeId; |
| |
| /// Output only. The top-level deals status of this creative. If disapproved, |
| /// an entry for 'auctionType=DIRECT_DEALS' (or 'ALL') in serving_restrictions |
| /// will also exist. Note that this may be nuanced with other contextual |
| /// restrictions, in which case, it may be preferable to read from |
| /// serving_restrictions directly. Can be used to filter the response of the |
| /// creatives.list method. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : The status is unknown. |
| /// - "NOT_CHECKED" : The creative has not been checked. |
| /// - "CONDITIONALLY_APPROVED" : The creative has been conditionally approved. |
| /// See serving_restrictions for details. |
| /// - "APPROVED" : The creative has been approved. |
| /// - "DISAPPROVED" : The creative has been disapproved. |
| /// - "PENDING_REVIEW" : Placeholder for transition to v1beta1. Currently not |
| /// used. |
| /// - "STATUS_TYPE_UNSPECIFIED" : Placeholder for transition to v1beta1. |
| /// Currently not used. |
| core.String dealsStatus; |
| |
| /// The set of declared destination URLs for the creative. |
| core.List<core.String> declaredClickThroughUrls; |
| |
| /// Output only. Detected advertiser IDs, if any. |
| core.List<core.String> detectedAdvertiserIds; |
| |
| /// Output only. The detected domains for this creative. |
| core.List<core.String> detectedDomains; |
| |
| /// Output only. The detected languages for this creative. The order is |
| /// arbitrary. The codes are 2 or 5 characters and are documented at |
| /// https://developers.google.com/adwords/api/docs/appendix/languagecodes. |
| core.List<core.String> detectedLanguages; |
| |
| /// Output only. Detected product categories, if any. See the |
| /// ad-product-categories.txt file in the technical documentation for a list |
| /// of IDs. |
| core.List<core.int> detectedProductCategories; |
| |
| /// Output only. Detected sensitive categories, if any. See the |
| /// ad-sensitive-categories.txt file in the technical documentation for a list |
| /// of IDs. You should use these IDs along with the |
| /// excluded-sensitive-category field in the bid request to filter your bids. |
| core.List<core.int> detectedSensitiveCategories; |
| |
| /// An HTML creative. |
| HtmlContent html; |
| |
| /// The set of URLs to be called to record an impression. |
| core.List<core.String> impressionTrackingUrls; |
| |
| /// A native creative. |
| NativeContent native; |
| |
| /// Output only. The top-level open auction status of this creative. If |
| /// disapproved, an entry for 'auctionType = OPEN_AUCTION' (or 'ALL') in |
| /// serving_restrictions will also exist. Note that this may be nuanced with |
| /// other contextual restrictions, in which case, it may be preferable to read |
| /// from serving_restrictions directly. Can be used to filter the response of |
| /// the creatives.list method. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : The status is unknown. |
| /// - "NOT_CHECKED" : The creative has not been checked. |
| /// - "CONDITIONALLY_APPROVED" : The creative has been conditionally approved. |
| /// See serving_restrictions for details. |
| /// - "APPROVED" : The creative has been approved. |
| /// - "DISAPPROVED" : The creative has been disapproved. |
| /// - "PENDING_REVIEW" : Placeholder for transition to v1beta1. Currently not |
| /// used. |
| /// - "STATUS_TYPE_UNSPECIFIED" : Placeholder for transition to v1beta1. |
| /// Currently not used. |
| core.String openAuctionStatus; |
| |
| /// All restricted categories for the ads that may be shown from this |
| /// creative. |
| core.List<core.String> restrictedCategories; |
| |
| /// Output only. The granular status of this ad in specific contexts. A |
| /// context here relates to where something ultimately serves (for example, a |
| /// physical location, a platform, an HTTPS vs HTTP request, or the type of |
| /// auction). |
| core.List<ServingRestriction> servingRestrictions; |
| |
| /// All vendor IDs for the ads that may be shown from this creative. See |
| /// https://storage.googleapis.com/adx-rtb-dictionaries/vendors.txt for |
| /// possible values. |
| core.List<core.int> vendorIds; |
| |
| /// Output only. The version of this creative. |
| core.int version; |
| |
| /// A video creative. |
| VideoContent video; |
| |
| Creative(); |
| |
| Creative.fromJson(core.Map _json) { |
| if (_json.containsKey('accountId')) { |
| accountId = _json['accountId'] as core.String; |
| } |
| if (_json.containsKey('adChoicesDestinationUrl')) { |
| adChoicesDestinationUrl = _json['adChoicesDestinationUrl'] as core.String; |
| } |
| if (_json.containsKey('adTechnologyProviders')) { |
| adTechnologyProviders = AdTechnologyProviders.fromJson( |
| _json['adTechnologyProviders'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('advertiserName')) { |
| advertiserName = _json['advertiserName'] as core.String; |
| } |
| if (_json.containsKey('agencyId')) { |
| agencyId = _json['agencyId'] as core.String; |
| } |
| if (_json.containsKey('apiUpdateTime')) { |
| apiUpdateTime = _json['apiUpdateTime'] as core.String; |
| } |
| if (_json.containsKey('attributes')) { |
| attributes = (_json['attributes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('clickThroughUrls')) { |
| clickThroughUrls = (_json['clickThroughUrls'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('corrections')) { |
| corrections = (_json['corrections'] as core.List) |
| .map<Correction>((value) => |
| Correction.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('creativeId')) { |
| creativeId = _json['creativeId'] as core.String; |
| } |
| if (_json.containsKey('dealsStatus')) { |
| dealsStatus = _json['dealsStatus'] as core.String; |
| } |
| if (_json.containsKey('declaredClickThroughUrls')) { |
| declaredClickThroughUrls = |
| (_json['declaredClickThroughUrls'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('detectedAdvertiserIds')) { |
| detectedAdvertiserIds = (_json['detectedAdvertiserIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('detectedDomains')) { |
| detectedDomains = (_json['detectedDomains'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('detectedLanguages')) { |
| detectedLanguages = (_json['detectedLanguages'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('detectedProductCategories')) { |
| detectedProductCategories = |
| (_json['detectedProductCategories'] as core.List) |
| .map<core.int>((value) => value as core.int) |
| .toList(); |
| } |
| if (_json.containsKey('detectedSensitiveCategories')) { |
| detectedSensitiveCategories = |
| (_json['detectedSensitiveCategories'] as core.List) |
| .map<core.int>((value) => value as core.int) |
| .toList(); |
| } |
| if (_json.containsKey('html')) { |
| html = HtmlContent.fromJson( |
| _json['html'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('impressionTrackingUrls')) { |
| impressionTrackingUrls = (_json['impressionTrackingUrls'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('native')) { |
| native = NativeContent.fromJson( |
| _json['native'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('openAuctionStatus')) { |
| openAuctionStatus = _json['openAuctionStatus'] as core.String; |
| } |
| if (_json.containsKey('restrictedCategories')) { |
| restrictedCategories = (_json['restrictedCategories'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('servingRestrictions')) { |
| servingRestrictions = (_json['servingRestrictions'] as core.List) |
| .map<ServingRestriction>((value) => ServingRestriction.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('vendorIds')) { |
| vendorIds = (_json['vendorIds'] as core.List) |
| .map<core.int>((value) => value as core.int) |
| .toList(); |
| } |
| if (_json.containsKey('version')) { |
| version = _json['version'] as core.int; |
| } |
| if (_json.containsKey('video')) { |
| video = VideoContent.fromJson( |
| _json['video'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountId != null) { |
| _json['accountId'] = accountId; |
| } |
| if (adChoicesDestinationUrl != null) { |
| _json['adChoicesDestinationUrl'] = adChoicesDestinationUrl; |
| } |
| if (adTechnologyProviders != null) { |
| _json['adTechnologyProviders'] = adTechnologyProviders.toJson(); |
| } |
| if (advertiserName != null) { |
| _json['advertiserName'] = advertiserName; |
| } |
| if (agencyId != null) { |
| _json['agencyId'] = agencyId; |
| } |
| if (apiUpdateTime != null) { |
| _json['apiUpdateTime'] = apiUpdateTime; |
| } |
| if (attributes != null) { |
| _json['attributes'] = attributes; |
| } |
| if (clickThroughUrls != null) { |
| _json['clickThroughUrls'] = clickThroughUrls; |
| } |
| if (corrections != null) { |
| _json['corrections'] = |
| corrections.map((value) => value.toJson()).toList(); |
| } |
| if (creativeId != null) { |
| _json['creativeId'] = creativeId; |
| } |
| if (dealsStatus != null) { |
| _json['dealsStatus'] = dealsStatus; |
| } |
| if (declaredClickThroughUrls != null) { |
| _json['declaredClickThroughUrls'] = declaredClickThroughUrls; |
| } |
| if (detectedAdvertiserIds != null) { |
| _json['detectedAdvertiserIds'] = detectedAdvertiserIds; |
| } |
| if (detectedDomains != null) { |
| _json['detectedDomains'] = detectedDomains; |
| } |
| if (detectedLanguages != null) { |
| _json['detectedLanguages'] = detectedLanguages; |
| } |
| if (detectedProductCategories != null) { |
| _json['detectedProductCategories'] = detectedProductCategories; |
| } |
| if (detectedSensitiveCategories != null) { |
| _json['detectedSensitiveCategories'] = detectedSensitiveCategories; |
| } |
| if (html != null) { |
| _json['html'] = html.toJson(); |
| } |
| if (impressionTrackingUrls != null) { |
| _json['impressionTrackingUrls'] = impressionTrackingUrls; |
| } |
| if (native != null) { |
| _json['native'] = native.toJson(); |
| } |
| if (openAuctionStatus != null) { |
| _json['openAuctionStatus'] = openAuctionStatus; |
| } |
| if (restrictedCategories != null) { |
| _json['restrictedCategories'] = restrictedCategories; |
| } |
| if (servingRestrictions != null) { |
| _json['servingRestrictions'] = |
| servingRestrictions.map((value) => value.toJson()).toList(); |
| } |
| if (vendorIds != null) { |
| _json['vendorIds'] = vendorIds; |
| } |
| if (version != null) { |
| _json['version'] = version; |
| } |
| if (video != null) { |
| _json['video'] = video.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The association between a creative and a deal. |
| class CreativeDealAssociation { |
| /// The account the creative belongs to. |
| core.String accountId; |
| |
| /// The ID of the creative associated with the deal. |
| core.String creativeId; |
| |
| /// The externalDealId for the deal associated with the creative. |
| core.String dealsId; |
| |
| CreativeDealAssociation(); |
| |
| CreativeDealAssociation.fromJson(core.Map _json) { |
| if (_json.containsKey('accountId')) { |
| accountId = _json['accountId'] as core.String; |
| } |
| if (_json.containsKey('creativeId')) { |
| creativeId = _json['creativeId'] as core.String; |
| } |
| if (_json.containsKey('dealsId')) { |
| dealsId = _json['dealsId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountId != null) { |
| _json['accountId'] = accountId; |
| } |
| if (creativeId != null) { |
| _json['creativeId'] = creativeId; |
| } |
| if (dealsId != null) { |
| _json['dealsId'] = dealsId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents creative restrictions associated to Programmatic Guaranteed/ |
| /// Preferred Deal in Ad Manager. This doesn't apply to Private Auction and AdX |
| /// Preferred Deals. |
| class CreativeRestrictions { |
| /// The format of the environment that the creatives will be displayed in. |
| /// Possible string values are: |
| /// - "CREATIVE_FORMAT_UNSPECIFIED" : A placeholder for an undefined creative |
| /// format. |
| /// - "DISPLAY" : A creative that will be displayed in environments such as a |
| /// browser. |
| /// - "VIDEO" : A video creative that will be displayed in environments such |
| /// as a video player. |
| core.String creativeFormat; |
| core.List<CreativeSpecification> creativeSpecifications; |
| |
| /// Skippable video ads allow viewers to skip ads after 5 seconds. |
| /// Possible string values are: |
| /// - "SKIPPABLE_AD_TYPE_UNSPECIFIED" : A placeholder for an undefined |
| /// skippable ad type. |
| /// - "SKIPPABLE" : This video ad can be skipped after 5 seconds. |
| /// - "INSTREAM_SELECT" : This video ad can be skipped after 5 seconds, and is |
| /// counted as engaged view after 30 seconds. The creative is hosted on |
| /// YouTube only, and viewcount of the YouTube video increments after the |
| /// engaged view. |
| /// - "NOT_SKIPPABLE" : This video ad is not skippable. |
| core.String skippableAdType; |
| |
| CreativeRestrictions(); |
| |
| CreativeRestrictions.fromJson(core.Map _json) { |
| if (_json.containsKey('creativeFormat')) { |
| creativeFormat = _json['creativeFormat'] as core.String; |
| } |
| if (_json.containsKey('creativeSpecifications')) { |
| creativeSpecifications = (_json['creativeSpecifications'] as core.List) |
| .map<CreativeSpecification>((value) => CreativeSpecification.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('skippableAdType')) { |
| skippableAdType = _json['skippableAdType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creativeFormat != null) { |
| _json['creativeFormat'] = creativeFormat; |
| } |
| if (creativeSpecifications != null) { |
| _json['creativeSpecifications'] = |
| creativeSpecifications.map((value) => value.toJson()).toList(); |
| } |
| if (skippableAdType != null) { |
| _json['skippableAdType'] = skippableAdType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Specifies the size of the creative. |
| class CreativeSize { |
| /// What formats are allowed by the publisher. If this repeated field is empty |
| /// then all formats are allowed. For example, if this field contains |
| /// AllowedFormatType.AUDIO then the publisher only allows an audio ad |
| /// (without any video). |
| core.List<core.String> allowedFormats; |
| |
| /// For video creatives specifies the sizes of companion ads (if present). |
| /// Companion sizes may be filled in only when creative_size_type = VIDEO |
| core.List<Size> companionSizes; |
| |
| /// The creative size type. |
| /// Possible string values are: |
| /// - "CREATIVE_SIZE_TYPE_UNSPECIFIED" : A placeholder for an undefined |
| /// creative size type. |
| /// - "REGULAR" : The creative is a regular desktop creative. |
| /// - "INTERSTITIAL" : The creative is an interstitial creative. |
| /// - "VIDEO" : The creative is a video creative. |
| /// - "NATIVE" : The creative is a native (mobile) creative. |
| core.String creativeSizeType; |
| |
| /// Output only. The native template for this creative. It will have a value |
| /// only if creative_size_type = CreativeSizeType.NATIVE. |
| /// Possible string values are: |
| /// - "UNKNOWN_NATIVE_TEMPLATE" : A placeholder for an undefined native |
| /// template. |
| /// - "NATIVE_CONTENT_AD" : The creative is linked to native content ad. |
| /// - "NATIVE_APP_INSTALL_AD" : The creative is linked to native app install |
| /// ad. |
| /// - "NATIVE_VIDEO_CONTENT_AD" : The creative is linked to native video |
| /// content ad. |
| /// - "NATIVE_VIDEO_APP_INSTALL_AD" : The creative is linked to native video |
| /// app install ad. |
| core.String nativeTemplate; |
| |
| /// For regular or video creative size type, specifies the size of the |
| /// creative |
| Size size; |
| |
| /// The type of skippable ad for this creative. It will have a value only if |
| /// creative_size_type = CreativeSizeType.VIDEO. |
| /// Possible string values are: |
| /// - "SKIPPABLE_AD_TYPE_UNSPECIFIED" : A placeholder for an undefined |
| /// skippable ad type. |
| /// - "GENERIC" : This video ad can be skipped after 5 seconds. |
| /// - "INSTREAM_SELECT" : This video ad can be skipped after 5 seconds, and |
| /// count as engaged view after 30 seconds. The creative is hosted on YouTube |
| /// only, and viewcount of the YouTube video increments after the engaged |
| /// view. |
| /// - "NOT_SKIPPABLE" : This video ad is not skippable. |
| core.String skippableAdType; |
| |
| CreativeSize(); |
| |
| CreativeSize.fromJson(core.Map _json) { |
| if (_json.containsKey('allowedFormats')) { |
| allowedFormats = (_json['allowedFormats'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('companionSizes')) { |
| companionSizes = (_json['companionSizes'] as core.List) |
| .map<Size>((value) => |
| Size.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('creativeSizeType')) { |
| creativeSizeType = _json['creativeSizeType'] as core.String; |
| } |
| if (_json.containsKey('nativeTemplate')) { |
| nativeTemplate = _json['nativeTemplate'] as core.String; |
| } |
| if (_json.containsKey('size')) { |
| size = |
| Size.fromJson(_json['size'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('skippableAdType')) { |
| skippableAdType = _json['skippableAdType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (allowedFormats != null) { |
| _json['allowedFormats'] = allowedFormats; |
| } |
| if (companionSizes != null) { |
| _json['companionSizes'] = |
| companionSizes.map((value) => value.toJson()).toList(); |
| } |
| if (creativeSizeType != null) { |
| _json['creativeSizeType'] = creativeSizeType; |
| } |
| if (nativeTemplate != null) { |
| _json['nativeTemplate'] = nativeTemplate; |
| } |
| if (size != null) { |
| _json['size'] = size.toJson(); |
| } |
| if (skippableAdType != null) { |
| _json['skippableAdType'] = skippableAdType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents information for a creative that is associated with a Programmatic |
| /// Guaranteed/Preferred Deal in Ad Manager. |
| class CreativeSpecification { |
| /// Companion sizes may be filled in only when this is a video creative. |
| core.List<AdSize> creativeCompanionSizes; |
| |
| /// The size of the creative. |
| AdSize creativeSize; |
| |
| CreativeSpecification(); |
| |
| CreativeSpecification.fromJson(core.Map _json) { |
| if (_json.containsKey('creativeCompanionSizes')) { |
| creativeCompanionSizes = (_json['creativeCompanionSizes'] as core.List) |
| .map<AdSize>((value) => |
| AdSize.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('creativeSize')) { |
| creativeSize = AdSize.fromJson( |
| _json['creativeSize'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creativeCompanionSizes != null) { |
| _json['creativeCompanionSizes'] = |
| creativeCompanionSizes.map((value) => value.toJson()).toList(); |
| } |
| if (creativeSize != null) { |
| _json['creativeSize'] = creativeSize.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The number of bids with the specified dimension values that did not win the |
| /// auction (either were filtered pre-auction or lost the auction), as described |
| /// by the specified creative status. |
| class CreativeStatusRow { |
| /// The number of bids with the specified status. |
| MetricValue bidCount; |
| |
| /// The ID of the creative status. See |
| /// [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes). |
| core.int creativeStatusId; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| CreativeStatusRow(); |
| |
| CreativeStatusRow.fromJson(core.Map _json) { |
| if (_json.containsKey('bidCount')) { |
| bidCount = MetricValue.fromJson( |
| _json['bidCount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('creativeStatusId')) { |
| creativeStatusId = _json['creativeStatusId'] as core.int; |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bidCount != null) { |
| _json['bidCount'] = bidCount.toJson(); |
| } |
| if (creativeStatusId != null) { |
| _json['creativeStatusId'] = creativeStatusId; |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Generic targeting used for targeting dimensions that contains a list of |
| /// included and excluded numeric IDs. |
| class CriteriaTargeting { |
| /// A list of numeric IDs to be excluded. |
| core.List<core.String> excludedCriteriaIds; |
| |
| /// A list of numeric IDs to be included. |
| core.List<core.String> targetedCriteriaIds; |
| |
| CriteriaTargeting(); |
| |
| CriteriaTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('excludedCriteriaIds')) { |
| excludedCriteriaIds = (_json['excludedCriteriaIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('targetedCriteriaIds')) { |
| targetedCriteriaIds = (_json['targetedCriteriaIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (excludedCriteriaIds != null) { |
| _json['excludedCriteriaIds'] = excludedCriteriaIds; |
| } |
| if (targetedCriteriaIds != null) { |
| _json['targetedCriteriaIds'] = targetedCriteriaIds; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a whole or partial calendar date, e.g. a birthday. The time of |
| /// day and time zone are either specified elsewhere or are not significant. The |
| /// date is relative to the Proleptic Gregorian Calendar. This can represent: * |
| /// A full date, with non-zero year, month and day values * A month and day |
| /// value, with a zero year, e.g. an anniversary * A year on its own, with zero |
| /// month and day values * A year and month value, with a zero day, e.g. a |
| /// credit card expiration date Related types are google.type.TimeOfDay and |
| /// `google.protobuf.Timestamp`. |
| class Date { |
| /// Day of month. Must be from 1 to 31 and valid for the year and month, or 0 |
| /// if specifying a year by itself or a year and month where the day is not |
| /// significant. |
| core.int day; |
| |
| /// Month of year. Must be from 1 to 12, or 0 if specifying a year without a |
| /// month and day. |
| core.int month; |
| |
| /// Year of date. Must be from 1 to 9999, or 0 if specifying a date without a |
| /// year. |
| core.int year; |
| |
| Date(); |
| |
| Date.fromJson(core.Map _json) { |
| if (_json.containsKey('day')) { |
| day = _json['day'] as core.int; |
| } |
| if (_json.containsKey('month')) { |
| month = _json['month'] as core.int; |
| } |
| if (_json.containsKey('year')) { |
| year = _json['year'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (day != null) { |
| _json['day'] = day; |
| } |
| if (month != null) { |
| _json['month'] = month; |
| } |
| if (year != null) { |
| _json['year'] = year; |
| } |
| return _json; |
| } |
| } |
| |
| /// Daypart targeting message that specifies if the ad can be shown only during |
| /// certain parts of a day/week. |
| class DayPart { |
| /// The day of the week to target. If unspecified, applicable to all days. |
| /// Possible string values are: |
| /// - "DAY_OF_WEEK_UNSPECIFIED" : A placeholder for when the day of the week |
| /// is not specified. |
| /// - "MONDAY" : Monday |
| /// - "TUESDAY" : Tuesday |
| /// - "WEDNESDAY" : Wednesday |
| /// - "THURSDAY" : Thursday |
| /// - "FRIDAY" : Friday |
| /// - "SATURDAY" : Saturday |
| /// - "SUNDAY" : Sunday |
| core.String dayOfWeek; |
| |
| /// The ending time of the day for the ad to show (minute level granularity). |
| /// The end time is exclusive. This field is not available for filtering in |
| /// PQL queries. |
| TimeOfDay endTime; |
| |
| /// The starting time of day for the ad to show (minute level granularity). |
| /// The start time is inclusive. This field is not available for filtering in |
| /// PQL queries. |
| TimeOfDay startTime; |
| |
| DayPart(); |
| |
| DayPart.fromJson(core.Map _json) { |
| if (_json.containsKey('dayOfWeek')) { |
| dayOfWeek = _json['dayOfWeek'] as core.String; |
| } |
| if (_json.containsKey('endTime')) { |
| endTime = TimeOfDay.fromJson( |
| _json['endTime'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = TimeOfDay.fromJson( |
| _json['startTime'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (dayOfWeek != null) { |
| _json['dayOfWeek'] = dayOfWeek; |
| } |
| if (endTime != null) { |
| _json['endTime'] = endTime.toJson(); |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Specifies the day part targeting criteria. |
| class DayPartTargeting { |
| /// A list of day part targeting criterion. |
| core.List<DayPart> dayParts; |
| |
| /// The timezone to use for interpreting the day part targeting. |
| /// Possible string values are: |
| /// - "TIME_ZONE_SOURCE_UNSPECIFIED" : A placeholder for an undefined time |
| /// zone source. |
| /// - "PUBLISHER" : Use publisher's time zone setting. |
| /// - "USER" : Use the user's time zone setting. |
| core.String timeZoneType; |
| |
| DayPartTargeting(); |
| |
| DayPartTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('dayParts')) { |
| dayParts = (_json['dayParts'] as core.List) |
| .map<DayPart>((value) => |
| DayPart.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('timeZoneType')) { |
| timeZoneType = _json['timeZoneType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (dayParts != null) { |
| _json['dayParts'] = dayParts.map((value) => value.toJson()).toList(); |
| } |
| if (timeZoneType != null) { |
| _json['timeZoneType'] = timeZoneType; |
| } |
| return _json; |
| } |
| } |
| |
| /// A deal represents a segment of inventory for displaying ads on. A proposal |
| /// can contain multiple deals. A deal contains the terms and targeting |
| /// information that is used for serving. |
| class Deal { |
| /// Proposed flight end time of the deal. This will generally be stored in a |
| /// granularity of a second. A value is not required for Private Auction deals |
| /// or Preferred Deals. |
| core.String availableEndTime; |
| |
| /// Optional proposed flight start time of the deal. This will generally be |
| /// stored in the granularity of one second since deal serving starts at |
| /// seconds boundary. Any time specified with more granularity (e.g., in |
| /// milliseconds) will be truncated towards the start of time in seconds. |
| core.String availableStartTime; |
| |
| /// Buyer private data (hidden from seller). |
| PrivateData buyerPrivateData; |
| |
| /// The product ID from which this deal was created. Note: This field may be |
| /// set only when creating the resource. Modifying this field while updating |
| /// the resource will result in an error. |
| core.String createProductId; |
| |
| /// Optional revision number of the product that the deal was created from. If |
| /// present on create, and the server `product_revision` has advanced sinced |
| /// the passed-in `create_product_revision`, an `ABORTED` error will be |
| /// returned. Note: This field may be set only when creating the resource. |
| /// Modifying this field while updating the resource will result in an error. |
| core.String createProductRevision; |
| |
| /// Output only. The time of the deal creation. |
| core.String createTime; |
| |
| /// Output only. Specifies the creative pre-approval policy. |
| /// Possible string values are: |
| /// - "CREATIVE_PRE_APPROVAL_POLICY_UNSPECIFIED" : A placeholder for an |
| /// undefined creative pre-approval policy. |
| /// - "SELLER_PRE_APPROVAL_REQUIRED" : The seller needs to approve each |
| /// creative before it can serve. |
| /// - "SELLER_PRE_APPROVAL_NOT_REQUIRED" : The seller does not need to approve |
| /// each creative before it can serve. |
| core.String creativePreApprovalPolicy; |
| |
| /// Output only. Restricitions about the creatives associated with the deal |
| /// (i.e., size) This is available for Programmatic Guaranteed/Preferred Deals |
| /// in Ad Manager. |
| CreativeRestrictions creativeRestrictions; |
| |
| /// Output only. Specifies whether the creative is safeFrame compatible. |
| /// Possible string values are: |
| /// - "CREATIVE_SAFE_FRAME_COMPATIBILITY_UNSPECIFIED" : A placeholder for an |
| /// undefined creative safe-frame compatibility. |
| /// - "COMPATIBLE" : The creatives need to be compatible with the safe frame |
| /// option. |
| /// - "INCOMPATIBLE" : The creatives can be incompatible with the safe frame |
| /// option. |
| core.String creativeSafeFrameCompatibility; |
| |
| /// Output only. A unique deal ID for the deal (server-assigned). |
| core.String dealId; |
| |
| /// Output only. Metadata about the serving status of this deal. |
| DealServingMetadata dealServingMetadata; |
| |
| /// The negotiable terms of the deal. |
| DealTerms dealTerms; |
| |
| /// The set of fields around delivery control that are interesting for a buyer |
| /// to see but are non-negotiable. These are set by the publisher. |
| DeliveryControl deliveryControl; |
| |
| /// Description for the deal terms. |
| core.String description; |
| |
| /// The name of the deal. |
| core.String displayName; |
| |
| /// Output only. The external deal ID assigned to this deal once the deal is |
| /// finalized. This is the deal ID that shows up in serving/reporting etc. |
| core.String externalDealId; |
| |
| /// Output only. True, if the buyside inventory setup is complete for this |
| /// deal. |
| core.bool isSetupComplete; |
| |
| /// Output only. Specifies the creative source for programmatic deals. |
| /// PUBLISHER means creative is provided by seller and ADVERTISER means |
| /// creative is provided by buyer. |
| /// Possible string values are: |
| /// - "PROGRAMMATIC_CREATIVE_SOURCE_UNSPECIFIED" : A placeholder for an |
| /// undefined programmatic creative source. |
| /// - "ADVERTISER" : The advertiser provides the creatives. |
| /// - "PUBLISHER" : The publisher provides the creatives to be served. |
| core.String programmaticCreativeSource; |
| |
| /// Output only. ID of the proposal that this deal is part of. |
| core.String proposalId; |
| |
| /// Output only. Seller contact information for the deal. |
| core.List<ContactInformation> sellerContacts; |
| |
| /// The syndication product associated with the deal. Note: This field may be |
| /// set only when creating the resource. Modifying this field while updating |
| /// the resource will result in an error. |
| /// Possible string values are: |
| /// - "SYNDICATION_PRODUCT_UNSPECIFIED" : A placeholder for an undefined |
| /// syndication product. |
| /// - "CONTENT" : This typically represents a web page. |
| /// - "MOBILE" : This represents a mobile property. |
| /// - "VIDEO" : This represents video ad formats. |
| /// - "GAMES" : This represents ads shown within games. |
| core.String syndicationProduct; |
| |
| /// Output only. Specifies the subset of inventory targeted by the deal. |
| MarketplaceTargeting targeting; |
| |
| /// The shared targeting visible to buyers and sellers. Each shared targeting |
| /// entity is AND'd together. |
| core.List<TargetingCriteria> targetingCriterion; |
| |
| /// Output only. The time when the deal was last updated. |
| core.String updateTime; |
| |
| /// The web property code for the seller copied over from the product. |
| core.String webPropertyCode; |
| |
| Deal(); |
| |
| Deal.fromJson(core.Map _json) { |
| if (_json.containsKey('availableEndTime')) { |
| availableEndTime = _json['availableEndTime'] as core.String; |
| } |
| if (_json.containsKey('availableStartTime')) { |
| availableStartTime = _json['availableStartTime'] as core.String; |
| } |
| if (_json.containsKey('buyerPrivateData')) { |
| buyerPrivateData = PrivateData.fromJson( |
| _json['buyerPrivateData'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('createProductId')) { |
| createProductId = _json['createProductId'] as core.String; |
| } |
| if (_json.containsKey('createProductRevision')) { |
| createProductRevision = _json['createProductRevision'] as core.String; |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('creativePreApprovalPolicy')) { |
| creativePreApprovalPolicy = |
| _json['creativePreApprovalPolicy'] as core.String; |
| } |
| if (_json.containsKey('creativeRestrictions')) { |
| creativeRestrictions = CreativeRestrictions.fromJson( |
| _json['creativeRestrictions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('creativeSafeFrameCompatibility')) { |
| creativeSafeFrameCompatibility = |
| _json['creativeSafeFrameCompatibility'] as core.String; |
| } |
| if (_json.containsKey('dealId')) { |
| dealId = _json['dealId'] as core.String; |
| } |
| if (_json.containsKey('dealServingMetadata')) { |
| dealServingMetadata = DealServingMetadata.fromJson( |
| _json['dealServingMetadata'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('dealTerms')) { |
| dealTerms = DealTerms.fromJson( |
| _json['dealTerms'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('deliveryControl')) { |
| deliveryControl = DeliveryControl.fromJson( |
| _json['deliveryControl'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('externalDealId')) { |
| externalDealId = _json['externalDealId'] as core.String; |
| } |
| if (_json.containsKey('isSetupComplete')) { |
| isSetupComplete = _json['isSetupComplete'] as core.bool; |
| } |
| if (_json.containsKey('programmaticCreativeSource')) { |
| programmaticCreativeSource = |
| _json['programmaticCreativeSource'] as core.String; |
| } |
| if (_json.containsKey('proposalId')) { |
| proposalId = _json['proposalId'] as core.String; |
| } |
| if (_json.containsKey('sellerContacts')) { |
| sellerContacts = (_json['sellerContacts'] as core.List) |
| .map<ContactInformation>((value) => ContactInformation.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('syndicationProduct')) { |
| syndicationProduct = _json['syndicationProduct'] as core.String; |
| } |
| if (_json.containsKey('targeting')) { |
| targeting = MarketplaceTargeting.fromJson( |
| _json['targeting'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('targetingCriterion')) { |
| targetingCriterion = (_json['targetingCriterion'] as core.List) |
| .map<TargetingCriteria>((value) => TargetingCriteria.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('updateTime')) { |
| updateTime = _json['updateTime'] as core.String; |
| } |
| if (_json.containsKey('webPropertyCode')) { |
| webPropertyCode = _json['webPropertyCode'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (availableEndTime != null) { |
| _json['availableEndTime'] = availableEndTime; |
| } |
| if (availableStartTime != null) { |
| _json['availableStartTime'] = availableStartTime; |
| } |
| if (buyerPrivateData != null) { |
| _json['buyerPrivateData'] = buyerPrivateData.toJson(); |
| } |
| if (createProductId != null) { |
| _json['createProductId'] = createProductId; |
| } |
| if (createProductRevision != null) { |
| _json['createProductRevision'] = createProductRevision; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (creativePreApprovalPolicy != null) { |
| _json['creativePreApprovalPolicy'] = creativePreApprovalPolicy; |
| } |
| if (creativeRestrictions != null) { |
| _json['creativeRestrictions'] = creativeRestrictions.toJson(); |
| } |
| if (creativeSafeFrameCompatibility != null) { |
| _json['creativeSafeFrameCompatibility'] = creativeSafeFrameCompatibility; |
| } |
| if (dealId != null) { |
| _json['dealId'] = dealId; |
| } |
| if (dealServingMetadata != null) { |
| _json['dealServingMetadata'] = dealServingMetadata.toJson(); |
| } |
| if (dealTerms != null) { |
| _json['dealTerms'] = dealTerms.toJson(); |
| } |
| if (deliveryControl != null) { |
| _json['deliveryControl'] = deliveryControl.toJson(); |
| } |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (externalDealId != null) { |
| _json['externalDealId'] = externalDealId; |
| } |
| if (isSetupComplete != null) { |
| _json['isSetupComplete'] = isSetupComplete; |
| } |
| if (programmaticCreativeSource != null) { |
| _json['programmaticCreativeSource'] = programmaticCreativeSource; |
| } |
| if (proposalId != null) { |
| _json['proposalId'] = proposalId; |
| } |
| if (sellerContacts != null) { |
| _json['sellerContacts'] = |
| sellerContacts.map((value) => value.toJson()).toList(); |
| } |
| if (syndicationProduct != null) { |
| _json['syndicationProduct'] = syndicationProduct; |
| } |
| if (targeting != null) { |
| _json['targeting'] = targeting.toJson(); |
| } |
| if (targetingCriterion != null) { |
| _json['targetingCriterion'] = |
| targetingCriterion.map((value) => value.toJson()).toList(); |
| } |
| if (updateTime != null) { |
| _json['updateTime'] = updateTime; |
| } |
| if (webPropertyCode != null) { |
| _json['webPropertyCode'] = webPropertyCode; |
| } |
| return _json; |
| } |
| } |
| |
| /// Tracks which parties (if any) have paused a deal. The deal is considered |
| /// paused if either hasBuyerPaused or hasSellPaused is true. |
| class DealPauseStatus { |
| /// The buyer's reason for pausing, if the buyer paused the deal. |
| core.String buyerPauseReason; |
| |
| /// The role of the person who first paused this deal. |
| /// Possible string values are: |
| /// - "BUYER_SELLER_ROLE_UNSPECIFIED" : A placeholder for an undefined |
| /// buyer/seller role. |
| /// - "BUYER" : Specifies the role as buyer. |
| /// - "SELLER" : Specifies the role as seller. |
| core.String firstPausedBy; |
| |
| /// True, if the buyer has paused the deal unilaterally. |
| core.bool hasBuyerPaused; |
| |
| /// True, if the seller has paused the deal unilaterally. |
| core.bool hasSellerPaused; |
| |
| /// The seller's reason for pausing, if the seller paused the deal. |
| core.String sellerPauseReason; |
| |
| DealPauseStatus(); |
| |
| DealPauseStatus.fromJson(core.Map _json) { |
| if (_json.containsKey('buyerPauseReason')) { |
| buyerPauseReason = _json['buyerPauseReason'] as core.String; |
| } |
| if (_json.containsKey('firstPausedBy')) { |
| firstPausedBy = _json['firstPausedBy'] as core.String; |
| } |
| if (_json.containsKey('hasBuyerPaused')) { |
| hasBuyerPaused = _json['hasBuyerPaused'] as core.bool; |
| } |
| if (_json.containsKey('hasSellerPaused')) { |
| hasSellerPaused = _json['hasSellerPaused'] as core.bool; |
| } |
| if (_json.containsKey('sellerPauseReason')) { |
| sellerPauseReason = _json['sellerPauseReason'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (buyerPauseReason != null) { |
| _json['buyerPauseReason'] = buyerPauseReason; |
| } |
| if (firstPausedBy != null) { |
| _json['firstPausedBy'] = firstPausedBy; |
| } |
| if (hasBuyerPaused != null) { |
| _json['hasBuyerPaused'] = hasBuyerPaused; |
| } |
| if (hasSellerPaused != null) { |
| _json['hasSellerPaused'] = hasSellerPaused; |
| } |
| if (sellerPauseReason != null) { |
| _json['sellerPauseReason'] = sellerPauseReason; |
| } |
| return _json; |
| } |
| } |
| |
| /// Message captures metadata about the serving status of a deal. |
| class DealServingMetadata { |
| /// Output only. Tracks which parties (if any) have paused a deal. |
| DealPauseStatus dealPauseStatus; |
| |
| DealServingMetadata(); |
| |
| DealServingMetadata.fromJson(core.Map _json) { |
| if (_json.containsKey('dealPauseStatus')) { |
| dealPauseStatus = DealPauseStatus.fromJson( |
| _json['dealPauseStatus'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (dealPauseStatus != null) { |
| _json['dealPauseStatus'] = dealPauseStatus.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The deal terms specify the details of a Product/deal. They specify things |
| /// like price per buyer, the type of pricing model (e.g., fixed price, auction) |
| /// and expected impressions from the publisher. |
| class DealTerms { |
| /// Visibility of the URL in bid requests. (default: BRANDED) |
| /// Possible string values are: |
| /// - "BRANDING_TYPE_UNSPECIFIED" : A placeholder for an undefined branding |
| /// type. |
| /// - "BRANDED" : Full URL is included in bid requests. |
| /// - "SEMI_TRANSPARENT" : A TopLevelDomain or masked URL is sent in bid |
| /// requests rather than the full one. |
| core.String brandingType; |
| |
| /// Publisher provided description for the terms. |
| core.String description; |
| |
| /// Non-binding estimate of the estimated gross spend for this deal. Can be |
| /// set by buyer or seller. |
| Price estimatedGrossSpend; |
| |
| /// Non-binding estimate of the impressions served per day. Can be set by |
| /// buyer or seller. |
| core.String estimatedImpressionsPerDay; |
| |
| /// The terms for guaranteed fixed price deals. |
| GuaranteedFixedPriceTerms guaranteedFixedPriceTerms; |
| |
| /// The terms for non-guaranteed auction deals. |
| NonGuaranteedAuctionTerms nonGuaranteedAuctionTerms; |
| |
| /// The terms for non-guaranteed fixed price deals. |
| NonGuaranteedFixedPriceTerms nonGuaranteedFixedPriceTerms; |
| |
| /// The time zone name. For deals with Cost Per Day billing, defines the time |
| /// zone used to mark the boundaries of a day. It should be an IANA TZ name, |
| /// such as "America/Los_Angeles". For more information, see |
| /// https://en.wikipedia.org/wiki/List_of_tz_database_time_zones. |
| core.String sellerTimeZone; |
| |
| DealTerms(); |
| |
| DealTerms.fromJson(core.Map _json) { |
| if (_json.containsKey('brandingType')) { |
| brandingType = _json['brandingType'] as core.String; |
| } |
| if (_json.containsKey('description')) { |
| description = _json['description'] as core.String; |
| } |
| if (_json.containsKey('estimatedGrossSpend')) { |
| estimatedGrossSpend = Price.fromJson( |
| _json['estimatedGrossSpend'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('estimatedImpressionsPerDay')) { |
| estimatedImpressionsPerDay = |
| _json['estimatedImpressionsPerDay'] as core.String; |
| } |
| if (_json.containsKey('guaranteedFixedPriceTerms')) { |
| guaranteedFixedPriceTerms = GuaranteedFixedPriceTerms.fromJson( |
| _json['guaranteedFixedPriceTerms'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('nonGuaranteedAuctionTerms')) { |
| nonGuaranteedAuctionTerms = NonGuaranteedAuctionTerms.fromJson( |
| _json['nonGuaranteedAuctionTerms'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('nonGuaranteedFixedPriceTerms')) { |
| nonGuaranteedFixedPriceTerms = NonGuaranteedFixedPriceTerms.fromJson( |
| _json['nonGuaranteedFixedPriceTerms'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('sellerTimeZone')) { |
| sellerTimeZone = _json['sellerTimeZone'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (brandingType != null) { |
| _json['brandingType'] = brandingType; |
| } |
| if (description != null) { |
| _json['description'] = description; |
| } |
| if (estimatedGrossSpend != null) { |
| _json['estimatedGrossSpend'] = estimatedGrossSpend.toJson(); |
| } |
| if (estimatedImpressionsPerDay != null) { |
| _json['estimatedImpressionsPerDay'] = estimatedImpressionsPerDay; |
| } |
| if (guaranteedFixedPriceTerms != null) { |
| _json['guaranteedFixedPriceTerms'] = guaranteedFixedPriceTerms.toJson(); |
| } |
| if (nonGuaranteedAuctionTerms != null) { |
| _json['nonGuaranteedAuctionTerms'] = nonGuaranteedAuctionTerms.toJson(); |
| } |
| if (nonGuaranteedFixedPriceTerms != null) { |
| _json['nonGuaranteedFixedPriceTerms'] = |
| nonGuaranteedFixedPriceTerms.toJson(); |
| } |
| if (sellerTimeZone != null) { |
| _json['sellerTimeZone'] = sellerTimeZone; |
| } |
| return _json; |
| } |
| } |
| |
| /// Message contains details about how the deals will be paced. |
| class DeliveryControl { |
| /// Output only. Specified the creative blocking levels to be applied. |
| /// Possible string values are: |
| /// - "CREATIVE_BLOCKING_LEVEL_UNSPECIFIED" : A placeholder for an undefined |
| /// creative blocking level. |
| /// - "PUBLISHER_BLOCKING_RULES" : Publisher blocking rules will be applied. |
| /// - "ADX_POLICY_BLOCKING_ONLY" : The Ad Exchange policy blocking rules will |
| /// be applied. |
| core.String creativeBlockingLevel; |
| |
| /// Output only. Specifies how the impression delivery will be paced. |
| /// Possible string values are: |
| /// - "DELIVERY_RATE_TYPE_UNSPECIFIED" : A placeholder for an undefined |
| /// delivery rate type. |
| /// - "EVENLY" : Impressions are served uniformly over the life of the deal. |
| /// - "FRONT_LOADED" : Impressions are served front-loaded. |
| /// - "AS_FAST_AS_POSSIBLE" : Impressions are served as fast as possible. |
| core.String deliveryRateType; |
| |
| /// Output only. Specifies any frequency caps. |
| core.List<FrequencyCap> frequencyCaps; |
| |
| DeliveryControl(); |
| |
| DeliveryControl.fromJson(core.Map _json) { |
| if (_json.containsKey('creativeBlockingLevel')) { |
| creativeBlockingLevel = _json['creativeBlockingLevel'] as core.String; |
| } |
| if (_json.containsKey('deliveryRateType')) { |
| deliveryRateType = _json['deliveryRateType'] as core.String; |
| } |
| if (_json.containsKey('frequencyCaps')) { |
| frequencyCaps = (_json['frequencyCaps'] as core.List) |
| .map<FrequencyCap>((value) => FrequencyCap.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creativeBlockingLevel != null) { |
| _json['creativeBlockingLevel'] = creativeBlockingLevel; |
| } |
| if (deliveryRateType != null) { |
| _json['deliveryRateType'] = deliveryRateType; |
| } |
| if (frequencyCaps != null) { |
| _json['frequencyCaps'] = |
| frequencyCaps.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. The reason and details for a disapproval. |
| class Disapproval { |
| /// Additional details about the reason for disapproval. |
| core.List<core.String> details; |
| |
| /// The categorized reason for disapproval. |
| /// Possible string values are: |
| /// - "LENGTH_OF_IMAGE_ANIMATION" : The length of the image animation is |
| /// longer than allowed. |
| /// - "BROKEN_URL" : The click through URL doesn't work properly. |
| /// - "MEDIA_NOT_FUNCTIONAL" : Something is wrong with the creative itself. |
| /// - "INVALID_FOURTH_PARTY_CALL" : The ad makes a fourth party call to an |
| /// unapproved vendor. |
| /// - "INCORRECT_REMARKETING_DECLARATION" : The ad targets consumers using |
| /// remarketing lists and/or collects data for subsequent use in retargeting, |
| /// but does not correctly declare that use. |
| /// - "LANDING_PAGE_ERROR" : Clicking on the ad leads to an error page. |
| /// - "AD_SIZE_DOES_NOT_MATCH_AD_SLOT" : The ad size when rendered does not |
| /// match the declaration. |
| /// - "NO_BORDER" : Ads with a white background require a border, which was |
| /// missing. |
| /// - "FOURTH_PARTY_BROWSER_COOKIES" : The creative attempts to set cookies |
| /// from a fourth party that is not certified. |
| /// - "LSO_OBJECTS" : The creative sets an LSO object. |
| /// - "BLANK_CREATIVE" : The ad serves a blank. |
| /// - "DESTINATION_URLS_UNDECLARED" : The ad uses rotation, but not all |
| /// destination URLs were declared. |
| /// - "PROBLEM_WITH_CLICK_MACRO" : There is a problem with the way the click |
| /// macro is used. |
| /// - "INCORRECT_AD_TECHNOLOGY_DECLARATION" : The ad technology declaration is |
| /// not accurate. |
| /// - "INCORRECT_DESTINATION_URL_DECLARATION" : The actual destination URL |
| /// does not match the declared destination URL. |
| /// - "EXPANDABLE_INCORRECT_DIRECTION" : The declared expanding direction does |
| /// not match the actual direction. |
| /// - "EXPANDABLE_DIRECTION_NOT_SUPPORTED" : The ad does not expand in a |
| /// supported direction. |
| /// - "EXPANDABLE_INVALID_VENDOR" : The ad uses an expandable vendor that is |
| /// not supported. |
| /// - "EXPANDABLE_FUNCTIONALITY" : There was an issue with the expandable ad. |
| /// - "VIDEO_INVALID_VENDOR" : The ad uses a video vendor that is not |
| /// supported. |
| /// - "VIDEO_UNSUPPORTED_LENGTH" : The length of the video ad is not |
| /// supported. |
| /// - "VIDEO_UNSUPPORTED_FORMAT" : The format of the video ad is not |
| /// supported. |
| /// - "VIDEO_FUNCTIONALITY" : There was an issue with the video ad. |
| /// - "LANDING_PAGE_DISABLED" : The landing page does not conform to Ad |
| /// Exchange policy. |
| /// - "MALWARE_SUSPECTED" : The ad or the landing page may contain malware. |
| /// - "ADULT_IMAGE_OR_VIDEO" : The ad contains adult images or video content. |
| /// - "INACCURATE_AD_TEXT" : The ad contains text that is unclear or |
| /// inaccurate. |
| /// - "COUNTERFEIT_DESIGNER_GOODS" : The ad promotes counterfeit designer |
| /// goods. |
| /// - "POP_UP" : The ad causes a popup window to appear. |
| /// - "INVALID_RTB_PROTOCOL_USAGE" : The creative does not follow policies set |
| /// for the RTB protocol. |
| /// - "RAW_IP_ADDRESS_IN_SNIPPET" : The ad contains a URL that uses a numeric |
| /// IP address for the domain. |
| /// - "UNACCEPTABLE_CONTENT_SOFTWARE" : The ad or landing page contains |
| /// unacceptable content because it initiated a software or executable |
| /// download. |
| /// - "UNAUTHORIZED_COOKIE_ON_GOOGLE_DOMAIN" : The ad set an unauthorized |
| /// cookie on a Google domain. |
| /// - "UNDECLARED_FLASH_OBJECTS" : Flash content found when no flash was |
| /// declared. |
| /// - "INVALID_SSL_DECLARATION" : SSL support declared but not working |
| /// correctly. |
| /// - "DIRECT_DOWNLOAD_IN_AD" : Rich Media - Direct Download in Ad (ex. PDF |
| /// download). |
| /// - "MAXIMUM_DOWNLOAD_SIZE_EXCEEDED" : Maximum download size exceeded. |
| /// - "DESTINATION_URL_SITE_NOT_CRAWLABLE" : Bad Destination URL: Site Not |
| /// Crawlable. |
| /// - "BAD_URL_LEGAL_DISAPPROVAL" : Bad URL: Legal disapproval. |
| /// - "PHARMA_GAMBLING_ALCOHOL_NOT_ALLOWED" : Pharmaceuticals, Gambling, |
| /// Alcohol not allowed and at least one was detected. |
| /// - "DYNAMIC_DNS_AT_DESTINATION_URL" : Dynamic DNS at Destination URL. |
| /// - "POOR_IMAGE_OR_VIDEO_QUALITY" : Poor Image / Video Quality. |
| /// - "UNACCEPTABLE_IMAGE_CONTENT" : For example, Image Trick to Click. |
| /// - "INCORRECT_IMAGE_LAYOUT" : Incorrect Image Layout. |
| /// - "IRRELEVANT_IMAGE_OR_VIDEO" : Irrelevant Image / Video. |
| /// - "DESTINATION_SITE_DOES_NOT_ALLOW_GOING_BACK" : Broken back button. |
| /// - "MISLEADING_CLAIMS_IN_AD" : Misleading/Inaccurate claims in ads. |
| /// - "RESTRICTED_PRODUCTS" : Restricted Products. |
| /// - "UNACCEPTABLE_CONTENT" : Unacceptable content. For example, malware. |
| /// - "AUTOMATED_AD_CLICKING" : The ad automatically redirects to the |
| /// destination site without a click, or reports a click when none were made. |
| /// - "INVALID_URL_PROTOCOL" : The ad uses URL protocols that do not exist or |
| /// are not allowed on AdX. |
| /// - "UNDECLARED_RESTRICTED_CONTENT" : Restricted content (for example, |
| /// alcohol) was found in the ad but not declared. |
| /// - "INVALID_REMARKETING_LIST_USAGE" : Violation of the remarketing list |
| /// policy. |
| /// - "DESTINATION_SITE_NOT_CRAWLABLE_ROBOTS_TXT" : The destination site's |
| /// robot.txt file prevents it from being crawled. |
| /// - "CLICK_TO_DOWNLOAD_NOT_AN_APP" : Click to download must link to an app. |
| /// - "INACCURATE_REVIEW_EXTENSION" : A review extension must be an accurate |
| /// review. |
| /// - "SEXUALLY_EXPLICIT_CONTENT" : Sexually explicit content. |
| /// - "GAINING_AN_UNFAIR_ADVANTAGE" : The ad tries to gain an unfair traffic |
| /// advantage. |
| /// - "GAMING_THE_GOOGLE_NETWORK" : The ad tries to circumvent Google's |
| /// advertising systems. |
| /// - "DANGEROUS_PRODUCTS_KNIVES" : The ad promotes dangerous knives. |
| /// - "DANGEROUS_PRODUCTS_EXPLOSIVES" : The ad promotes explosives. |
| /// - "DANGEROUS_PRODUCTS_GUNS" : The ad promotes guns & parts. |
| /// - "DANGEROUS_PRODUCTS_DRUGS" : The ad promotes recreational drugs/services |
| /// & related equipment. |
| /// - "DANGEROUS_PRODUCTS_TOBACCO" : The ad promotes tobacco products/services |
| /// & related equipment. |
| /// - "DANGEROUS_PRODUCTS_WEAPONS" : The ad promotes weapons. |
| /// - "UNCLEAR_OR_IRRELEVANT_AD" : The ad is unclear or irrelevant to the |
| /// destination site. |
| /// - "PROFESSIONAL_STANDARDS" : The ad does not meet professional standards. |
| /// - "DYSFUNCTIONAL_PROMOTION" : The promotion is unnecessarily difficult to |
| /// navigate. |
| /// - "INVALID_INTEREST_BASED_AD" : Violation of Google's policy for |
| /// interest-based ads. |
| /// - "MISUSE_OF_PERSONAL_INFORMATION" : Misuse of personal information. |
| /// - "OMISSION_OF_RELEVANT_INFORMATION" : Omission of relevant information. |
| /// - "UNAVAILABLE_PROMOTIONS" : Unavailable promotions. |
| /// - "MISLEADING_PROMOTIONS" : Misleading or unrealistic promotions. |
| /// - "INAPPROPRIATE_CONTENT" : Offensive or inappropriate content. |
| /// - "SENSITIVE_EVENTS" : Capitalizing on sensitive events. |
| /// - "SHOCKING_CONTENT" : Shocking content. |
| /// - "ENABLING_DISHONEST_BEHAVIOR" : Products & Services that enable |
| /// dishonest behavior. |
| /// - "TECHNICAL_REQUIREMENTS" : The ad does not meet technical requirements. |
| /// - "RESTRICTED_POLITICAL_CONTENT" : Restricted political content. |
| /// - "UNSUPPORTED_CONTENT" : Unsupported content. |
| /// - "INVALID_BIDDING_METHOD" : Invalid bidding method. |
| /// - "VIDEO_TOO_LONG" : Video length exceeds limits. |
| /// - "VIOLATES_JAPANESE_PHARMACY_LAW" : Unacceptable content: Japanese |
| /// healthcare. |
| /// - "UNACCREDITED_PET_PHARMACY" : Online pharmacy ID required. |
| /// - "ABORTION" : Unacceptable content: Abortion. |
| /// - "CONTRACEPTIVES" : Unacceptable content: Birth control. |
| /// - "NEED_CERTIFICATES_TO_ADVERTISE_IN_CHINA" : Restricted in China. |
| /// - "KCDSP_REGISTRATION" : Unacceptable content: Korean healthcare. |
| /// - "NOT_FAMILY_SAFE" : Non-family safe or adult content. |
| /// - "CLINICAL_TRIAL_RECRUITMENT" : Clinical trial recruitment. |
| /// - "MAXIMUM_NUMBER_OF_HTTP_CALLS_EXCEEDED" : Maximum number of HTTP calls |
| /// exceeded. |
| /// - "MAXIMUM_NUMBER_OF_COOKIES_EXCEEDED" : Maximum number of cookies |
| /// exceeded. |
| /// - "PERSONAL_LOANS" : Financial service ad does not adhere to |
| /// specifications. |
| /// - "UNSUPPORTED_FLASH_CONTENT" : Flash content was found in an unsupported |
| /// context. |
| /// - "MISUSE_BY_OMID_SCRIPT" : Misuse by an Open Measurement SDK script. |
| /// - "NON_WHITELISTED_OMID_VENDOR" : Use of an Open Measurement SDK vendor |
| /// not on approved whitelist. |
| /// - "DESTINATION_EXPERIENCE" : Unacceptable landing page. |
| /// - "UNSUPPORTED_LANGUAGE" : Unsupported language. |
| /// - "NON_SSL_COMPLIANT" : Non-SSL compliant. |
| /// - "TEMPORARY_PAUSE" : Temporary pausing of creative. |
| /// - "BAIL_BONDS" : Promotes services related to bail bonds. |
| /// - "EXPERIMENTAL_MEDICAL_TREATMENT" : Promotes speculative and/or |
| /// experimental medical treatments. |
| core.String reason; |
| |
| Disapproval(); |
| |
| Disapproval.fromJson(core.Map _json) { |
| if (_json.containsKey('details')) { |
| details = (_json['details'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('reason')) { |
| reason = _json['reason'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (details != null) { |
| _json['details'] = details; |
| } |
| if (reason != null) { |
| _json['reason'] = reason; |
| } |
| return _json; |
| } |
| } |
| |
| /// A generic empty message that you can re-use to avoid defining duplicated |
| /// empty messages in your APIs. A typical example is to use it as the request |
| /// or the response type of an API method. For instance: service Foo { rpc |
| /// Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON |
| /// representation for `Empty` is empty JSON object `{}`. |
| class Empty { |
| Empty(); |
| |
| Empty.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// A set of filters that is applied to a request for data. Within a filter set, |
| /// an AND operation is performed across the filters represented by each field. |
| /// An OR operation is performed across the filters represented by the multiple |
| /// values of a repeated field, e.g., "format=VIDEO AND deal_id=12 AND |
| /// (seller_network_id=34 OR seller_network_id=56)". |
| class FilterSet { |
| /// An absolute date range, defined by a start date and an end date. |
| /// Interpreted relative to Pacific time zone. |
| AbsoluteDateRange absoluteDateRange; |
| |
| /// The set of dimensions along which to break down the response; may be |
| /// empty. If multiple dimensions are requested, the breakdown is along the |
| /// Cartesian product of the requested dimensions. |
| core.List<core.String> breakdownDimensions; |
| |
| /// The ID of the creative on which to filter; optional. This field may be set |
| /// only for a filter set that accesses account-level troubleshooting data, |
| /// i.e., one whose name matches the `bidders / * /accounts / * /filterSets / |
| /// * ` pattern. |
| core.String creativeId; |
| |
| /// The ID of the deal on which to filter; optional. This field may be set |
| /// only for a filter set that accesses account-level troubleshooting data, |
| /// i.e., one whose name matches the `bidders / * /accounts / * /filterSets / |
| /// * ` pattern. |
| core.String dealId; |
| |
| /// The environment on which to filter; optional. |
| /// Possible string values are: |
| /// - "ENVIRONMENT_UNSPECIFIED" : A placeholder for an undefined environment; |
| /// indicates that no environment filter will be applied. |
| /// - "WEB" : The ad impression appears on the web. |
| /// - "APP" : The ad impression appears in an app. |
| core.String environment; |
| |
| /// Creative format bidded on or allowed to bid on, can be empty. |
| /// Possible string values are: |
| /// - "FORMAT_UNSPECIFIED" : A placeholder for an undefined format; indicates |
| /// that no format filter will be applied. |
| /// - "NATIVE_DISPLAY" : The ad impression is a native ad, and display (i.e., |
| /// image) format. |
| /// - "NATIVE_VIDEO" : The ad impression is a native ad, and video format. |
| /// - "NON_NATIVE_DISPLAY" : The ad impression is not a native ad, and display |
| /// (i.e., image) format. |
| /// - "NON_NATIVE_VIDEO" : The ad impression is not a native ad, and video |
| /// format. |
| core.String format; |
| |
| /// Creative formats bidded on or allowed to bid on, can be empty. Although |
| /// this field is a list, it can only be populated with a single item. A HTTP |
| /// 400 bad request error will be returned in the response if you specify |
| /// multiple items. |
| core.List<core.String> formats; |
| |
| /// A user-defined name of the filter set. Filter set names must be unique |
| /// globally and match one of the patterns: - `bidders / * /filterSets / * ` |
| /// (for accessing bidder-level troubleshooting data) - `bidders / * /accounts |
| /// / * /filterSets / * ` (for accessing account-level troubleshooting data) |
| /// This field is required in create operations. |
| core.String name; |
| |
| /// The list of platforms on which to filter; may be empty. The filters |
| /// represented by multiple platforms are ORed together (i.e., if non-empty, |
| /// results must match any one of the platforms). |
| core.List<core.String> platforms; |
| |
| /// For Open Bidding partners only. The list of publisher identifiers on which |
| /// to filter; may be empty. The filters represented by multiple publisher |
| /// identifiers are ORed together. |
| core.List<core.String> publisherIdentifiers; |
| |
| /// An open-ended realtime time range, defined by the aggregation start |
| /// timestamp. |
| RealtimeTimeRange realtimeTimeRange; |
| |
| /// A relative date range, defined by an offset from today and a duration. |
| /// Interpreted relative to Pacific time zone. |
| RelativeDateRange relativeDateRange; |
| |
| /// For Authorized Buyers only. The list of IDs of the seller (publisher) |
| /// networks on which to filter; may be empty. The filters represented by |
| /// multiple seller network IDs are ORed together (i.e., if non-empty, results |
| /// must match any one of the publisher networks). See |
| /// [seller-network-ids](https://developers.google.com/authorized-buyers/rtb/downloads/seller-network-ids) |
| /// file for the set of existing seller network IDs. |
| core.List<core.int> sellerNetworkIds; |
| |
| /// The granularity of time intervals if a time series breakdown is desired; |
| /// optional. |
| /// Possible string values are: |
| /// - "TIME_SERIES_GRANULARITY_UNSPECIFIED" : A placeholder for an unspecified |
| /// interval; no time series is applied. All rows in response will contain |
| /// data for the entire requested time range. |
| /// - "HOURLY" : Indicates that data will be broken down by the hour. |
| /// - "DAILY" : Indicates that data will be broken down by the day. |
| core.String timeSeriesGranularity; |
| |
| FilterSet(); |
| |
| FilterSet.fromJson(core.Map _json) { |
| if (_json.containsKey('absoluteDateRange')) { |
| absoluteDateRange = AbsoluteDateRange.fromJson( |
| _json['absoluteDateRange'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('breakdownDimensions')) { |
| breakdownDimensions = (_json['breakdownDimensions'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('creativeId')) { |
| creativeId = _json['creativeId'] as core.String; |
| } |
| if (_json.containsKey('dealId')) { |
| dealId = _json['dealId'] as core.String; |
| } |
| if (_json.containsKey('environment')) { |
| environment = _json['environment'] as core.String; |
| } |
| if (_json.containsKey('format')) { |
| format = _json['format'] as core.String; |
| } |
| if (_json.containsKey('formats')) { |
| formats = (_json['formats'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('name')) { |
| name = _json['name'] as core.String; |
| } |
| if (_json.containsKey('platforms')) { |
| platforms = (_json['platforms'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('publisherIdentifiers')) { |
| publisherIdentifiers = (_json['publisherIdentifiers'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('realtimeTimeRange')) { |
| realtimeTimeRange = RealtimeTimeRange.fromJson( |
| _json['realtimeTimeRange'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('relativeDateRange')) { |
| relativeDateRange = RelativeDateRange.fromJson( |
| _json['relativeDateRange'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('sellerNetworkIds')) { |
| sellerNetworkIds = (_json['sellerNetworkIds'] as core.List) |
| .map<core.int>((value) => value as core.int) |
| .toList(); |
| } |
| if (_json.containsKey('timeSeriesGranularity')) { |
| timeSeriesGranularity = _json['timeSeriesGranularity'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (absoluteDateRange != null) { |
| _json['absoluteDateRange'] = absoluteDateRange.toJson(); |
| } |
| if (breakdownDimensions != null) { |
| _json['breakdownDimensions'] = breakdownDimensions; |
| } |
| if (creativeId != null) { |
| _json['creativeId'] = creativeId; |
| } |
| if (dealId != null) { |
| _json['dealId'] = dealId; |
| } |
| if (environment != null) { |
| _json['environment'] = environment; |
| } |
| if (format != null) { |
| _json['format'] = format; |
| } |
| if (formats != null) { |
| _json['formats'] = formats; |
| } |
| if (name != null) { |
| _json['name'] = name; |
| } |
| if (platforms != null) { |
| _json['platforms'] = platforms; |
| } |
| if (publisherIdentifiers != null) { |
| _json['publisherIdentifiers'] = publisherIdentifiers; |
| } |
| if (realtimeTimeRange != null) { |
| _json['realtimeTimeRange'] = realtimeTimeRange.toJson(); |
| } |
| if (relativeDateRange != null) { |
| _json['relativeDateRange'] = relativeDateRange.toJson(); |
| } |
| if (sellerNetworkIds != null) { |
| _json['sellerNetworkIds'] = sellerNetworkIds; |
| } |
| if (timeSeriesGranularity != null) { |
| _json['timeSeriesGranularity'] = timeSeriesGranularity; |
| } |
| return _json; |
| } |
| } |
| |
| /// The number of filtered bids with the specified dimension values that have |
| /// the specified creative. |
| class FilteredBidCreativeRow { |
| /// The number of bids with the specified creative. |
| MetricValue bidCount; |
| |
| /// The ID of the creative. |
| core.String creativeId; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| FilteredBidCreativeRow(); |
| |
| FilteredBidCreativeRow.fromJson(core.Map _json) { |
| if (_json.containsKey('bidCount')) { |
| bidCount = MetricValue.fromJson( |
| _json['bidCount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('creativeId')) { |
| creativeId = _json['creativeId'] as core.String; |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bidCount != null) { |
| _json['bidCount'] = bidCount.toJson(); |
| } |
| if (creativeId != null) { |
| _json['creativeId'] = creativeId; |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// The number of filtered bids with the specified dimension values, among those |
| /// filtered due to the requested filtering reason (i.e. creative status), that |
| /// have the specified detail. |
| class FilteredBidDetailRow { |
| /// The number of bids with the specified detail. |
| MetricValue bidCount; |
| |
| /// The ID of the detail, can be numeric or text. The associated value can be |
| /// looked up in the dictionary file corresponding to the DetailType in the |
| /// response message. |
| core.String detail; |
| |
| /// Note: this field will be deprecated, use "detail" field instead. When |
| /// "detail" field represents an integer value, this field is populated as the |
| /// same integer value "detail" field represents, otherwise this field will be |
| /// 0. The ID of the detail. The associated value can be looked up in the |
| /// dictionary file corresponding to the DetailType in the response message. |
| core.int detailId; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| FilteredBidDetailRow(); |
| |
| FilteredBidDetailRow.fromJson(core.Map _json) { |
| if (_json.containsKey('bidCount')) { |
| bidCount = MetricValue.fromJson( |
| _json['bidCount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('detail')) { |
| detail = _json['detail'] as core.String; |
| } |
| if (_json.containsKey('detailId')) { |
| detailId = _json['detailId'] as core.int; |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bidCount != null) { |
| _json['bidCount'] = bidCount.toJson(); |
| } |
| if (detail != null) { |
| _json['detail'] = detail; |
| } |
| if (detailId != null) { |
| _json['detailId'] = detailId; |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a list of targeted and excluded mobile application IDs that |
| /// publishers own. Mobile application IDs are from App Store and Google Play |
| /// Store. Android App ID, for example, com.google.android.apps.maps, can be |
| /// found in Google Play Store URL. iOS App ID (which is a number) can be found |
| /// at the end of iTunes store URL. First party mobile applications is either |
| /// included or excluded. |
| class FirstPartyMobileApplicationTargeting { |
| /// A list of application IDs to be excluded. |
| core.List<core.String> excludedAppIds; |
| |
| /// A list of application IDs to be included. |
| core.List<core.String> targetedAppIds; |
| |
| FirstPartyMobileApplicationTargeting(); |
| |
| FirstPartyMobileApplicationTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('excludedAppIds')) { |
| excludedAppIds = (_json['excludedAppIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('targetedAppIds')) { |
| targetedAppIds = (_json['targetedAppIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (excludedAppIds != null) { |
| _json['excludedAppIds'] = excludedAppIds; |
| } |
| if (targetedAppIds != null) { |
| _json['targetedAppIds'] = targetedAppIds; |
| } |
| return _json; |
| } |
| } |
| |
| /// Frequency cap. |
| class FrequencyCap { |
| /// The maximum number of impressions that can be served to a user within the |
| /// specified time period. |
| core.int maxImpressions; |
| |
| /// The amount of time, in the units specified by time_unit_type. Defines the |
| /// amount of time over which impressions per user are counted and capped. |
| core.int numTimeUnits; |
| |
| /// The time unit. Along with num_time_units defines the amount of time over |
| /// which impressions per user are counted and capped. |
| /// Possible string values are: |
| /// - "TIME_UNIT_TYPE_UNSPECIFIED" : A placeholder for an undefined time unit |
| /// type. This just indicates the variable with this value hasn't been |
| /// initialized. |
| /// - "MINUTE" : Minute |
| /// - "HOUR" : Hour |
| /// - "DAY" : Day |
| /// - "WEEK" : Week |
| /// - "MONTH" : Month |
| /// - "LIFETIME" : Lifetime |
| core.String timeUnitType; |
| |
| FrequencyCap(); |
| |
| FrequencyCap.fromJson(core.Map _json) { |
| if (_json.containsKey('maxImpressions')) { |
| maxImpressions = _json['maxImpressions'] as core.int; |
| } |
| if (_json.containsKey('numTimeUnits')) { |
| numTimeUnits = _json['numTimeUnits'] as core.int; |
| } |
| if (_json.containsKey('timeUnitType')) { |
| timeUnitType = _json['timeUnitType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (maxImpressions != null) { |
| _json['maxImpressions'] = maxImpressions; |
| } |
| if (numTimeUnits != null) { |
| _json['numTimeUnits'] = numTimeUnits; |
| } |
| if (timeUnitType != null) { |
| _json['timeUnitType'] = timeUnitType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Terms for Programmatic Guaranteed Deals. |
| class GuaranteedFixedPriceTerms { |
| /// Fixed price for the specified buyer. |
| core.List<PricePerBuyer> fixedPrices; |
| |
| /// Guaranteed impressions as a percentage. This is the percentage of |
| /// guaranteed looks that the buyer is guaranteeing to buy. |
| core.String guaranteedImpressions; |
| |
| /// Count of guaranteed looks. Required for deal, optional for product. |
| core.String guaranteedLooks; |
| |
| /// Daily minimum looks for CPD deal types. |
| core.String minimumDailyLooks; |
| |
| GuaranteedFixedPriceTerms(); |
| |
| GuaranteedFixedPriceTerms.fromJson(core.Map _json) { |
| if (_json.containsKey('fixedPrices')) { |
| fixedPrices = (_json['fixedPrices'] as core.List) |
| .map<PricePerBuyer>((value) => PricePerBuyer.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('guaranteedImpressions')) { |
| guaranteedImpressions = _json['guaranteedImpressions'] as core.String; |
| } |
| if (_json.containsKey('guaranteedLooks')) { |
| guaranteedLooks = _json['guaranteedLooks'] as core.String; |
| } |
| if (_json.containsKey('minimumDailyLooks')) { |
| minimumDailyLooks = _json['minimumDailyLooks'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fixedPrices != null) { |
| _json['fixedPrices'] = |
| fixedPrices.map((value) => value.toJson()).toList(); |
| } |
| if (guaranteedImpressions != null) { |
| _json['guaranteedImpressions'] = guaranteedImpressions; |
| } |
| if (guaranteedLooks != null) { |
| _json['guaranteedLooks'] = guaranteedLooks; |
| } |
| if (minimumDailyLooks != null) { |
| _json['minimumDailyLooks'] = minimumDailyLooks; |
| } |
| return _json; |
| } |
| } |
| |
| /// HTML content for a creative. |
| class HtmlContent { |
| /// The height of the HTML snippet in pixels. |
| core.int height; |
| |
| /// The HTML snippet that displays the ad when inserted in the web page. |
| core.String snippet; |
| |
| /// The width of the HTML snippet in pixels. |
| core.int width; |
| |
| HtmlContent(); |
| |
| HtmlContent.fromJson(core.Map _json) { |
| if (_json.containsKey('height')) { |
| height = _json['height'] as core.int; |
| } |
| if (_json.containsKey('snippet')) { |
| snippet = _json['snippet'] as core.String; |
| } |
| if (_json.containsKey('width')) { |
| width = _json['width'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (height != null) { |
| _json['height'] = height; |
| } |
| if (snippet != null) { |
| _json['snippet'] = snippet; |
| } |
| if (width != null) { |
| _json['width'] = width; |
| } |
| return _json; |
| } |
| } |
| |
| /// An image resource. You may provide a larger image than was requested, so |
| /// long as the aspect ratio is preserved. |
| class Image { |
| /// Image height in pixels. |
| core.int height; |
| |
| /// The URL of the image. |
| core.String url; |
| |
| /// Image width in pixels. |
| core.int width; |
| |
| Image(); |
| |
| Image.fromJson(core.Map _json) { |
| if (_json.containsKey('height')) { |
| height = _json['height'] as core.int; |
| } |
| if (_json.containsKey('url')) { |
| url = _json['url'] as core.String; |
| } |
| if (_json.containsKey('width')) { |
| width = _json['width'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (height != null) { |
| _json['height'] = height; |
| } |
| if (url != null) { |
| _json['url'] = url; |
| } |
| if (width != null) { |
| _json['width'] = width; |
| } |
| return _json; |
| } |
| } |
| |
| /// The set of metrics that are measured in numbers of impressions, representing |
| /// how many impressions with the specified dimension values were considered |
| /// eligible at each stage of the bidding funnel. |
| class ImpressionMetricsRow { |
| /// The number of impressions available to the buyer on Ad Exchange. In some |
| /// cases this value may be unavailable. |
| MetricValue availableImpressions; |
| |
| /// The number of impressions for which Ad Exchange sent the buyer a bid |
| /// request. |
| MetricValue bidRequests; |
| |
| /// The number of impressions that match the buyer's inventory pretargeting. |
| MetricValue inventoryMatches; |
| |
| /// The number of impressions for which Ad Exchange received a response from |
| /// the buyer that contained at least one applicable bid. |
| MetricValue responsesWithBids; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| /// The number of impressions for which the buyer successfully sent a response |
| /// to Ad Exchange. |
| MetricValue successfulResponses; |
| |
| ImpressionMetricsRow(); |
| |
| ImpressionMetricsRow.fromJson(core.Map _json) { |
| if (_json.containsKey('availableImpressions')) { |
| availableImpressions = MetricValue.fromJson( |
| _json['availableImpressions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('bidRequests')) { |
| bidRequests = MetricValue.fromJson( |
| _json['bidRequests'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('inventoryMatches')) { |
| inventoryMatches = MetricValue.fromJson( |
| _json['inventoryMatches'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('responsesWithBids')) { |
| responsesWithBids = MetricValue.fromJson( |
| _json['responsesWithBids'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('successfulResponses')) { |
| successfulResponses = MetricValue.fromJson( |
| _json['successfulResponses'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (availableImpressions != null) { |
| _json['availableImpressions'] = availableImpressions.toJson(); |
| } |
| if (bidRequests != null) { |
| _json['bidRequests'] = bidRequests.toJson(); |
| } |
| if (inventoryMatches != null) { |
| _json['inventoryMatches'] = inventoryMatches.toJson(); |
| } |
| if (responsesWithBids != null) { |
| _json['responsesWithBids'] = responsesWithBids.toJson(); |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| if (successfulResponses != null) { |
| _json['successfulResponses'] = successfulResponses.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents the size of an ad unit that can be targeted on an ad request. It |
| /// only applies to Private Auction, AdX Preferred Deals and Auction Packages. |
| /// This targeting does not apply to Programmatic Guaranteed and Preferred Deals |
| /// in Ad Manager. |
| class InventorySizeTargeting { |
| /// A list of inventory sizes to be excluded. |
| core.List<AdSize> excludedInventorySizes; |
| |
| /// A list of inventory sizes to be included. |
| core.List<AdSize> targetedInventorySizes; |
| |
| InventorySizeTargeting(); |
| |
| InventorySizeTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('excludedInventorySizes')) { |
| excludedInventorySizes = (_json['excludedInventorySizes'] as core.List) |
| .map<AdSize>((value) => |
| AdSize.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('targetedInventorySizes')) { |
| targetedInventorySizes = (_json['targetedInventorySizes'] as core.List) |
| .map<AdSize>((value) => |
| AdSize.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (excludedInventorySizes != null) { |
| _json['excludedInventorySizes'] = |
| excludedInventorySizes.map((value) => value.toJson()).toList(); |
| } |
| if (targetedInventorySizes != null) { |
| _json['targetedInventorySizes'] = |
| targetedInventorySizes.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing the metrics that are measured in number of |
| /// bids. |
| class ListBidMetricsResponse { |
| /// List of rows, each containing a set of bid metrics. |
| core.List<BidMetricsRow> bidMetricsRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListBidMetricsRequest.pageToken field in the subsequent call to the |
| /// bidMetrics.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListBidMetricsResponse(); |
| |
| ListBidMetricsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('bidMetricsRows')) { |
| bidMetricsRows = (_json['bidMetricsRows'] as core.List) |
| .map<BidMetricsRow>((value) => BidMetricsRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bidMetricsRows != null) { |
| _json['bidMetricsRows'] = |
| bidMetricsRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all reasons that bid responses resulted in an |
| /// error. |
| class ListBidResponseErrorsResponse { |
| /// List of rows, with counts of bid responses aggregated by callout status. |
| core.List<CalloutStatusRow> calloutStatusRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListBidResponseErrorsRequest.pageToken field in the subsequent call to the |
| /// bidResponseErrors.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListBidResponseErrorsResponse(); |
| |
| ListBidResponseErrorsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('calloutStatusRows')) { |
| calloutStatusRows = (_json['calloutStatusRows'] as core.List) |
| .map<CalloutStatusRow>((value) => CalloutStatusRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (calloutStatusRows != null) { |
| _json['calloutStatusRows'] = |
| calloutStatusRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all reasons that bid responses were considered |
| /// to have no applicable bids. |
| class ListBidResponsesWithoutBidsResponse { |
| /// List of rows, with counts of bid responses without bids aggregated by |
| /// status. |
| core.List<BidResponseWithoutBidsStatusRow> bidResponseWithoutBidsStatusRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListBidResponsesWithoutBidsRequest.pageToken field in the subsequent call |
| /// to the bidResponsesWithoutBids.list method to retrieve the next page of |
| /// results. |
| core.String nextPageToken; |
| |
| ListBidResponsesWithoutBidsResponse(); |
| |
| ListBidResponsesWithoutBidsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('bidResponseWithoutBidsStatusRows')) { |
| bidResponseWithoutBidsStatusRows = |
| (_json['bidResponseWithoutBidsStatusRows'] as core.List) |
| .map<BidResponseWithoutBidsStatusRow>((value) => |
| BidResponseWithoutBidsStatusRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bidResponseWithoutBidsStatusRows != null) { |
| _json['bidResponseWithoutBidsStatusRows'] = |
| bidResponseWithoutBidsStatusRows |
| .map((value) => value.toJson()) |
| .toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| class ListClientUserInvitationsResponse { |
| /// The returned list of client users. |
| core.List<ClientUserInvitation> invitations; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListClientUserInvitationsRequest.pageToken field in the subsequent call to |
| /// the clients.invitations.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListClientUserInvitationsResponse(); |
| |
| ListClientUserInvitationsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('invitations')) { |
| invitations = (_json['invitations'] as core.List) |
| .map<ClientUserInvitation>((value) => ClientUserInvitation.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (invitations != null) { |
| _json['invitations'] = |
| invitations.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| class ListClientUsersResponse { |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListClientUsersRequest.pageToken field in the subsequent call to the |
| /// clients.invitations.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| /// The returned list of client users. |
| core.List<ClientUser> users; |
| |
| ListClientUsersResponse(); |
| |
| ListClientUsersResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('users')) { |
| users = (_json['users'] as core.List) |
| .map<ClientUser>((value) => |
| ClientUser.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (users != null) { |
| _json['users'] = users.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| class ListClientsResponse { |
| /// The returned list of clients. |
| core.List<Client> clients; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListClientsRequest.pageToken field in the subsequent call to the |
| /// accounts.clients.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListClientsResponse(); |
| |
| ListClientsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('clients')) { |
| clients = (_json['clients'] as core.List) |
| .map<Client>((value) => |
| Client.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (clients != null) { |
| _json['clients'] = clients.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all creatives associated with a given filtered |
| /// bid reason. |
| class ListCreativeStatusBreakdownByCreativeResponse { |
| /// List of rows, with counts of bids with a given creative status aggregated |
| /// by creative. |
| core.List<FilteredBidCreativeRow> filteredBidCreativeRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListCreativeStatusBreakdownByCreativeRequest.pageToken field in the |
| /// subsequent call to the filteredBids.creatives.list method to retrieve the |
| /// next page of results. |
| core.String nextPageToken; |
| |
| ListCreativeStatusBreakdownByCreativeResponse(); |
| |
| ListCreativeStatusBreakdownByCreativeResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('filteredBidCreativeRows')) { |
| filteredBidCreativeRows = (_json['filteredBidCreativeRows'] as core.List) |
| .map<FilteredBidCreativeRow>((value) => |
| FilteredBidCreativeRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (filteredBidCreativeRows != null) { |
| _json['filteredBidCreativeRows'] = |
| filteredBidCreativeRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all details associated with a given filtered |
| /// bid reason. |
| class ListCreativeStatusBreakdownByDetailResponse { |
| /// The type of detail that the detail IDs represent. |
| /// Possible string values are: |
| /// - "DETAIL_TYPE_UNSPECIFIED" : A placeholder for an undefined status. This |
| /// value will never be returned in responses. |
| /// - "CREATIVE_ATTRIBUTE" : Indicates that the detail ID refers to a creative |
| /// attribute; see |
| /// [publisher-excludable-creative-attributes](https://developers.google.com/authorized-buyers/rtb/downloads/publisher-excludable-creative-attributes). |
| /// - "VENDOR" : Indicates that the detail ID refers to a vendor; see |
| /// [vendors](https://developers.google.com/authorized-buyers/rtb/downloads/vendors). |
| /// - "SENSITIVE_CATEGORY" : Indicates that the detail ID refers to a |
| /// sensitive category; see |
| /// [ad-sensitive-categories](https://developers.google.com/authorized-buyers/rtb/downloads/ad-sensitive-categories). |
| /// - "PRODUCT_CATEGORY" : Indicates that the detail ID refers to a product |
| /// category; see |
| /// [ad-product-categories](https://developers.google.com/authorized-buyers/rtb/downloads/ad-product-categories). |
| /// - "DISAPPROVAL_REASON" : Indicates that the detail ID refers to a |
| /// disapproval reason; see DisapprovalReason enum in |
| /// [snippet-status-report-proto](https://developers.google.com/authorized-buyers/rtb/downloads/snippet-status-report-proto). |
| /// - "POLICY_TOPIC" : Indicates that the detail ID refers to a policy topic. |
| core.String detailType; |
| |
| /// List of rows, with counts of bids with a given creative status aggregated |
| /// by detail. |
| core.List<FilteredBidDetailRow> filteredBidDetailRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListCreativeStatusBreakdownByDetailRequest.pageToken field in the |
| /// subsequent call to the filteredBids.details.list method to retrieve the |
| /// next page of results. |
| core.String nextPageToken; |
| |
| ListCreativeStatusBreakdownByDetailResponse(); |
| |
| ListCreativeStatusBreakdownByDetailResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('detailType')) { |
| detailType = _json['detailType'] as core.String; |
| } |
| if (_json.containsKey('filteredBidDetailRows')) { |
| filteredBidDetailRows = (_json['filteredBidDetailRows'] as core.List) |
| .map<FilteredBidDetailRow>((value) => FilteredBidDetailRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (detailType != null) { |
| _json['detailType'] = detailType; |
| } |
| if (filteredBidDetailRows != null) { |
| _json['filteredBidDetailRows'] = |
| filteredBidDetailRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// A response for listing creatives. |
| class ListCreativesResponse { |
| /// The list of creatives. |
| core.List<Creative> creatives; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListCreativesRequest.page_token field in the subsequent call to |
| /// `ListCreatives` method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListCreativesResponse(); |
| |
| ListCreativesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('creatives')) { |
| creatives = (_json['creatives'] as core.List) |
| .map<Creative>((value) => |
| Creative.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creatives != null) { |
| _json['creatives'] = creatives.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// A response for listing creative and deal associations |
| class ListDealAssociationsResponse { |
| /// The list of associations. |
| core.List<CreativeDealAssociation> associations; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListDealAssociationsRequest.page_token field in the subsequent call to |
| /// 'ListDealAssociation' method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListDealAssociationsResponse(); |
| |
| ListDealAssociationsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('associations')) { |
| associations = (_json['associations'] as core.List) |
| .map<CreativeDealAssociation>((value) => |
| CreativeDealAssociation.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (associations != null) { |
| _json['associations'] = |
| associations.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing filter sets. |
| class ListFilterSetsResponse { |
| /// The filter sets belonging to the buyer. |
| core.List<FilterSet> filterSets; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListFilterSetsRequest.pageToken field in the subsequent call to the |
| /// accounts.filterSets.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListFilterSetsResponse(); |
| |
| ListFilterSetsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('filterSets')) { |
| filterSets = (_json['filterSets'] as core.List) |
| .map<FilterSet>((value) => |
| FilterSet.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (filterSets != null) { |
| _json['filterSets'] = filterSets.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all reasons that bid requests were filtered and |
| /// not sent to the buyer. |
| class ListFilteredBidRequestsResponse { |
| /// List of rows, with counts of filtered bid requests aggregated by callout |
| /// status. |
| core.List<CalloutStatusRow> calloutStatusRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListFilteredBidRequestsRequest.pageToken field in the subsequent call to |
| /// the filteredBidRequests.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListFilteredBidRequestsResponse(); |
| |
| ListFilteredBidRequestsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('calloutStatusRows')) { |
| calloutStatusRows = (_json['calloutStatusRows'] as core.List) |
| .map<CalloutStatusRow>((value) => CalloutStatusRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (calloutStatusRows != null) { |
| _json['calloutStatusRows'] = |
| calloutStatusRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all reasons that bids were filtered from the |
| /// auction. |
| class ListFilteredBidsResponse { |
| /// List of rows, with counts of filtered bids aggregated by filtering reason |
| /// (i.e. creative status). |
| core.List<CreativeStatusRow> creativeStatusRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListFilteredBidsRequest.pageToken field in the subsequent call to the |
| /// filteredBids.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListFilteredBidsResponse(); |
| |
| ListFilteredBidsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('creativeStatusRows')) { |
| creativeStatusRows = (_json['creativeStatusRows'] as core.List) |
| .map<CreativeStatusRow>((value) => CreativeStatusRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creativeStatusRows != null) { |
| _json['creativeStatusRows'] = |
| creativeStatusRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing the metrics that are measured in number of |
| /// impressions. |
| class ListImpressionMetricsResponse { |
| /// List of rows, each containing a set of impression metrics. |
| core.List<ImpressionMetricsRow> impressionMetricsRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListImpressionMetricsRequest.pageToken field in the subsequent call to the |
| /// impressionMetrics.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListImpressionMetricsResponse(); |
| |
| ListImpressionMetricsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('impressionMetricsRows')) { |
| impressionMetricsRows = (_json['impressionMetricsRows'] as core.List) |
| .map<ImpressionMetricsRow>((value) => ImpressionMetricsRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (impressionMetricsRows != null) { |
| _json['impressionMetricsRows'] = |
| impressionMetricsRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all reasons that bids lost in the auction. |
| class ListLosingBidsResponse { |
| /// List of rows, with counts of losing bids aggregated by loss reason (i.e. |
| /// creative status). |
| core.List<CreativeStatusRow> creativeStatusRows; |
| |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListLosingBidsRequest.pageToken field in the subsequent call to the |
| /// losingBids.list method to retrieve the next page of results. |
| core.String nextPageToken; |
| |
| ListLosingBidsResponse(); |
| |
| ListLosingBidsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('creativeStatusRows')) { |
| creativeStatusRows = (_json['creativeStatusRows'] as core.List) |
| .map<CreativeStatusRow>((value) => CreativeStatusRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creativeStatusRows != null) { |
| _json['creativeStatusRows'] = |
| creativeStatusRows.map((value) => value.toJson()).toList(); |
| } |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing all reasons for which a buyer was not billed |
| /// for a winning bid. |
| class ListNonBillableWinningBidsResponse { |
| /// A token to retrieve the next page of results. Pass this value in the |
| /// ListNonBillableWinningBidsRequest.pageToken field in the subsequent call |
| /// to the nonBillableWinningBids.list method to retrieve the next page of |
| /// results. |
| core.String nextPageToken; |
| |
| /// List of rows, with counts of bids not billed aggregated by reason. |
| core.List<NonBillableWinningBidStatusRow> nonBillableWinningBidStatusRows; |
| |
| ListNonBillableWinningBidsResponse(); |
| |
| ListNonBillableWinningBidsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('nonBillableWinningBidStatusRows')) { |
| nonBillableWinningBidStatusRows = |
| (_json['nonBillableWinningBidStatusRows'] as core.List) |
| .map<NonBillableWinningBidStatusRow>((value) => |
| NonBillableWinningBidStatusRow.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (nonBillableWinningBidStatusRows != null) { |
| _json['nonBillableWinningBidStatusRows'] = nonBillableWinningBidStatusRows |
| .map((value) => value.toJson()) |
| .toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing products visible to the buyer. |
| class ListProductsResponse { |
| /// List pagination support. |
| core.String nextPageToken; |
| |
| /// The list of matching products at their head revision number. |
| core.List<Product> products; |
| |
| ListProductsResponse(); |
| |
| ListProductsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('products')) { |
| products = (_json['products'] as core.List) |
| .map<Product>((value) => |
| Product.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (products != null) { |
| _json['products'] = products.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for listing proposals. |
| class ListProposalsResponse { |
| /// Continuation token for fetching the next page of results. |
| core.String nextPageToken; |
| |
| /// The list of proposals. |
| core.List<Proposal> proposals; |
| |
| ListProposalsResponse(); |
| |
| ListProposalsResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('proposals')) { |
| proposals = (_json['proposals'] as core.List) |
| .map<Proposal>((value) => |
| Proposal.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (proposals != null) { |
| _json['proposals'] = proposals.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Response message for profiles visible to the buyer. |
| class ListPublisherProfilesResponse { |
| /// List pagination support |
| core.String nextPageToken; |
| |
| /// The list of matching publisher profiles. |
| core.List<PublisherProfile> publisherProfiles; |
| |
| ListPublisherProfilesResponse(); |
| |
| ListPublisherProfilesResponse.fromJson(core.Map _json) { |
| if (_json.containsKey('nextPageToken')) { |
| nextPageToken = _json['nextPageToken'] as core.String; |
| } |
| if (_json.containsKey('publisherProfiles')) { |
| publisherProfiles = (_json['publisherProfiles'] as core.List) |
| .map<PublisherProfile>((value) => PublisherProfile.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (nextPageToken != null) { |
| _json['nextPageToken'] = nextPageToken; |
| } |
| if (publisherProfiles != null) { |
| _json['publisherProfiles'] = |
| publisherProfiles.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. The Geo criteria the restriction applies to. |
| class LocationContext { |
| /// IDs representing the geo location for this context. Please refer to the |
| /// [geo-table.csv](https://storage.googleapis.com/adx-rtb-dictionaries/geo-table.csv) |
| /// file for different geo criteria IDs. |
| core.List<core.int> geoCriteriaIds; |
| |
| LocationContext(); |
| |
| LocationContext.fromJson(core.Map _json) { |
| if (_json.containsKey('geoCriteriaIds')) { |
| geoCriteriaIds = (_json['geoCriteriaIds'] as core.List) |
| .map<core.int>((value) => value as core.int) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (geoCriteriaIds != null) { |
| _json['geoCriteriaIds'] = geoCriteriaIds; |
| } |
| return _json; |
| } |
| } |
| |
| /// Targeting represents different criteria that can be used by advertisers to |
| /// target ad inventory. For example, they can choose to target ad requests only |
| /// if the user is in the US. Multiple types of targeting are always applied as |
| /// a logical AND, unless noted otherwise. |
| class MarketplaceTargeting { |
| /// Geo criteria IDs to be included/excluded. |
| CriteriaTargeting geoTargeting; |
| |
| /// Inventory sizes to be included/excluded. |
| InventorySizeTargeting inventorySizeTargeting; |
| |
| /// Placement targeting information, e.g., URL, mobile applications. |
| PlacementTargeting placementTargeting; |
| |
| /// Technology targeting information, e.g., operating system, device category. |
| TechnologyTargeting technologyTargeting; |
| |
| /// Video targeting information. |
| VideoTargeting videoTargeting; |
| |
| MarketplaceTargeting(); |
| |
| MarketplaceTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('geoTargeting')) { |
| geoTargeting = CriteriaTargeting.fromJson( |
| _json['geoTargeting'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('inventorySizeTargeting')) { |
| inventorySizeTargeting = InventorySizeTargeting.fromJson( |
| _json['inventorySizeTargeting'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('placementTargeting')) { |
| placementTargeting = PlacementTargeting.fromJson( |
| _json['placementTargeting'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('technologyTargeting')) { |
| technologyTargeting = TechnologyTargeting.fromJson( |
| _json['technologyTargeting'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('videoTargeting')) { |
| videoTargeting = VideoTargeting.fromJson( |
| _json['videoTargeting'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (geoTargeting != null) { |
| _json['geoTargeting'] = geoTargeting.toJson(); |
| } |
| if (inventorySizeTargeting != null) { |
| _json['inventorySizeTargeting'] = inventorySizeTargeting.toJson(); |
| } |
| if (placementTargeting != null) { |
| _json['placementTargeting'] = placementTargeting.toJson(); |
| } |
| if (technologyTargeting != null) { |
| _json['technologyTargeting'] = technologyTargeting.toJson(); |
| } |
| if (videoTargeting != null) { |
| _json['videoTargeting'] = videoTargeting.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A metric value, with an expected value and a variance; represents a count |
| /// that may be either exact or estimated (i.e. when sampled). |
| class MetricValue { |
| /// The expected value of the metric. |
| core.String value; |
| |
| /// The variance (i.e. square of the standard deviation) of the metric value. |
| /// If value is exact, variance is 0. Can be used to calculate margin of error |
| /// as a percentage of value, using the following formula, where Z is the |
| /// standard constant that depends on the desired size of the confidence |
| /// interval (e.g. for 90% confidence interval, use Z = 1.645): marginOfError |
| /// = 100 * Z * sqrt(variance) / value |
| core.String variance; |
| |
| MetricValue(); |
| |
| MetricValue.fromJson(core.Map _json) { |
| if (_json.containsKey('value')) { |
| value = _json['value'] as core.String; |
| } |
| if (_json.containsKey('variance')) { |
| variance = _json['variance'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (value != null) { |
| _json['value'] = value; |
| } |
| if (variance != null) { |
| _json['variance'] = variance; |
| } |
| return _json; |
| } |
| } |
| |
| /// Mobile application targeting settings. |
| class MobileApplicationTargeting { |
| /// Publisher owned apps to be targeted or excluded by the publisher to |
| /// display the ads in. |
| FirstPartyMobileApplicationTargeting firstPartyTargeting; |
| |
| MobileApplicationTargeting(); |
| |
| MobileApplicationTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('firstPartyTargeting')) { |
| firstPartyTargeting = FirstPartyMobileApplicationTargeting.fromJson( |
| _json['firstPartyTargeting'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (firstPartyTargeting != null) { |
| _json['firstPartyTargeting'] = firstPartyTargeting.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents an amount of money with its currency type. |
| class Money { |
| /// The 3-letter currency code defined in ISO 4217. |
| core.String currencyCode; |
| |
| /// Number of nano (10^-9) units of the amount. The value must be between |
| /// -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` |
| /// must be positive or zero. If `units` is zero, `nanos` can be positive, |
| /// zero, or negative. If `units` is negative, `nanos` must be negative or |
| /// zero. For example $-1.75 is represented as `units`=-1 and |
| /// `nanos`=-750,000,000. |
| core.int nanos; |
| |
| /// The whole units of the amount. For example if `currencyCode` is `"USD"`, |
| /// then 1 unit is one US dollar. |
| core.String units; |
| |
| Money(); |
| |
| Money.fromJson(core.Map _json) { |
| if (_json.containsKey('currencyCode')) { |
| currencyCode = _json['currencyCode'] as core.String; |
| } |
| if (_json.containsKey('nanos')) { |
| nanos = _json['nanos'] as core.int; |
| } |
| if (_json.containsKey('units')) { |
| units = _json['units'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (currencyCode != null) { |
| _json['currencyCode'] = currencyCode; |
| } |
| if (nanos != null) { |
| _json['nanos'] = nanos; |
| } |
| if (units != null) { |
| _json['units'] = units; |
| } |
| return _json; |
| } |
| } |
| |
| /// Native content for a creative. |
| class NativeContent { |
| /// The name of the advertiser or sponsor, to be displayed in the ad creative. |
| core.String advertiserName; |
| |
| /// The app icon, for app download ads. |
| Image appIcon; |
| |
| /// A long description of the ad. |
| core.String body; |
| |
| /// A label for the button that the user is supposed to click. |
| core.String callToAction; |
| |
| /// The URL that the browser/SDK will load when the user clicks the ad. |
| core.String clickLinkUrl; |
| |
| /// The URL to use for click tracking. |
| core.String clickTrackingUrl; |
| |
| /// A short title for the ad. |
| core.String headline; |
| |
| /// A large image. |
| Image image; |
| |
| /// A smaller image, for the advertiser's logo. |
| Image logo; |
| |
| /// The price of the promoted app including currency info. |
| core.String priceDisplayText; |
| |
| /// The app rating in the app store. Must be in the range [0-5]. |
| core.double starRating; |
| |
| /// The URL to the app store to purchase/download the promoted app. |
| core.String storeUrl; |
| |
| /// The URL to fetch a native video ad. |
| core.String videoUrl; |
| |
| NativeContent(); |
| |
| NativeContent.fromJson(core.Map _json) { |
| if (_json.containsKey('advertiserName')) { |
| advertiserName = _json['advertiserName'] as core.String; |
| } |
| if (_json.containsKey('appIcon')) { |
| appIcon = Image.fromJson( |
| _json['appIcon'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('body')) { |
| body = _json['body'] as core.String; |
| } |
| if (_json.containsKey('callToAction')) { |
| callToAction = _json['callToAction'] as core.String; |
| } |
| if (_json.containsKey('clickLinkUrl')) { |
| clickLinkUrl = _json['clickLinkUrl'] as core.String; |
| } |
| if (_json.containsKey('clickTrackingUrl')) { |
| clickTrackingUrl = _json['clickTrackingUrl'] as core.String; |
| } |
| if (_json.containsKey('headline')) { |
| headline = _json['headline'] as core.String; |
| } |
| if (_json.containsKey('image')) { |
| image = |
| Image.fromJson(_json['image'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('logo')) { |
| logo = |
| Image.fromJson(_json['logo'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('priceDisplayText')) { |
| priceDisplayText = _json['priceDisplayText'] as core.String; |
| } |
| if (_json.containsKey('starRating')) { |
| starRating = (_json['starRating'] as core.num).toDouble(); |
| } |
| if (_json.containsKey('storeUrl')) { |
| storeUrl = _json['storeUrl'] as core.String; |
| } |
| if (_json.containsKey('videoUrl')) { |
| videoUrl = _json['videoUrl'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (advertiserName != null) { |
| _json['advertiserName'] = advertiserName; |
| } |
| if (appIcon != null) { |
| _json['appIcon'] = appIcon.toJson(); |
| } |
| if (body != null) { |
| _json['body'] = body; |
| } |
| if (callToAction != null) { |
| _json['callToAction'] = callToAction; |
| } |
| if (clickLinkUrl != null) { |
| _json['clickLinkUrl'] = clickLinkUrl; |
| } |
| if (clickTrackingUrl != null) { |
| _json['clickTrackingUrl'] = clickTrackingUrl; |
| } |
| if (headline != null) { |
| _json['headline'] = headline; |
| } |
| if (image != null) { |
| _json['image'] = image.toJson(); |
| } |
| if (logo != null) { |
| _json['logo'] = logo.toJson(); |
| } |
| if (priceDisplayText != null) { |
| _json['priceDisplayText'] = priceDisplayText; |
| } |
| if (starRating != null) { |
| _json['starRating'] = starRating; |
| } |
| if (storeUrl != null) { |
| _json['storeUrl'] = storeUrl; |
| } |
| if (videoUrl != null) { |
| _json['videoUrl'] = videoUrl; |
| } |
| return _json; |
| } |
| } |
| |
| /// The number of winning bids with the specified dimension values for which the |
| /// buyer was not billed, as described by the specified status. |
| class NonBillableWinningBidStatusRow { |
| /// The number of bids with the specified status. |
| MetricValue bidCount; |
| |
| /// The values of all dimensions associated with metric values in this row. |
| RowDimensions rowDimensions; |
| |
| /// The status specifying why the winning bids were not billed. |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : A placeholder for an undefined status. This value |
| /// will never be returned in responses. |
| /// - "AD_NOT_RENDERED" : The buyer was not billed because the ad was not |
| /// rendered by the publisher. |
| /// - "INVALID_IMPRESSION" : The buyer was not billed because the impression |
| /// won by the bid was determined to be invalid. |
| /// - "FATAL_VAST_ERROR" : A video impression was served but a fatal error was |
| /// reported from the client during playback. |
| /// - "LOST_IN_MEDIATION" : The buyer was not billed because the ad was |
| /// outplaced in the mediation waterfall. |
| core.String status; |
| |
| NonBillableWinningBidStatusRow(); |
| |
| NonBillableWinningBidStatusRow.fromJson(core.Map _json) { |
| if (_json.containsKey('bidCount')) { |
| bidCount = MetricValue.fromJson( |
| _json['bidCount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('rowDimensions')) { |
| rowDimensions = RowDimensions.fromJson( |
| _json['rowDimensions'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('status')) { |
| status = _json['status'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (bidCount != null) { |
| _json['bidCount'] = bidCount.toJson(); |
| } |
| if (rowDimensions != null) { |
| _json['rowDimensions'] = rowDimensions.toJson(); |
| } |
| if (status != null) { |
| _json['status'] = status; |
| } |
| return _json; |
| } |
| } |
| |
| /// Terms for Private Auctions. Note that Private Auctions can be created only |
| /// by the seller, but they can be returned in a get or list request. |
| class NonGuaranteedAuctionTerms { |
| /// True if open auction buyers are allowed to compete with invited buyers in |
| /// this private auction. |
| core.bool autoOptimizePrivateAuction; |
| |
| /// Reserve price for the specified buyer. |
| core.List<PricePerBuyer> reservePricesPerBuyer; |
| |
| NonGuaranteedAuctionTerms(); |
| |
| NonGuaranteedAuctionTerms.fromJson(core.Map _json) { |
| if (_json.containsKey('autoOptimizePrivateAuction')) { |
| autoOptimizePrivateAuction = |
| _json['autoOptimizePrivateAuction'] as core.bool; |
| } |
| if (_json.containsKey('reservePricesPerBuyer')) { |
| reservePricesPerBuyer = (_json['reservePricesPerBuyer'] as core.List) |
| .map<PricePerBuyer>((value) => PricePerBuyer.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (autoOptimizePrivateAuction != null) { |
| _json['autoOptimizePrivateAuction'] = autoOptimizePrivateAuction; |
| } |
| if (reservePricesPerBuyer != null) { |
| _json['reservePricesPerBuyer'] = |
| reservePricesPerBuyer.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Terms for Preferred Deals. Note that Preferred Deals cannot be created via |
| /// the API at this time, but can be returned in a get or list request. |
| class NonGuaranteedFixedPriceTerms { |
| /// Fixed price for the specified buyer. |
| core.List<PricePerBuyer> fixedPrices; |
| |
| NonGuaranteedFixedPriceTerms(); |
| |
| NonGuaranteedFixedPriceTerms.fromJson(core.Map _json) { |
| if (_json.containsKey('fixedPrices')) { |
| fixedPrices = (_json['fixedPrices'] as core.List) |
| .map<PricePerBuyer>((value) => PricePerBuyer.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (fixedPrices != null) { |
| _json['fixedPrices'] = |
| fixedPrices.map((value) => value.toJson()).toList(); |
| } |
| return _json; |
| } |
| } |
| |
| /// A proposal may be associated to several notes. |
| class Note { |
| /// Output only. The timestamp for when this note was created. |
| core.String createTime; |
| |
| /// Output only. The role of the person (buyer/seller) creating the note. |
| /// Possible string values are: |
| /// - "BUYER_SELLER_ROLE_UNSPECIFIED" : A placeholder for an undefined |
| /// buyer/seller role. |
| /// - "BUYER" : Specifies the role as buyer. |
| /// - "SELLER" : Specifies the role as seller. |
| core.String creatorRole; |
| |
| /// The actual note to attach. (max-length: 1024 unicode code units) Note: |
| /// This field may be set only when creating the resource. Modifying this |
| /// field while updating the resource will result in an error. |
| core.String note; |
| |
| /// Output only. The unique ID for the note. |
| core.String noteId; |
| |
| /// Output only. The revision number of the proposal when the note is created. |
| core.String proposalRevision; |
| |
| Note(); |
| |
| Note.fromJson(core.Map _json) { |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('creatorRole')) { |
| creatorRole = _json['creatorRole'] as core.String; |
| } |
| if (_json.containsKey('note')) { |
| note = _json['note'] as core.String; |
| } |
| if (_json.containsKey('noteId')) { |
| noteId = _json['noteId'] as core.String; |
| } |
| if (_json.containsKey('proposalRevision')) { |
| proposalRevision = _json['proposalRevision'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (creatorRole != null) { |
| _json['creatorRole'] = creatorRole; |
| } |
| if (note != null) { |
| _json['note'] = note; |
| } |
| if (noteId != null) { |
| _json['noteId'] = noteId; |
| } |
| if (proposalRevision != null) { |
| _json['proposalRevision'] = proposalRevision; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents targeting information for operating systems. |
| class OperatingSystemTargeting { |
| /// IDs of operating systems to be included/excluded. |
| CriteriaTargeting operatingSystemCriteria; |
| |
| /// IDs of operating system versions to be included/excluded. |
| CriteriaTargeting operatingSystemVersionCriteria; |
| |
| OperatingSystemTargeting(); |
| |
| OperatingSystemTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('operatingSystemCriteria')) { |
| operatingSystemCriteria = CriteriaTargeting.fromJson( |
| _json['operatingSystemCriteria'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('operatingSystemVersionCriteria')) { |
| operatingSystemVersionCriteria = CriteriaTargeting.fromJson( |
| _json['operatingSystemVersionCriteria'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (operatingSystemCriteria != null) { |
| _json['operatingSystemCriteria'] = operatingSystemCriteria.toJson(); |
| } |
| if (operatingSystemVersionCriteria != null) { |
| _json['operatingSystemVersionCriteria'] = |
| operatingSystemVersionCriteria.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message to pause serving for an already-finalized proposal. |
| class PauseProposalRequest { |
| /// The reason why the proposal is being paused. This human readable message |
| /// will be displayed in the seller's UI. (Max length: 1000 unicode code |
| /// units.) |
| core.String reason; |
| |
| PauseProposalRequest(); |
| |
| PauseProposalRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('reason')) { |
| reason = _json['reason'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (reason != null) { |
| _json['reason'] = reason; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents targeting about where the ads can appear, e.g., certain sites or |
| /// mobile applications. Different placement targeting types will be logically |
| /// OR'ed. |
| class PlacementTargeting { |
| /// Mobile application targeting information in a deal. This doesn't apply to |
| /// Auction Packages. |
| MobileApplicationTargeting mobileApplicationTargeting; |
| |
| /// URLs to be included/excluded. |
| UrlTargeting urlTargeting; |
| |
| PlacementTargeting(); |
| |
| PlacementTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('mobileApplicationTargeting')) { |
| mobileApplicationTargeting = MobileApplicationTargeting.fromJson( |
| _json['mobileApplicationTargeting'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('urlTargeting')) { |
| urlTargeting = UrlTargeting.fromJson( |
| _json['urlTargeting'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (mobileApplicationTargeting != null) { |
| _json['mobileApplicationTargeting'] = mobileApplicationTargeting.toJson(); |
| } |
| if (urlTargeting != null) { |
| _json['urlTargeting'] = urlTargeting.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. The type of platform the restriction applies to. |
| class PlatformContext { |
| /// The platforms this restriction applies to. |
| core.List<core.String> platforms; |
| |
| PlatformContext(); |
| |
| PlatformContext.fromJson(core.Map _json) { |
| if (_json.containsKey('platforms')) { |
| platforms = (_json['platforms'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (platforms != null) { |
| _json['platforms'] = platforms; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a price and a pricing type for a product / deal. |
| class Price { |
| /// The actual price with currency specified. |
| Money amount; |
| |
| /// The pricing type for the deal/product. (default: CPM) |
| /// Possible string values are: |
| /// - "PRICING_TYPE_UNSPECIFIED" : A placeholder for an undefined pricing |
| /// type. If the pricing type is unpsecified, `COST_PER_MILLE` will be used |
| /// instead. |
| /// - "COST_PER_MILLE" : Cost per thousand impressions. |
| /// - "COST_PER_DAY" : Cost per day |
| core.String pricingType; |
| |
| Price(); |
| |
| Price.fromJson(core.Map _json) { |
| if (_json.containsKey('amount')) { |
| amount = Money.fromJson( |
| _json['amount'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('pricingType')) { |
| pricingType = _json['pricingType'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (amount != null) { |
| _json['amount'] = amount.toJson(); |
| } |
| if (pricingType != null) { |
| _json['pricingType'] = pricingType; |
| } |
| return _json; |
| } |
| } |
| |
| /// Used to specify pricing rules for buyers/advertisers. Each PricePerBuyer in |
| /// a product can become 0 or 1 deals. To check if there is a PricePerBuyer for |
| /// a particular buyer or buyer/advertiser pair, we look for the most specific |
| /// matching rule - we first look for a rule matching the buyer and advertiser, |
| /// next a rule with the buyer but an empty advertiser list, and otherwise look |
| /// for a matching rule where no buyer is set. |
| class PricePerBuyer { |
| /// The list of advertisers for this price when associated with this buyer. If |
| /// empty, all advertisers with this buyer pay this price. |
| core.List<core.String> advertiserIds; |
| |
| /// The buyer who will pay this price. If unset, all buyers can pay this price |
| /// (if the advertisers match, and there's no more specific rule matching the |
| /// buyer). |
| Buyer buyer; |
| |
| /// The specified price. |
| Price price; |
| |
| PricePerBuyer(); |
| |
| PricePerBuyer.fromJson(core.Map _json) { |
| if (_json.containsKey('advertiserIds')) { |
| advertiserIds = (_json['advertiserIds'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('buyer')) { |
| buyer = |
| Buyer.fromJson(_json['buyer'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('price')) { |
| price = |
| Price.fromJson(_json['price'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (advertiserIds != null) { |
| _json['advertiserIds'] = advertiserIds; |
| } |
| if (buyer != null) { |
| _json['buyer'] = buyer.toJson(); |
| } |
| if (price != null) { |
| _json['price'] = price.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Buyers are allowed to store certain types of private data in a |
| /// proposal/deal. |
| class PrivateData { |
| /// A buyer or seller specified reference ID. This can be queried in the list |
| /// operations (max-length: 1024 unicode code units). |
| core.String referenceId; |
| |
| PrivateData(); |
| |
| PrivateData.fromJson(core.Map _json) { |
| if (_json.containsKey('referenceId')) { |
| referenceId = _json['referenceId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (referenceId != null) { |
| _json['referenceId'] = referenceId; |
| } |
| return _json; |
| } |
| } |
| |
| /// Note: this resource requires whitelisting for access. Please contact your |
| /// account manager for access to Marketplace resources. A product is a segment |
| /// of inventory that a seller wishes to sell. It is associated with certain |
| /// terms and targeting information which helps the buyer know more about the |
| /// inventory. |
| class Product { |
| /// The proposed end time for the deal. The field will be truncated to the |
| /// order of seconds during serving. |
| core.String availableEndTime; |
| |
| /// Inventory availability dates. The start time will be truncated to seconds |
| /// during serving. Thus, a field specified as 3:23:34.456 (HH:mm:ss.SSS) will |
| /// be truncated to 3:23:34 when serving. |
| core.String availableStartTime; |
| |
| /// Creation time. |
| core.String createTime; |
| |
| /// Optional contact information for the creator of this product. |
| core.List<ContactInformation> creatorContacts; |
| |
| /// The display name for this product as set by the seller. |
| core.String displayName; |
| |
| /// If the creator has already signed off on the product, then the buyer can |
| /// finalize the deal by accepting the product as is. When copying to a |
| /// proposal, if any of the terms are changed, then auto_finalize is |
| /// automatically set to false. |
| core.bool hasCreatorSignedOff; |
| |
| /// The unique ID for the product. |
| core.String productId; |
| |
| /// The revision number of the product (auto-assigned by Marketplace). |
| core.String productRevision; |
| |
| /// An ID which can be used by the Publisher Profile API to get more |
| /// information about the seller that created this product. |
| core.String publisherProfileId; |
| |
| /// Information about the seller that created this product. |
| Seller seller; |
| |
| /// The syndication product associated with the deal. |
| /// Possible string values are: |
| /// - "SYNDICATION_PRODUCT_UNSPECIFIED" : A placeholder for an undefined |
| /// syndication product. |
| /// - "CONTENT" : This typically represents a web page. |
| /// - "MOBILE" : This represents a mobile property. |
| /// - "VIDEO" : This represents video ad formats. |
| /// - "GAMES" : This represents ads shown within games. |
| core.String syndicationProduct; |
| |
| /// Targeting that is shared between the buyer and the seller. Each targeting |
| /// criterion has a specified key and for each key there is a list of |
| /// inclusion value or exclusion values. |
| core.List<TargetingCriteria> targetingCriterion; |
| |
| /// The negotiable terms of the deal. |
| DealTerms terms; |
| |
| /// Time of last update. |
| core.String updateTime; |
| |
| /// The web-property code for the seller. This needs to be copied as is when |
| /// adding a new deal to a proposal. |
| core.String webPropertyCode; |
| |
| Product(); |
| |
| Product.fromJson(core.Map _json) { |
| if (_json.containsKey('availableEndTime')) { |
| availableEndTime = _json['availableEndTime'] as core.String; |
| } |
| if (_json.containsKey('availableStartTime')) { |
| availableStartTime = _json['availableStartTime'] as core.String; |
| } |
| if (_json.containsKey('createTime')) { |
| createTime = _json['createTime'] as core.String; |
| } |
| if (_json.containsKey('creatorContacts')) { |
| creatorContacts = (_json['creatorContacts'] as core.List) |
| .map<ContactInformation>((value) => ContactInformation.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('hasCreatorSignedOff')) { |
| hasCreatorSignedOff = _json['hasCreatorSignedOff'] as core.bool; |
| } |
| if (_json.containsKey('productId')) { |
| productId = _json['productId'] as core.String; |
| } |
| if (_json.containsKey('productRevision')) { |
| productRevision = _json['productRevision'] as core.String; |
| } |
| if (_json.containsKey('publisherProfileId')) { |
| publisherProfileId = _json['publisherProfileId'] as core.String; |
| } |
| if (_json.containsKey('seller')) { |
| seller = Seller.fromJson( |
| _json['seller'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('syndicationProduct')) { |
| syndicationProduct = _json['syndicationProduct'] as core.String; |
| } |
| if (_json.containsKey('targetingCriterion')) { |
| targetingCriterion = (_json['targetingCriterion'] as core.List) |
| .map<TargetingCriteria>((value) => TargetingCriteria.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('terms')) { |
| terms = DealTerms.fromJson( |
| _json['terms'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('updateTime')) { |
| updateTime = _json['updateTime'] as core.String; |
| } |
| if (_json.containsKey('webPropertyCode')) { |
| webPropertyCode = _json['webPropertyCode'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (availableEndTime != null) { |
| _json['availableEndTime'] = availableEndTime; |
| } |
| if (availableStartTime != null) { |
| _json['availableStartTime'] = availableStartTime; |
| } |
| if (createTime != null) { |
| _json['createTime'] = createTime; |
| } |
| if (creatorContacts != null) { |
| _json['creatorContacts'] = |
| creatorContacts.map((value) => value.toJson()).toList(); |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (hasCreatorSignedOff != null) { |
| _json['hasCreatorSignedOff'] = hasCreatorSignedOff; |
| } |
| if (productId != null) { |
| _json['productId'] = productId; |
| } |
| if (productRevision != null) { |
| _json['productRevision'] = productRevision; |
| } |
| if (publisherProfileId != null) { |
| _json['publisherProfileId'] = publisherProfileId; |
| } |
| if (seller != null) { |
| _json['seller'] = seller.toJson(); |
| } |
| if (syndicationProduct != null) { |
| _json['syndicationProduct'] = syndicationProduct; |
| } |
| if (targetingCriterion != null) { |
| _json['targetingCriterion'] = |
| targetingCriterion.map((value) => value.toJson()).toList(); |
| } |
| if (terms != null) { |
| _json['terms'] = terms.toJson(); |
| } |
| if (updateTime != null) { |
| _json['updateTime'] = updateTime; |
| } |
| if (webPropertyCode != null) { |
| _json['webPropertyCode'] = webPropertyCode; |
| } |
| return _json; |
| } |
| } |
| |
| /// Note: this resource requires whitelisting for access. Please contact your |
| /// account manager for access to Marketplace resources. Represents a proposal |
| /// in the Marketplace. A proposal is the unit of negotiation between a seller |
| /// and a buyer and contains deals which are served. Note: you can not update, |
| /// create, or otherwise modify Private Auction or Preferred Deals deals through |
| /// the API. Fields are updatable unless noted otherwise. |
| class Proposal { |
| /// Output only. Reference to the buyer that will get billed for this |
| /// proposal. |
| Buyer billedBuyer; |
| |
| /// Reference to the buyer on the proposal. Note: This field may be set only |
| /// when creating the resource. Modifying this field while updating the |
| /// resource will result in an error. |
| Buyer buyer; |
| |
| /// Contact information for the buyer. |
| core.List<ContactInformation> buyerContacts; |
| |
| /// Private data for buyer. (hidden from seller). |
| PrivateData buyerPrivateData; |
| |
| /// The deals associated with this proposal. For Private Auction proposals |
| /// (whose deals have NonGuaranteedAuctionTerms), there will only be one deal. |
| core.List<Deal> deals; |
| |
| /// The name for the proposal. |
| core.String displayName; |
| |
| /// Output only. True if the proposal is being renegotiated. |
| core.bool isRenegotiating; |
| |
| /// Output only. True, if the buyside inventory setup is complete for this |
| /// proposal. |
| core.bool isSetupComplete; |
| |
| /// Output only. The role of the last user that either updated the proposal or |
| /// left a comment. |
| /// Possible string values are: |
| /// - "BUYER_SELLER_ROLE_UNSPECIFIED" : A placeholder for an undefined |
| /// buyer/seller role. |
| /// - "BUYER" : Specifies the role as buyer. |
| /// - "SELLER" : Specifies the role as seller. |
| core.String lastUpdaterOrCommentorRole; |
| |
| /// Output only. The notes associated with this proposal. |
| core.List<Note> notes; |
| |
| /// Output only. Indicates whether the buyer/seller created the proposal. |
| /// Possible string values are: |
| /// - "BUYER_SELLER_ROLE_UNSPECIFIED" : A placeholder for an undefined |
| /// buyer/seller role. |
| /// - "BUYER" : Specifies the role as buyer. |
| /// - "SELLER" : Specifies the role as seller. |
| core.String originatorRole; |
| |
| /// Output only. Private auction ID if this proposal is a private auction |
| /// proposal. |
| core.String privateAuctionId; |
| |
| /// Output only. The unique ID of the proposal. |
| core.String proposalId; |
| |
| /// Output only. The revision number for the proposal. Each update to the |
| /// proposal or the deal causes the proposal revision number to |
| /// auto-increment. The buyer keeps track of the last revision number they |
| /// know of and pass it in when making an update. If the head revision number |
| /// on the server has since incremented, then an ABORTED error is returned |
| /// during the update operation to let the buyer know that a subsequent update |
| /// was made. |
| core.String proposalRevision; |
| |
| /// Output only. The current state of the proposal. |
| /// Possible string values are: |
| /// - "PROPOSAL_STATE_UNSPECIFIED" : A placeholder for an undefined proposal |
| /// state. |
| /// - "PROPOSED" : The proposal is under negotiation or renegotiation. |
| /// - "BUYER_ACCEPTED" : The proposal has been accepted by the buyer. |
| /// - "SELLER_ACCEPTED" : The proposal has been accepted by the seller. |
| /// - "CANCELED" : The negotiations on the proposal were canceled and the |
| /// proposal was never finalized. |
| /// - "FINALIZED" : The proposal is finalized. During renegotiation, the |
| /// proposal may not be in this state. |
| core.String proposalState; |
| |
| /// Reference to the seller on the proposal. Note: This field may be set only |
| /// when creating the resource. Modifying this field while updating the |
| /// resource will result in an error. |
| Seller seller; |
| |
| /// Output only. Contact information for the seller. |
| core.List<ContactInformation> sellerContacts; |
| |
| /// Output only. The time when the proposal was last revised. |
| core.String updateTime; |
| |
| Proposal(); |
| |
| Proposal.fromJson(core.Map _json) { |
| if (_json.containsKey('billedBuyer')) { |
| billedBuyer = Buyer.fromJson( |
| _json['billedBuyer'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('buyer')) { |
| buyer = |
| Buyer.fromJson(_json['buyer'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('buyerContacts')) { |
| buyerContacts = (_json['buyerContacts'] as core.List) |
| .map<ContactInformation>((value) => ContactInformation.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('buyerPrivateData')) { |
| buyerPrivateData = PrivateData.fromJson( |
| _json['buyerPrivateData'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('deals')) { |
| deals = (_json['deals'] as core.List) |
| .map<Deal>((value) => |
| Deal.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('isRenegotiating')) { |
| isRenegotiating = _json['isRenegotiating'] as core.bool; |
| } |
| if (_json.containsKey('isSetupComplete')) { |
| isSetupComplete = _json['isSetupComplete'] as core.bool; |
| } |
| if (_json.containsKey('lastUpdaterOrCommentorRole')) { |
| lastUpdaterOrCommentorRole = |
| _json['lastUpdaterOrCommentorRole'] as core.String; |
| } |
| if (_json.containsKey('notes')) { |
| notes = (_json['notes'] as core.List) |
| .map<Note>((value) => |
| Note.fromJson(value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('originatorRole')) { |
| originatorRole = _json['originatorRole'] as core.String; |
| } |
| if (_json.containsKey('privateAuctionId')) { |
| privateAuctionId = _json['privateAuctionId'] as core.String; |
| } |
| if (_json.containsKey('proposalId')) { |
| proposalId = _json['proposalId'] as core.String; |
| } |
| if (_json.containsKey('proposalRevision')) { |
| proposalRevision = _json['proposalRevision'] as core.String; |
| } |
| if (_json.containsKey('proposalState')) { |
| proposalState = _json['proposalState'] as core.String; |
| } |
| if (_json.containsKey('seller')) { |
| seller = Seller.fromJson( |
| _json['seller'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('sellerContacts')) { |
| sellerContacts = (_json['sellerContacts'] as core.List) |
| .map<ContactInformation>((value) => ContactInformation.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('updateTime')) { |
| updateTime = _json['updateTime'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (billedBuyer != null) { |
| _json['billedBuyer'] = billedBuyer.toJson(); |
| } |
| if (buyer != null) { |
| _json['buyer'] = buyer.toJson(); |
| } |
| if (buyerContacts != null) { |
| _json['buyerContacts'] = |
| buyerContacts.map((value) => value.toJson()).toList(); |
| } |
| if (buyerPrivateData != null) { |
| _json['buyerPrivateData'] = buyerPrivateData.toJson(); |
| } |
| if (deals != null) { |
| _json['deals'] = deals.map((value) => value.toJson()).toList(); |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (isRenegotiating != null) { |
| _json['isRenegotiating'] = isRenegotiating; |
| } |
| if (isSetupComplete != null) { |
| _json['isSetupComplete'] = isSetupComplete; |
| } |
| if (lastUpdaterOrCommentorRole != null) { |
| _json['lastUpdaterOrCommentorRole'] = lastUpdaterOrCommentorRole; |
| } |
| if (notes != null) { |
| _json['notes'] = notes.map((value) => value.toJson()).toList(); |
| } |
| if (originatorRole != null) { |
| _json['originatorRole'] = originatorRole; |
| } |
| if (privateAuctionId != null) { |
| _json['privateAuctionId'] = privateAuctionId; |
| } |
| if (proposalId != null) { |
| _json['proposalId'] = proposalId; |
| } |
| if (proposalRevision != null) { |
| _json['proposalRevision'] = proposalRevision; |
| } |
| if (proposalState != null) { |
| _json['proposalState'] = proposalState; |
| } |
| if (seller != null) { |
| _json['seller'] = seller.toJson(); |
| } |
| if (sellerContacts != null) { |
| _json['sellerContacts'] = |
| sellerContacts.map((value) => value.toJson()).toList(); |
| } |
| if (updateTime != null) { |
| _json['updateTime'] = updateTime; |
| } |
| return _json; |
| } |
| } |
| |
| /// Note: this resource requires whitelisting for access. Please contact your |
| /// account manager for access to Marketplace resources. Represents a publisher |
| /// profile (https://support.google.com/admanager/answer/6035806) in |
| /// Marketplace. All fields are read only. All string fields are free-form text |
| /// entered by the publisher unless noted otherwise. |
| class PublisherProfile { |
| /// Description on the publisher's audience. |
| core.String audienceDescription; |
| |
| /// Statement explaining what's unique about publisher's business, and why |
| /// buyers should partner with the publisher. |
| core.String buyerPitchStatement; |
| |
| /// Contact information for direct reservation deals. This is free text |
| /// entered by the publisher and may include information like names, phone |
| /// numbers and email addresses. |
| core.String directDealsContact; |
| |
| /// Name of the publisher profile. |
| core.String displayName; |
| |
| /// The list of domains represented in this publisher profile. Empty if this |
| /// is a parent profile. These are top private domains, meaning that these |
| /// will not contain a string like "photos.google.co.uk/123", but will instead |
| /// contain "google.co.uk". |
| core.List<core.String> domains; |
| |
| /// URL to publisher's Google+ page. |
| core.String googlePlusUrl; |
| |
| /// Indicates if this profile is the parent profile of the seller. A parent |
| /// profile represents all the inventory from the seller, as opposed to child |
| /// profile that is created to brand a portion of inventory. One seller should |
| /// have only one parent publisher profile, and can have multiple child |
| /// profiles. Publisher profiles for the same seller will have same value of |
| /// field google.ads.adexchange.buyer.v2beta1.PublisherProfile.seller. See |
| /// https://support.google.com/admanager/answer/6035806 for details. |
| core.bool isParent; |
| |
| /// A Google public URL to the logo for this publisher profile. The logo is |
| /// stored as a PNG, JPG, or GIF image. |
| core.String logoUrl; |
| |
| /// URL to additional marketing and sales materials. |
| core.String mediaKitUrl; |
| |
| /// Overview of the publisher. |
| core.String overview; |
| |
| /// Contact information for programmatic deals. This is free text entered by |
| /// the publisher and may include information like names, phone numbers and |
| /// email addresses. |
| core.String programmaticDealsContact; |
| |
| /// Unique ID for publisher profile. |
| core.String publisherProfileId; |
| |
| /// URL to a publisher rate card. |
| core.String rateCardInfoUrl; |
| |
| /// URL to a sample content page. |
| core.String samplePageUrl; |
| |
| /// Seller of the publisher profile. |
| Seller seller; |
| |
| /// Up to three key metrics and rankings. Max 100 characters each. For example |
| /// "#1 Mobile News Site for 20 Straight Months". |
| core.List<core.String> topHeadlines; |
| |
| PublisherProfile(); |
| |
| PublisherProfile.fromJson(core.Map _json) { |
| if (_json.containsKey('audienceDescription')) { |
| audienceDescription = _json['audienceDescription'] as core.String; |
| } |
| if (_json.containsKey('buyerPitchStatement')) { |
| buyerPitchStatement = _json['buyerPitchStatement'] as core.String; |
| } |
| if (_json.containsKey('directDealsContact')) { |
| directDealsContact = _json['directDealsContact'] as core.String; |
| } |
| if (_json.containsKey('displayName')) { |
| displayName = _json['displayName'] as core.String; |
| } |
| if (_json.containsKey('domains')) { |
| domains = (_json['domains'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('googlePlusUrl')) { |
| googlePlusUrl = _json['googlePlusUrl'] as core.String; |
| } |
| if (_json.containsKey('isParent')) { |
| isParent = _json['isParent'] as core.bool; |
| } |
| if (_json.containsKey('logoUrl')) { |
| logoUrl = _json['logoUrl'] as core.String; |
| } |
| if (_json.containsKey('mediaKitUrl')) { |
| mediaKitUrl = _json['mediaKitUrl'] as core.String; |
| } |
| if (_json.containsKey('overview')) { |
| overview = _json['overview'] as core.String; |
| } |
| if (_json.containsKey('programmaticDealsContact')) { |
| programmaticDealsContact = |
| _json['programmaticDealsContact'] as core.String; |
| } |
| if (_json.containsKey('publisherProfileId')) { |
| publisherProfileId = _json['publisherProfileId'] as core.String; |
| } |
| if (_json.containsKey('rateCardInfoUrl')) { |
| rateCardInfoUrl = _json['rateCardInfoUrl'] as core.String; |
| } |
| if (_json.containsKey('samplePageUrl')) { |
| samplePageUrl = _json['samplePageUrl'] as core.String; |
| } |
| if (_json.containsKey('seller')) { |
| seller = Seller.fromJson( |
| _json['seller'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('topHeadlines')) { |
| topHeadlines = (_json['topHeadlines'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (audienceDescription != null) { |
| _json['audienceDescription'] = audienceDescription; |
| } |
| if (buyerPitchStatement != null) { |
| _json['buyerPitchStatement'] = buyerPitchStatement; |
| } |
| if (directDealsContact != null) { |
| _json['directDealsContact'] = directDealsContact; |
| } |
| if (displayName != null) { |
| _json['displayName'] = displayName; |
| } |
| if (domains != null) { |
| _json['domains'] = domains; |
| } |
| if (googlePlusUrl != null) { |
| _json['googlePlusUrl'] = googlePlusUrl; |
| } |
| if (isParent != null) { |
| _json['isParent'] = isParent; |
| } |
| if (logoUrl != null) { |
| _json['logoUrl'] = logoUrl; |
| } |
| if (mediaKitUrl != null) { |
| _json['mediaKitUrl'] = mediaKitUrl; |
| } |
| if (overview != null) { |
| _json['overview'] = overview; |
| } |
| if (programmaticDealsContact != null) { |
| _json['programmaticDealsContact'] = programmaticDealsContact; |
| } |
| if (publisherProfileId != null) { |
| _json['publisherProfileId'] = publisherProfileId; |
| } |
| if (rateCardInfoUrl != null) { |
| _json['rateCardInfoUrl'] = rateCardInfoUrl; |
| } |
| if (samplePageUrl != null) { |
| _json['samplePageUrl'] = samplePageUrl; |
| } |
| if (seller != null) { |
| _json['seller'] = seller.toJson(); |
| } |
| if (topHeadlines != null) { |
| _json['topHeadlines'] = topHeadlines; |
| } |
| return _json; |
| } |
| } |
| |
| /// An open-ended realtime time range specified by the start timestamp. For |
| /// filter sets that specify a realtime time range RTB metrics continue to be |
| /// aggregated throughout the lifetime of the filter set. |
| class RealtimeTimeRange { |
| /// The start timestamp of the real-time RTB metrics aggregation. |
| core.String startTimestamp; |
| |
| RealtimeTimeRange(); |
| |
| RealtimeTimeRange.fromJson(core.Map _json) { |
| if (_json.containsKey('startTimestamp')) { |
| startTimestamp = _json['startTimestamp'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (startTimestamp != null) { |
| _json['startTimestamp'] = startTimestamp; |
| } |
| return _json; |
| } |
| } |
| |
| /// A relative date range, specified by an offset and a duration. The supported |
| /// range of dates begins 30 days before today and ends today, i.e., the limits |
| /// for these values are: offset_days >= 0 duration_days >= 1 offset_days + |
| /// duration_days <= 30 |
| class RelativeDateRange { |
| /// The number of days in the requested date range, e.g., for a range spanning |
| /// today: 1. For a range spanning the last 7 days: 7. |
| core.int durationDays; |
| |
| /// The end date of the filter set, specified as the number of days before |
| /// today, e.g., for a range where the last date is today: 0. |
| core.int offsetDays; |
| |
| RelativeDateRange(); |
| |
| RelativeDateRange.fromJson(core.Map _json) { |
| if (_json.containsKey('durationDays')) { |
| durationDays = _json['durationDays'] as core.int; |
| } |
| if (_json.containsKey('offsetDays')) { |
| offsetDays = _json['offsetDays'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (durationDays != null) { |
| _json['durationDays'] = durationDays; |
| } |
| if (offsetDays != null) { |
| _json['offsetDays'] = offsetDays; |
| } |
| return _json; |
| } |
| } |
| |
| /// A request for removing the association between a deal and a creative. |
| class RemoveDealAssociationRequest { |
| /// The association between a creative and a deal that should be removed. |
| CreativeDealAssociation association; |
| |
| RemoveDealAssociationRequest(); |
| |
| RemoveDealAssociationRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('association')) { |
| association = CreativeDealAssociation.fromJson( |
| _json['association'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (association != null) { |
| _json['association'] = association.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Request message to resume (unpause) serving for an already-finalized |
| /// proposal. |
| class ResumeProposalRequest { |
| ResumeProposalRequest(); |
| |
| ResumeProposalRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// A response may include multiple rows, breaking down along various |
| /// dimensions. Encapsulates the values of all dimensions for a given row. |
| class RowDimensions { |
| /// The publisher identifier for this row, if a breakdown by |
| /// [BreakdownDimension.PUBLISHER_IDENTIFIER](https://developers.google.com/authorized-buyers/apis/reference/rest/v2beta1/bidders.accounts.filterSets#FilterSet.BreakdownDimension) |
| /// was requested. |
| core.String publisherIdentifier; |
| |
| /// The time interval that this row represents. |
| TimeInterval timeInterval; |
| |
| RowDimensions(); |
| |
| RowDimensions.fromJson(core.Map _json) { |
| if (_json.containsKey('publisherIdentifier')) { |
| publisherIdentifier = _json['publisherIdentifier'] as core.String; |
| } |
| if (_json.containsKey('timeInterval')) { |
| timeInterval = TimeInterval.fromJson( |
| _json['timeInterval'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (publisherIdentifier != null) { |
| _json['publisherIdentifier'] = publisherIdentifier; |
| } |
| if (timeInterval != null) { |
| _json['timeInterval'] = timeInterval.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. A security context. |
| class SecurityContext { |
| /// The security types in this context. |
| core.List<core.String> securities; |
| |
| SecurityContext(); |
| |
| SecurityContext.fromJson(core.Map _json) { |
| if (_json.containsKey('securities')) { |
| securities = (_json['securities'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (securities != null) { |
| _json['securities'] = securities; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a seller of inventory. Each seller is identified by a unique Ad |
| /// Manager account ID. |
| class Seller { |
| /// The unique ID for the seller. The seller fills in this field. The seller |
| /// account ID is then available to buyer in the product. |
| core.String accountId; |
| |
| /// Optional sub-account ID for the seller. |
| core.String subAccountId; |
| |
| Seller(); |
| |
| Seller.fromJson(core.Map _json) { |
| if (_json.containsKey('accountId')) { |
| accountId = _json['accountId'] as core.String; |
| } |
| if (_json.containsKey('subAccountId')) { |
| subAccountId = _json['subAccountId'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (accountId != null) { |
| _json['accountId'] = accountId; |
| } |
| if (subAccountId != null) { |
| _json['subAccountId'] = subAccountId; |
| } |
| return _json; |
| } |
| } |
| |
| /// The serving context for this restriction. |
| class ServingContext { |
| /// Matches all contexts. |
| /// Possible string values are: |
| /// - "SIMPLE_CONTEXT" : A simple context. |
| core.String all; |
| |
| /// Matches impressions for a particular app type. |
| AppContext appType; |
| |
| /// Matches impressions for a particular auction type. |
| AuctionContext auctionType; |
| |
| /// Matches impressions coming from users *or* publishers in a specific |
| /// location. |
| LocationContext location; |
| |
| /// Matches impressions coming from a particular platform. |
| PlatformContext platform; |
| |
| /// Matches impressions for a particular security type. |
| SecurityContext securityType; |
| |
| ServingContext(); |
| |
| ServingContext.fromJson(core.Map _json) { |
| if (_json.containsKey('all')) { |
| all = _json['all'] as core.String; |
| } |
| if (_json.containsKey('appType')) { |
| appType = AppContext.fromJson( |
| _json['appType'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('auctionType')) { |
| auctionType = AuctionContext.fromJson( |
| _json['auctionType'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('location')) { |
| location = LocationContext.fromJson( |
| _json['location'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('platform')) { |
| platform = PlatformContext.fromJson( |
| _json['platform'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('securityType')) { |
| securityType = SecurityContext.fromJson( |
| _json['securityType'] as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (all != null) { |
| _json['all'] = all; |
| } |
| if (appType != null) { |
| _json['appType'] = appType.toJson(); |
| } |
| if (auctionType != null) { |
| _json['auctionType'] = auctionType.toJson(); |
| } |
| if (location != null) { |
| _json['location'] = location.toJson(); |
| } |
| if (platform != null) { |
| _json['platform'] = platform.toJson(); |
| } |
| if (securityType != null) { |
| _json['securityType'] = securityType.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// Output only. A representation of the status of an ad in a specific context. |
| /// A context here relates to where something ultimately serves (for example, a |
| /// user or publisher geo, a platform, an HTTPS vs HTTP request, or the type of |
| /// auction). |
| class ServingRestriction { |
| /// The contexts for the restriction. |
| core.List<ServingContext> contexts; |
| |
| /// Disapproval bound to this restriction. Only present if status=DISAPPROVED. |
| /// Can be used to filter the response of the creatives.list method. |
| Disapproval disapproval; |
| |
| /// Any disapprovals bound to this restriction. Only present if |
| /// status=DISAPPROVED. Can be used to filter the response of the |
| /// creatives.list method. Deprecated; please use disapproval field instead. |
| core.List<Disapproval> disapprovalReasons; |
| |
| /// The status of the creative in this context (for example, it has been |
| /// explicitly disapproved or is pending review). |
| /// Possible string values are: |
| /// - "STATUS_UNSPECIFIED" : The status is not known. |
| /// - "DISAPPROVAL" : The ad was disapproved in this context. |
| /// - "PENDING_REVIEW" : The ad is pending review in this context. |
| core.String status; |
| |
| ServingRestriction(); |
| |
| ServingRestriction.fromJson(core.Map _json) { |
| if (_json.containsKey('contexts')) { |
| contexts = (_json['contexts'] as core.List) |
| .map<ServingContext>((value) => ServingContext.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('disapproval')) { |
| disapproval = Disapproval.fromJson( |
| _json['disapproval'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('disapprovalReasons')) { |
| disapprovalReasons = (_json['disapprovalReasons'] as core.List) |
| .map<Disapproval>((value) => Disapproval.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('status')) { |
| status = _json['status'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (contexts != null) { |
| _json['contexts'] = contexts.map((value) => value.toJson()).toList(); |
| } |
| if (disapproval != null) { |
| _json['disapproval'] = disapproval.toJson(); |
| } |
| if (disapprovalReasons != null) { |
| _json['disapprovalReasons'] = |
| disapprovalReasons.map((value) => value.toJson()).toList(); |
| } |
| if (status != null) { |
| _json['status'] = status; |
| } |
| return _json; |
| } |
| } |
| |
| /// Message depicting the size of the creative. The units of width and height |
| /// depend on the type of the targeting. |
| class Size { |
| /// The height of the creative. |
| core.int height; |
| |
| /// The width of the creative |
| core.int width; |
| |
| Size(); |
| |
| Size.fromJson(core.Map _json) { |
| if (_json.containsKey('height')) { |
| height = _json['height'] as core.int; |
| } |
| if (_json.containsKey('width')) { |
| width = _json['width'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (height != null) { |
| _json['height'] = height; |
| } |
| if (width != null) { |
| _json['width'] = width; |
| } |
| return _json; |
| } |
| } |
| |
| /// A request for stopping notifications for changes to creative Status. |
| class StopWatchingCreativeRequest { |
| StopWatchingCreativeRequest(); |
| |
| StopWatchingCreativeRequest.fromJson( |
| // ignore: avoid_unused_constructor_parameters |
| core.Map _json); |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| return _json; |
| } |
| } |
| |
| /// Advertisers can target different attributes of an ad slot. For example, they |
| /// can choose to show ads only if the user is in the U.S. Such targeting |
| /// criteria can be specified as part of Shared Targeting. |
| class TargetingCriteria { |
| /// The list of values to exclude from targeting. Each value is AND'd |
| /// together. |
| core.List<TargetingValue> exclusions; |
| |
| /// The list of value to include as part of the targeting. Each value is OR'd |
| /// together. |
| core.List<TargetingValue> inclusions; |
| |
| /// The key representing the shared targeting criterion. Targeting criteria |
| /// defined by Google ad servers will begin with GOOG_. Third parties may |
| /// define their own keys. A list of permissible keys along with the |
| /// acceptable values will be provided as part of the external documentation. |
| core.String key; |
| |
| TargetingCriteria(); |
| |
| TargetingCriteria.fromJson(core.Map _json) { |
| if (_json.containsKey('exclusions')) { |
| exclusions = (_json['exclusions'] as core.List) |
| .map<TargetingValue>((value) => TargetingValue.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('inclusions')) { |
| inclusions = (_json['inclusions'] as core.List) |
| .map<TargetingValue>((value) => TargetingValue.fromJson( |
| value as core.Map<core.String, core.dynamic>)) |
| .toList(); |
| } |
| if (_json.containsKey('key')) { |
| key = _json['key'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (exclusions != null) { |
| _json['exclusions'] = exclusions.map((value) => value.toJson()).toList(); |
| } |
| if (inclusions != null) { |
| _json['inclusions'] = inclusions.map((value) => value.toJson()).toList(); |
| } |
| if (key != null) { |
| _json['key'] = key; |
| } |
| return _json; |
| } |
| } |
| |
| /// A polymorphic targeting value used as part of Shared Targeting. |
| class TargetingValue { |
| /// The creative size value to include/exclude. Filled in when key = |
| /// GOOG_CREATIVE_SIZE |
| CreativeSize creativeSizeValue; |
| |
| /// The daypart targeting to include / exclude. Filled in when the key is |
| /// GOOG_DAYPART_TARGETING. The definition of this targeting is derived from |
| /// the structure used by Ad Manager. |
| DayPartTargeting dayPartTargetingValue; |
| |
| /// The long value to include/exclude. |
| core.String longValue; |
| |
| /// The string value to include/exclude. |
| core.String stringValue; |
| |
| TargetingValue(); |
| |
| TargetingValue.fromJson(core.Map _json) { |
| if (_json.containsKey('creativeSizeValue')) { |
| creativeSizeValue = CreativeSize.fromJson( |
| _json['creativeSizeValue'] as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('dayPartTargetingValue')) { |
| dayPartTargetingValue = DayPartTargeting.fromJson( |
| _json['dayPartTargetingValue'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('longValue')) { |
| longValue = _json['longValue'] as core.String; |
| } |
| if (_json.containsKey('stringValue')) { |
| stringValue = _json['stringValue'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (creativeSizeValue != null) { |
| _json['creativeSizeValue'] = creativeSizeValue.toJson(); |
| } |
| if (dayPartTargetingValue != null) { |
| _json['dayPartTargetingValue'] = dayPartTargetingValue.toJson(); |
| } |
| if (longValue != null) { |
| _json['longValue'] = longValue; |
| } |
| if (stringValue != null) { |
| _json['stringValue'] = stringValue; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents targeting about various types of technology. |
| class TechnologyTargeting { |
| /// IDs of device capabilities to be included/excluded. |
| CriteriaTargeting deviceCapabilityTargeting; |
| |
| /// IDs of device categories to be included/excluded. |
| CriteriaTargeting deviceCategoryTargeting; |
| |
| /// Operating system related targeting information. |
| OperatingSystemTargeting operatingSystemTargeting; |
| |
| TechnologyTargeting(); |
| |
| TechnologyTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('deviceCapabilityTargeting')) { |
| deviceCapabilityTargeting = CriteriaTargeting.fromJson( |
| _json['deviceCapabilityTargeting'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('deviceCategoryTargeting')) { |
| deviceCategoryTargeting = CriteriaTargeting.fromJson( |
| _json['deviceCategoryTargeting'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| if (_json.containsKey('operatingSystemTargeting')) { |
| operatingSystemTargeting = OperatingSystemTargeting.fromJson( |
| _json['operatingSystemTargeting'] |
| as core.Map<core.String, core.dynamic>); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (deviceCapabilityTargeting != null) { |
| _json['deviceCapabilityTargeting'] = deviceCapabilityTargeting.toJson(); |
| } |
| if (deviceCategoryTargeting != null) { |
| _json['deviceCategoryTargeting'] = deviceCategoryTargeting.toJson(); |
| } |
| if (operatingSystemTargeting != null) { |
| _json['operatingSystemTargeting'] = operatingSystemTargeting.toJson(); |
| } |
| return _json; |
| } |
| } |
| |
| /// An interval of time, with an absolute start and end. |
| class TimeInterval { |
| /// The timestamp marking the end of the range (exclusive) for which data is |
| /// included. |
| core.String endTime; |
| |
| /// The timestamp marking the start of the range (inclusive) for which data is |
| /// included. |
| core.String startTime; |
| |
| TimeInterval(); |
| |
| TimeInterval.fromJson(core.Map _json) { |
| if (_json.containsKey('endTime')) { |
| endTime = _json['endTime'] as core.String; |
| } |
| if (_json.containsKey('startTime')) { |
| startTime = _json['startTime'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (endTime != null) { |
| _json['endTime'] = endTime; |
| } |
| if (startTime != null) { |
| _json['startTime'] = startTime; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a time of day. The date and time zone are either not significant |
| /// or are specified elsewhere. An API may choose to allow leap seconds. Related |
| /// types are google.type.Date and `google.protobuf.Timestamp`. |
| class TimeOfDay { |
| /// Hours of day in 24 hour format. Should be from 0 to 23. An API may choose |
| /// to allow the value "24:00:00" for scenarios like business closing time. |
| core.int hours; |
| |
| /// Minutes of hour of day. Must be from 0 to 59. |
| core.int minutes; |
| |
| /// Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999. |
| core.int nanos; |
| |
| /// Seconds of minutes of the time. Must normally be from 0 to 59. An API may |
| /// allow the value 60 if it allows leap-seconds. |
| core.int seconds; |
| |
| TimeOfDay(); |
| |
| TimeOfDay.fromJson(core.Map _json) { |
| if (_json.containsKey('hours')) { |
| hours = _json['hours'] as core.int; |
| } |
| if (_json.containsKey('minutes')) { |
| minutes = _json['minutes'] as core.int; |
| } |
| if (_json.containsKey('nanos')) { |
| nanos = _json['nanos'] as core.int; |
| } |
| if (_json.containsKey('seconds')) { |
| seconds = _json['seconds'] as core.int; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (hours != null) { |
| _json['hours'] = hours; |
| } |
| if (minutes != null) { |
| _json['minutes'] = minutes; |
| } |
| if (nanos != null) { |
| _json['nanos'] = nanos; |
| } |
| if (seconds != null) { |
| _json['seconds'] = seconds; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents a list of targeted and excluded URLs (e.g., google.com). For |
| /// Private Auction and AdX Preferred Deals, URLs are either included or |
| /// excluded. For Programmatic Guaranteed and Preferred Deals, this doesn't |
| /// apply. |
| class UrlTargeting { |
| /// A list of URLs to be excluded. |
| core.List<core.String> excludedUrls; |
| |
| /// A list of URLs to be included. |
| core.List<core.String> targetedUrls; |
| |
| UrlTargeting(); |
| |
| UrlTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('excludedUrls')) { |
| excludedUrls = (_json['excludedUrls'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('targetedUrls')) { |
| targetedUrls = (_json['targetedUrls'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (excludedUrls != null) { |
| _json['excludedUrls'] = excludedUrls; |
| } |
| if (targetedUrls != null) { |
| _json['targetedUrls'] = targetedUrls; |
| } |
| return _json; |
| } |
| } |
| |
| /// Video content for a creative. |
| class VideoContent { |
| /// The URL to fetch a video ad. |
| core.String videoUrl; |
| |
| /// The contents of a VAST document for a video ad. This document should |
| /// conform to the VAST 2.0 or 3.0 standard. |
| core.String videoVastXml; |
| |
| VideoContent(); |
| |
| VideoContent.fromJson(core.Map _json) { |
| if (_json.containsKey('videoUrl')) { |
| videoUrl = _json['videoUrl'] as core.String; |
| } |
| if (_json.containsKey('videoVastXml')) { |
| videoVastXml = _json['videoVastXml'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (videoUrl != null) { |
| _json['videoUrl'] = videoUrl; |
| } |
| if (videoVastXml != null) { |
| _json['videoVastXml'] = videoVastXml; |
| } |
| return _json; |
| } |
| } |
| |
| /// Represents targeting information about video. |
| class VideoTargeting { |
| /// A list of video positions to be excluded. Position types can either be |
| /// included or excluded (XOR). |
| core.List<core.String> excludedPositionTypes; |
| |
| /// A list of video positions to be included. When the included list is |
| /// present, the excluded list must be empty. When the excluded list is |
| /// present, the included list must be empty. |
| core.List<core.String> targetedPositionTypes; |
| |
| VideoTargeting(); |
| |
| VideoTargeting.fromJson(core.Map _json) { |
| if (_json.containsKey('excludedPositionTypes')) { |
| excludedPositionTypes = (_json['excludedPositionTypes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| if (_json.containsKey('targetedPositionTypes')) { |
| targetedPositionTypes = (_json['targetedPositionTypes'] as core.List) |
| .map<core.String>((value) => value as core.String) |
| .toList(); |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (excludedPositionTypes != null) { |
| _json['excludedPositionTypes'] = excludedPositionTypes; |
| } |
| if (targetedPositionTypes != null) { |
| _json['targetedPositionTypes'] = targetedPositionTypes; |
| } |
| return _json; |
| } |
| } |
| |
| /// A request for watching changes to creative Status. |
| class WatchCreativeRequest { |
| /// The Pub/Sub topic to publish notifications to. This topic must already |
| /// exist and must give permission to ad-exchange-buyside-reports@google.com |
| /// to write to the topic. This should be the full resource name in |
| /// "projects/{project_id}/topics/{topic_id}" format. |
| core.String topic; |
| |
| WatchCreativeRequest(); |
| |
| WatchCreativeRequest.fromJson(core.Map _json) { |
| if (_json.containsKey('topic')) { |
| topic = _json['topic'] as core.String; |
| } |
| } |
| |
| core.Map<core.String, core.Object> toJson() { |
| final _json = <core.String, core.Object>{}; |
| if (topic != null) { |
| _json['topic'] = topic; |
| } |
| return _json; |
| } |
| } |