lib/client/services/proposalLineItem/proposalLineItemService.interface.ts (25 lines of code) (raw):
import type { Statement, UpdateResult } from "../../../common/types";
import type { ProposalLineItemAction } from "./proposalLineItem.action";
import type {
ProposalLineItem,
ProposalLineItemMakegoodInfo,
ProposalLineItemPage,
} from "./proposalLineItem.type";
/**
* Provides operations for creating, updating and retrieving {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem ProposalLineItem} objects.
*/
export interface ProposalLineItemServiceOperations {
/**
* Creates makegood proposal line items given the specifications provided.
*
* @param makegoodInfos
*/
createMakegoods(
makegoodInfos: Partial<ProposalLineItemMakegoodInfo>[],
): Promise<ProposalLineItem[]>;
/**
* Creates new {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem ProposalLineItem} objects.
*
* @param proposalLineItems the proposal line items to create
* @returns the created proposal line items with their IDs filled in
*/
createProposalLineItems(
proposalLineItems: Partial<ProposalLineItem>[],
): Promise<ProposalLineItem[]>;
/**
* Gets a {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItemPage ProposalLineItemPage}
* of {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem ProposalLineItem} objects that satisfy the given
* {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.Statement#query Statement.query}.
* The following fields are supported for filtering:
*
* | PQL Property | PQL Property |
* | -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
* | id | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#id ProposalLineItem.id} |
* | name | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#name ProposalLineItem.name} |
* | proposalId | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#proposalId ProposalLineItem.proposalId} |
* | startDateTime | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#startDateTime ProposalLineItem.startDateTime} |
* | endDateTime | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#endDateTime ProposalLineItem.endDateTime} |
* | isArchived | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#isArchived ProposalLineItem.isArchived} |
* | lastModifiedDateTime | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#lastModifiedDateTime ProposalLineItem.lastModifiedDateTime} |
* | isProgrammatic | {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem#isProgrammatic ProposalLineItem.isProgrammatic} |
*
* @param filterStatement a Publisher Query Language statement used to filter a set of proposal line items
* @returns the proposal line items that match the given filter
*/
getProposalLineItemsByStatement(
filterStatement: Statement,
): Promise<ProposalLineItemPage>;
/**
* Performs actions on {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem ProposalLineItem} objects that match the given Statement.
*
* @param ProposalLineItemAction the action to perform
* @param filterStatement a PQL statement used to filter proposal line items
* @returns the result of the action performed
*/
performProposalLineItemAction(
proposalLineItemAction: ProposalLineItemAction,
filterStatement: Statement,
): Promise<UpdateResult>;
/**
* Updates the specified {@link https://developers.google.com/ad-manager/api/reference/v202405/ProposalLineItemService.ProposalLineItem ProposalLineItem} objects.
*
* @param proposalLineItems the proposal line items to update
* @returns the updated proposal line items
*/
updateProposalLineItems(
proposalLineItems: ProposalLineItem[],
): Promise<ProposalLineItem[]>;
}