import { HlsIngestErrors } from './HlsIngestErrors'
import { LastHlsIngestDateTime } from './LastHlsIngestDateTime'
import { CmsSources } from './CmsSources'

export enum Status {
  ACTIVE = 'ACTIVE',
  INACTIVE = 'INACTIVE',
  ARCHIVED = 'ARCHIVED',
  UNKNOWN = 'UNKNOWN',
}

export enum StatusDefinedBy {
  CMS = 'CMS',
  USER = 'USER',
}

export enum HlsIngestStatus {
  SUCCESS = 'SUCCESS',
  WARNING = 'WARNING',
  INGESTED = 'INGESTED',
  INGESTED_WITH_WARNINGS = 'INGESTED_WITH_WARNINGS',
  CONDITIONED = 'CONDITIONED',
  CONDITIONED_WITH_WARNINGS = 'CONDITIONED_WITH_WARNINGS',
  FAILURE = 'FAILURE',
  UNKNOWN = 'UNKNOWN',
}

export enum DashIngestStatus {
  SUCCESS = 'SUCCESS',
  WARNING = 'WARNING',
  INGESTED = 'INGESTED',
  INGESTED_WITH_WARNINGS = 'INGESTED_WITH_WARNINGS',
  CONDITIONED = 'CONDITIONED',
  CONDITIONED_WITH_WARNINGS = 'CONDITIONED_WITH_WARNINGS',
  FAILURE = 'FAILURE',
  UNKNOWN = 'UNKNOWN',
}

/**
 * results
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202408`
 */
export interface Results {
  /** xsd:long */
  id?: number
  /** xsd:string */
  name?: string
  /** ContentStatus|xsd:string|ACTIVE,INACTIVE,ARCHIVED,UNKNOWN */
  status?: Status | keyof typeof Status
  /** ContentStatusDefinedBy|xsd:string|CMS,USER */
  statusDefinedBy?: StatusDefinedBy | keyof typeof StatusDefinedBy
  /** DaiIngestStatus|xsd:string|SUCCESS,WARNING,INGESTED,INGESTED_WITH_WARNINGS,CONDITIONED,CONDITIONED_WITH_WARNINGS,FAILURE,UNKNOWN */
  hlsIngestStatus?: HlsIngestStatus | keyof typeof HlsIngestStatus
  /** hlsIngestErrors[] */
  hlsIngestErrors?: Array<HlsIngestErrors>
  /** lastHlsIngestDateTime */
  lastHlsIngestDateTime?: LastHlsIngestDateTime
  /** DaiIngestStatus|xsd:string|SUCCESS,WARNING,INGESTED,INGESTED_WITH_WARNINGS,CONDITIONED,CONDITIONED_WITH_WARNINGS,FAILURE,UNKNOWN */
  dashIngestStatus?: DashIngestStatus | keyof typeof DashIngestStatus
  /** dashIngestErrors[] */
  dashIngestErrors?: Array<HlsIngestErrors>
  /** lastDashIngestDateTime */
  lastDashIngestDateTime?: LastHlsIngestDateTime
  /** importDateTime */
  importDateTime?: LastHlsIngestDateTime
  /** lastModifiedDateTime */
  lastModifiedDateTime?: LastHlsIngestDateTime
  /** cmsSources[] */
  cmsSources?: Array<CmsSources>
  /** xsd:long */
  contentBundleIds?: Array<number>
  /** xsd:long */
  cmsMetadataValueIds?: Array<number>
  /** xsd:long */
  duration?: number
}
