export enum SecurityPolicyType {
  UNKNOWN = 'UNKNOWN',
  NONE = 'NONE',
  AKAMAI = 'AKAMAI',
  CLOUD_MEDIA = 'CLOUD_MEDIA',
}

export enum OriginForwardingType {
  ORIGIN_PATH = 'ORIGIN_PATH',
  CONVENTIONAL = 'CONVENTIONAL',
  NONE = 'NONE',
  UNKNOWN = 'UNKNOWN',
}

export enum MediaPlaylistOriginForwardingType {
  ORIGIN_PATH = 'ORIGIN_PATH',
  CONVENTIONAL = 'CONVENTIONAL',
  NONE = 'NONE',
  UNKNOWN = 'UNKNOWN',
}

/**
 * securityPolicy
 * @targetNSAlias `tns`
 * @targetNamespace `https://www.google.com/apis/ads/publisher/v202505`
 */
export interface SecurityPolicy {
  /** SecurityPolicyType|xsd:string|UNKNOWN,NONE,AKAMAI,CLOUD_MEDIA */
  securityPolicyType?: SecurityPolicyType | keyof typeof SecurityPolicyType
  /** xsd:string */
  tokenAuthenticationKey?: string
  /** xsd:boolean */
  disableServerSideUrlSigning?: boolean
  /** OriginForwardingType|xsd:string|ORIGIN_PATH,CONVENTIONAL,NONE,UNKNOWN */
  originForwardingType?:
    | OriginForwardingType
    | keyof typeof OriginForwardingType
  /** xsd:string */
  originPathPrefix?: string
  /** OriginForwardingType|xsd:string|ORIGIN_PATH,CONVENTIONAL,NONE,UNKNOWN */
  mediaPlaylistOriginForwardingType?:
    | MediaPlaylistOriginForwardingType
    | keyof typeof MediaPlaylistOriginForwardingType
  /** xsd:string */
  mediaPlaylistOriginPathPrefix?: string
  /** xsd:string */
  keysetName?: string
  /** xsd:long */
  signedRequestExpirationTtlSeconds?: number
}
