import { CostPerUnit } from './CostPerUnit'
import { StartDateTime } from './StartDateTime'
import { CreativePlaceholders } from './CreativePlaceholders'
import { Targeting } from './Targeting'

export enum AdExchangeEnvironment {
  DISPLAY = 'DISPLAY',
  VIDEO = 'VIDEO',
  GAMES = 'GAMES',
  MOBILE = 'MOBILE',
  MOBILE_OUTSTREAM_VIDEO = 'MOBILE_OUTSTREAM_VIDEO',
  DISPLAY_OUTSTREAM_VIDEO = 'DISPLAY_OUTSTREAM_VIDEO',
  UNKNOWN = 'UNKNOWN',
}

export enum RfpType {
  UNKNOWN = 'UNKNOWN',
  PROGRAMMATIC_GUARANTEED = 'PROGRAMMATIC_GUARANTEED',
  PREFERRED_DEAL = 'PREFERRED_DEAL',
}

/**
 * buyerRfp
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202411`
 */
export interface BuyerRfp {
  /** costPerUnit */
  costPerUnit?: CostPerUnit
  /** xsd:long */
  units?: number
  /** budget */
  budget?: CostPerUnit
  /** xsd:string */
  currencyCode?: string
  /** startDateTime */
  startDateTime?: StartDateTime
  /** endDateTime */
  endDateTime?: StartDateTime
  /** xsd:string */
  description?: string
  /** creativePlaceholders[] */
  creativePlaceholders?: Array<CreativePlaceholders>
  /** targeting */
  targeting?: Targeting
  /** xsd:string */
  additionalTerms?: string
  /** AdExchangeEnvironment|xsd:string|DISPLAY,VIDEO,GAMES,MOBILE,MOBILE_OUTSTREAM_VIDEO,DISPLAY_OUTSTREAM_VIDEO,UNKNOWN */
  adExchangeEnvironment?:
    | AdExchangeEnvironment
    | keyof typeof AdExchangeEnvironment
  /** RfpType|xsd:string|UNKNOWN,PROGRAMMATIC_GUARANTEED,PREFERRED_DEAL */
  rfpType?: RfpType | keyof typeof RfpType
}
