export enum SlotBehavior {
  ALWAYS_SHOW = 'ALWAYS_SHOW',
  NEVER_SHOW = 'NEVER_SHOW',
  DEFER = 'DEFER',
  UNKNOWN = 'UNKNOWN',
}

export enum VideoMidrollFrequencyType {
  NONE = 'NONE',
  EVERY_N_SECONDS = 'EVERY_N_SECONDS',
  FIXED_TIME = 'FIXED_TIME',
  EVERY_N_CUEPOINTS = 'EVERY_N_CUEPOINTS',
  FIXED_CUE_POINTS = 'FIXED_CUE_POINTS',
  UNKNOWN = 'UNKNOWN',
}

export enum Bumper {
  NONE = 'NONE',
  BEFORE = 'BEFORE',
  AFTER = 'AFTER',
  BEFORE_AND_AFTER = 'BEFORE_AND_AFTER',
  UNKNOWN = 'UNKNOWN',
}

/**
 * preroll
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202411`
 */
export interface Preroll {
  /** AdRuleSlotBehavior|xsd:string|ALWAYS_SHOW,NEVER_SHOW,DEFER,UNKNOWN */
  slotBehavior?: SlotBehavior | keyof typeof SlotBehavior
  /** xsd:long */
  maxVideoAdDuration?: number
  /** MidrollFrequencyType|xsd:string|NONE,EVERY_N_SECONDS,FIXED_TIME,EVERY_N_CUEPOINTS,FIXED_CUE_POINTS,UNKNOWN */
  videoMidrollFrequencyType?:
    | VideoMidrollFrequencyType
    | keyof typeof VideoMidrollFrequencyType
  /** xsd:string */
  videoMidrollFrequency?: string
  /** AdRuleSlotBumper|xsd:string|NONE,BEFORE,AFTER,BEFORE_AND_AFTER,UNKNOWN */
  bumper?: Bumper | keyof typeof Bumper
  /** xsd:long */
  maxBumperDuration?: number
  /** xsd:long */
  maxPodDuration?: number
  /** xsd:int */
  maxAdsInPod?: number
  /** xsd:long */
  breakTemplateId?: number
}
