export enum EntityType {
  LINE_ITEM = 'LINE_ITEM',
  ORDER = 'ORDER',
  CREATIVE = 'CREATIVE',
  PROPOSAL = 'PROPOSAL',
  PROPOSAL_LINE_ITEM = 'PROPOSAL_LINE_ITEM',
  UNKNOWN = 'UNKNOWN',
}

export enum DataType {
  STRING = 'STRING',
  NUMBER = 'NUMBER',
  TOGGLE = 'TOGGLE',
  DROP_DOWN = 'DROP_DOWN',
  UNKNOWN = 'UNKNOWN',
}

export enum Visibility {
  UNKNOWN = 'UNKNOWN',
  API_ONLY = 'API_ONLY',
  READ_ONLY = 'READ_ONLY',
  FULL = 'FULL',
}

/**
 * customFields
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202505`
 */
export interface CustomFields {
  /** xsd:long */
  id?: number
  /** xsd:string */
  name?: string
  /** xsd:string */
  description?: string
  /** xsd:boolean */
  isActive?: boolean
  /** CustomFieldEntityType|xsd:string|LINE_ITEM,ORDER,CREATIVE,PROPOSAL,PROPOSAL_LINE_ITEM,UNKNOWN */
  entityType?: EntityType | keyof typeof EntityType
  /** CustomFieldDataType|xsd:string|STRING,NUMBER,TOGGLE,DROP_DOWN,UNKNOWN */
  dataType?: DataType | keyof typeof DataType
  /** CustomFieldVisibility|xsd:string|UNKNOWN,API_ONLY,READ_ONLY,FULL */
  visibility?: Visibility | keyof typeof Visibility
}
