lib/client/services/adRule/adRuleService.interface.ts (30 lines of code) (raw):

import type { Statement, UpdateResult } from "../../../common/types"; import type { AdRuleAction } from "./adRule.action"; import type { AdRule, AdRulePage, BreakTemplate, BreakTemplatePage, } from "./adRule.type"; import type { AdSpot, AdSpotPage } from "./adSpot.type"; /** * Provides methods for creating, updating and retrieving AdRule objects. * * Ad rules contain data that the ad server uses to generate a playlist of video ads. */ export interface AdRuleServiceOperations { /** * Creates new AdRule objects. * * @param adRules the ad rules to create * @returns the created ad rules with their IDs filled in */ createAdRules(adRules: Partial<AdRule>[]): Promise<AdRule[]>; /** * Creates new AdSpot objects. * * @param adSports the ad spots to create * @returns the created ad spots with their IDs filled in */ createAdSpots(adSports: Partial<AdSpot>[]): Promise<AdSpot[]>; /** * Creates new breakTemplate objects. * * @param breakTemplate the break template to create * @returns the created break template with their IDs filled in */ createBreakTemplates( breakTemplate: Partial<BreakTemplate>[], ): Promise<BreakTemplate[]>; /** * Gets an AdRulePage of AdRule objects that satisfy the given Statement.query. The following fields are supported for filtering: * * id - AdRule.id (AdRule.adRuleId beginning in v201702) * * name - AdRule.name * * priority - AdRule.priority * * status - AdRule.status * @param statement * @returns the ad rules that match the given filter */ getAdRulesByStatement(statement: Statement): Promise<AdRulePage>; /** * Gets a AdSpotPage of AdSpot objects that satisfy the given Statement.query. * * @param filterStatement a Publisher Query Language statement to filter a list of ad spots * @returns the ad spots that match the filter */ getAdSpotsByStatement(filterStatement: Statement): Promise<AdSpotPage>; /** * Gets a BreakTemplatePage of BreakTemplate objects that satisfy the given Statement.query. * * @param filterStatement a Publisher Query Language statement to filter a list of breakTemplate * @returns the break template that match the filter */ getBreakTemplatesByStatement( filterStatement: Statement, ): Promise<BreakTemplatePage>; /** * Performs actions on AdRule objects that match the given Statement.query. * * @param adRuleAction the action to perform * @param filterStatement a Publisher Query Language statement used to filter a set of ad rules * @returns the result of the action performed */ performAdRuleAction( adRuleAction: AdRuleAction, filterStatement: Statement, ): Promise<UpdateResult>; /** * Updates the specified AdRule objects. * * @param adRules the ad rules to update * @returns the updated ad rules */ updateAdRules(adRules: AdRule[]): Promise<AdRule[]>; /** * Updates the specified AdSpot objects. * * @param adSports the ad spots to update * @returns the updated ad spots */ updateAdSpots(adSports: AdSpot[]): Promise<AdSpot[]>; /** * Updates the specified breakTemplate objects. * * @param breakTemplate the break template to update * @returns the updated break template */ updateBreakTemplates( breakTemplate: BreakTemplate[], ): Promise<BreakTemplate[]>; }