import { Targeting } from './Targeting'
import { AdSources } from './AdSources'

export enum ExchangeStatus {
  UNKNOWN = 'UNKNOWN',
  EXPERIMENTING = 'EXPERIMENTING',
  ACTIVE = 'ACTIVE',
  INACTIVE = 'INACTIVE',
  DELETED = 'DELETED',
}

export enum Format {
  UNKNOWN = 'UNKNOWN',
  BANNER = 'BANNER',
  INTERSTITIAL = 'INTERSTITIAL',
  NATIVE = 'NATIVE',
  VIDEO_VAST = 'VIDEO_VAST',
  REWARDED = 'REWARDED',
  REWARDED_INTERSTITIAL = 'REWARDED_INTERSTITIAL',
  APP_OPEN = 'APP_OPEN',
}

export enum EnvironmentType {
  UNKNOWN = 'UNKNOWN',
  MOBILE = 'MOBILE',
  VIDEO_VAST = 'VIDEO_VAST',
  WEB = 'WEB',
}

/**
 * yieldGroups
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202502`
 */
export interface YieldGroups {
  /** xsd:long */
  yieldGroupId?: number
  /** xsd:string */
  yieldGroupName?: string
  /** YieldEntityStatus|xsd:string|UNKNOWN,EXPERIMENTING,ACTIVE,INACTIVE,DELETED */
  exchangeStatus?: ExchangeStatus | keyof typeof ExchangeStatus
  /** YieldFormat|xsd:string|UNKNOWN,BANNER,INTERSTITIAL,NATIVE,VIDEO_VAST,REWARDED,REWARDED_INTERSTITIAL,APP_OPEN */
  format?: Format | keyof typeof Format
  /** YieldEnvironmentType|xsd:string|UNKNOWN,MOBILE,VIDEO_VAST,WEB */
  environmentType?: EnvironmentType | keyof typeof EnvironmentType
  /** targeting */
  targeting?: Targeting
  /** adSources[] */
  adSources?: Array<AdSources>
}
