cancelNegotiation method

Future<Proposal> cancelNegotiation(
  1. CancelNegotiationRequest request,
  2. String proposal, {
  3. String? $fields,
})

Cancels an ongoing negotiation on a proposal.

This does not cancel or end serving for the deals if the proposal has been finalized. If the proposal has not been finalized before, calling this method will set the Proposal.state to TERMINATED and increment the Proposal.proposal_revision. If the proposal has been finalized before and is under renegotiation now, calling this method will reset the Proposal.state to FINALIZED and increment the Proposal.proposal_revision. This method does not support private auction proposals whose Proposal.deal_type is 'PRIVATE_AUCTION'.

request - The metadata request object.

Request parameters:

proposal - Name of the proposal. Format: buyers/{accountId}/proposals/{proposalId} Value must have pattern ^buyers/\[^/\]+/proposals/\[^/\]+$.

$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.

Implementation

async.Future<Proposal> cancelNegotiation(
  CancelNegotiationRequest request,
  core.String proposal, {
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    if ($fields != null) 'fields': [$fields],
  };

  final url_ =
      'v1/' + core.Uri.encodeFull('$proposal') + ':cancelNegotiation';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return Proposal.fromJson(response_ as core.Map<core.String, core.dynamic>);
}