import {z} from 'zod' export type MediaFile = {fileId?: string | undefined, isTemp?: boolean | undefined, filename?: string | undefined, externalUrl?: string | undefined, lastUpdateDate?: string | undefined}; export type GenericDeliveryDistributorManager = {distributionFtpCertificateFileId?: string | undefined, distributionFtpCertificateFile?: MediaFile | undefined, distributionFtpHost?: string | undefined, distributionFtpUsername?: string | undefined, distributionFtpPassword?: string | undefined, distributionDdexId?: string | undefined, distributionPartyName?: string | undefined, distributionAwsExternalBucketPath?: string | undefined, distributionAwsAccessKey?: string | undefined, distributionAwsSecret?: string | undefined, distributionAwsRegion?: string | undefined, isConnected?: boolean | undefined, lastTrendSync?: string | undefined, lastSaleSync?: string | undefined, distributorStore?: ('na' | 'Nuuday' | '_7Digital' | '_8tracks' | 'ADA' | 'AdvancedTechnologiesGroup' | 'Aim4Music' | 'Akazoo' | 'Alibaba' | 'Amazon' | 'AMIEntertainment' | 'Amoeba' | 'Ampsuite' | 'Ampya' | 'Anghami' | 'Archambault' | 'ArchambaultDigital' | 'ATTMobility' | 'AudibleMagic' | 'Audius' | 'Avex' | 'Awa' | 'BEAT' | 'Beatno' | 'BeATTV' | 'Beatport' | 'BeatsMusic' | 'Believe' | 'BIWorldwide' | 'Bleep' | 'Blinkbox' | 'Bloomfm' | 'Boinc' | 'Boomkat' | 'BoostMobile' | 'BroadbandTV' | 'BTVision' | 'Bugs' | 'CanalDigital' | 'CDBaby' | 'CDON' | 'Cedech' | 'CellcastMedia' | 'ChartsNow' | 'ChinaMobile' | 'ChinaTelecom' | 'ChooseDigital' | 'ChristianBooks' | 'CJEM' | 'ClearChannel' | 'Clipfish' | 'Coke' | 'Cricket' | 'CrowdTunes' | 'Cylo' | 'DadaMobile' | 'Dailymotion' | 'DanalEntertainment' | 'Datanet' | 'DDEX32' | 'DDEX35' | 'DDEX382' | 'Deezer' | 'DigitalBreakage' | 'Digiteka' | 'DixeroMedia' | 'DJShopDanceAllDay' | 'DMD' | 'DreamOnKorea' | 'DuomiMusic' | 'Dwango' | 'DX3' | 'ElectricFetus' | 'EMI' | 'eMusic' | 'Emuzyka' | 'ENTEL' | 'ETSquare' | 'ExLibris' | 'Facebook' | 'FacebookFingerprinting' | 'FaithMusicRadio' | 'FletchersOneStop' | 'Fnac' | 'FranceTelecom' | 'Freshplanet' | 'GooglePlay' | 'GreatIndieMusic' | 'Groove' | 'GrooveMobile' | 'Guvera' | 'HangzhouMusic' | 'HDTracks' | 'HelloJuneNet' | 'Highresaudio' | 'HipDigitalMedia' | 'HKBroadband' | 'HMV' | 'HongKongCSL' | 'Hoopla' | 'Hutchinson3G' | 'IBS' | 'Iddiper' | 'iHeartMedia' | 'iHeartRadio' | 'IMesh' | 'IMIMobile' | 'iMusica' | 'IMVU' | 'InfostradaMusic' | 'Ingrooves' | 'InMusic' | 'Inprodicon' | 'InstantMediaNetwork' | 'IntegraInteractive' | 'InternetBookshop' | 'Ioda' | 'iTunesAppleMusic' | 'JPay' | 'JBHiFi' | 'JestaDigital' | 'Juno' | 'JustMusicTV' | 'JVLMusic' | 'K2Media' | 'KelloggCompany' | 'KKBOX' | 'Kleek' | 'KTMusic' | 'Kuwo' | 'LabelMobile' | 'Labelgate' | 'Lala' | 'LastFM' | 'LineMusic' | 'Lickd' | 'Listencom' | 'LivewireMobile' | 'LOENEntertainment' | 'MalaysianMobile' | 'Masilor' | 'MasterCard' | 'MCM' | 'Mediamarkt' | 'MediaNet' | 'Mediapark' | 'MelOnIndonesia' | 'Merlin' | 'MFlow' | 'MinistryofSound' | 'MirrorImage' | 'MixBurn' | 'MixRadio' | 'MLJ' | 'MMOMP3' | 'MobileStreams' | 'Mobilkom' | 'MobiTV' | 'MOG' | 'MondiaMedia' | 'Movistar' | 'MTI' | 'MTNMobileTelephoneNetworks' | 'MTVN' | 'MusicBox' | 'MusicLoad' | 'Musicjet' | 'MusicMe' | 'Musicnet' | 'MuveMusic' | 'Muzu' | 'MyMusic' | 'MySpaceMusic' | 'MyVideo' | 'NetEase' | 'NeuroticMedia' | 'Nikitin' | 'NMusic' | 'Nokia' | 'Now' | 'NSMMusic' | 'Ntelco' | 'NTTCommunications' | 'O2' | 'OD2' | 'OiTNL' | 'Omnifone' | 'Omusic' | 'Onet' | 'OnMobile' | 'Orange' | 'Oricon' | 'Pandora' | 'Parlophone' | 'Personal' | 'Phonofile' | 'PIAS' | 'Playcom' | 'PlayPL' | 'PlayNetworks' | 'Pono' | 'PortugalTelecom' | 'PrisaRadio' | 'Pulselocker' | 'PuntillaDistribution' | 'Qobuz' | 'rara' | 'Rdio' | 'REALNetworks' | 'RedTouchMedia' | 'RedeyeWorldwideDigital' | 'RevelatorFX' | 'RhapsodyNapster' | 'RIM' | 'RogersWIreless' | 'ROKMobile' | 'Rythm' | 'Saavn' | 'Sainsburys' | 'Samsung' | 'Sanity' | 'ScreenPlay' | 'Securycast' | 'Shazam' | 'Simfy' | 'Singtel' | 'Sirius' | 'SlackerRadio' | 'SMSAT' | 'Sockets' | 'SolitonAlpha' | 'Songbird' | 'Songl' | 'Songo' | 'SonidoAbsoluto' | 'SonyBreakage' | 'SonyMusic' | 'Soribada' | 'Soundbuzz' | 'Soundcloud' | 'SoundExchange' | 'Spinlet' | 'Spotify' | 'Starzik' | 'Statsbiblioteket' | 'Styngr' | 'Sunrise' | 'Swisscom' | 'Synacor' | 'Taobao' | 'TapeTV' | 'TargetMediaBV' | 'TargetMusic' | 'TecnoMobile' | 'TelecomItalia' | 'Telefonica' | 'Telenor' | 'Telstra' | 'Tencent' | 'Terra' | 'Tesco' | 'TheOrchard' | 'Tidal' | 'TIMCelular' | 'TIMMusic' | 'TIS' | 'TMobile' | 'TOnline' | 'TouchTunes' | 'Tradebit' | 'TransWorldEntertainment' | 'TreMobile' | 'Trebel' | 'Trilulilu' | 'Tsutaya' | 'TuneCore' | 'Tunetribe' | 'TVRL' | 'UnitedAirlines' | 'Universal' | 'Unknownservice' | 'Usen' | 'Verizon' | 'VerveLife' | 'Vevo' | 'VidZone' | 'Viggle' | 'VirginMedia' | 'VirginMega' | 'Vivo' | 'Vodafone' | 'Vubiquity' | 'WE7' | 'WiMP' | 'Wisepeer' | 'WMIWEA' | 'Wrigleys' | 'Xperience' | 'YahooMusic' | 'Yamaha' | 'Yandex' | 'YouTube' | 'YouTubeContentID' | 'Zed' | 'Zefr' | 'ZiggoMuziek' | 'ZIK' | 'Zonga' | 'Zune' | 'ZUUS' | 'Zvooq' | 'Uma' | 'KDigital' | 'Tesla' | 'Mixcloud' | 'Dubset' | 'Fuga' | 'SoundtrackYourBrand' | 'TikTok' | 'Resso' | 'Boomplay' | 'Snapchat' | 'Peloton' | 'SberZvuk' | 'Audiomack' | 'Hungama' | 'Joox' | 'Adaptr' | 'Flo' | 'Disco' | 'Povu' | 'Pretzel' | 'Triller' | 'iTunesAppleMusicMerlin' | 'AcrCloud' | 'MerlinFlo' | 'TunedGlobal' | 'Jaxsta' | 'Supernatural' | 'Fizy' | 'Rakuten' | 'Agedi' | 'MerlinConnect' | 'FtpSandbox' | 'AwsSandbox' | 'Kuaishou' | 'MerlinBridge' | 'IdentityMusic' | 'AudioSalad' | 'Hook' | 'ClickNClear' | 'Kanjian' | 'RightsManagementTrackSandbox' | 'RightsManagementReleaseSandbox' | 'Sonosuite' | 'WarnerMusicGroup' | 'JooxKanjian' | 'NetEaseMusicKanjian' | 'KkboxKanjian' | 'QQMusic' | 'KugouMusic' | 'KuwoMusic' | 'WeSing' | 'Moov' | 'AliMusic' | 'Migu' | 'KuaishouKanjian' | 'Douyin' | 'Catalogac' | 'Nudacy' | 'ClickAndClear' | 'KuackMedia' | 'Even' | 'Mora' | 'Ototoy' | 'FaRaoPro' | 'MusicJP' | 'Recochoku' | 'VibePovu' | 'BugsPovu' | 'GeniePovu' | 'MelonPovu' | 'Gaana' | 'Lissen' | 'Bmat' | 'Udio' | 'CapCut' | 'Bandcamp' | 'OpenPlay' | 'RandomSounds' | 'Traxsource' | 'GONSMusiek' | 'SoundCloudWarner' | 'Meta' | 'WarnerSandbox') | undefined}; export type CreateApiEnterpriseConnectionsDistributorStoreIdDeliverySaveArgs = {distributorStoreId: number, body: GenericDeliveryDistributorManager}; export type CreateApiEnterpriseConnectionsDistributorStoreIdDeliverySaveOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const mediaFile = z.object({fileId: z.string().optional(), isTemp: z.boolean().optional(), filename: z.string().optional(), externalUrl: z.string().optional(), lastUpdateDate: z.string().optional()}); export const genericDeliveryDistributorManager = z.object({distributionFtpCertificateFileId: z.string().optional(), distributionFtpCertificateFile: mediaFile.optional(), distributionFtpHost: z.string().optional(), distributionFtpUsername: z.string().optional(), distributionFtpPassword: z.string().optional(), distributionDdexId: z.string().optional(), distributionPartyName: z.string().optional(), distributionAwsExternalBucketPath: z.string().optional(), distributionAwsAccessKey: z.string().optional(), distributionAwsSecret: z.string().optional(), distributionAwsRegion: z.string().optional(), isConnected: z.boolean().optional(), lastTrendSync: z.string().optional(), lastSaleSync: z.string().optional(), distributorStore: z.enum(["na", "Nuuday", "_7Digital", "_8tracks", "ADA", "AdvancedTechnologiesGroup", "Aim4Music", "Akazoo", "Alibaba", "Amazon", "AMIEntertainment", "Amoeba", "Ampsuite", "Ampya", "Anghami", "Archambault", "ArchambaultDigital", "ATTMobility", "AudibleMagic", "Audius", "Avex", "Awa", "BEAT", "Beatno", "BeATTV", "Beatport", "BeatsMusic", "Believe", "BIWorldwide", "Bleep", "Blinkbox", "Bloomfm", "Boinc", "Boomkat", "BoostMobile", "BroadbandTV", "BTVision", "Bugs", "CanalDigital", "CDBaby", "CDON", "Cedech", "CellcastMedia", "ChartsNow", "ChinaMobile", "ChinaTelecom", "ChooseDigital", "ChristianBooks", "CJEM", "ClearChannel", "Clipfish", "Coke", "Cricket", "CrowdTunes", "Cylo", "DadaMobile", "Dailymotion", "DanalEntertainment", "Datanet", "DDEX32", "DDEX35", "DDEX382", "Deezer", "DigitalBreakage", "Digiteka", "DixeroMedia", "DJShopDanceAllDay", "DMD", "DreamOnKorea", "DuomiMusic", "Dwango", "DX3", "ElectricFetus", "EMI", "eMusic", "Emuzyka", "ENTEL", "ETSquare", "ExLibris", "Facebook", "FacebookFingerprinting", "FaithMusicRadio", "FletchersOneStop", "Fnac", "FranceTelecom", "Freshplanet", "GooglePlay", "GreatIndieMusic", "Groove", "GrooveMobile", "Guvera", "HangzhouMusic", "HDTracks", "HelloJuneNet", "Highresaudio", "HipDigitalMedia", "HKBroadband", "HMV", "HongKongCSL", "Hoopla", "Hutchinson3G", "IBS", "Iddiper", "iHeartMedia", "iHeartRadio", "IMesh", "IMIMobile", "iMusica", "IMVU", "InfostradaMusic", "Ingrooves", "InMusic", "Inprodicon", "InstantMediaNetwork", "IntegraInteractive", "InternetBookshop", "Ioda", "iTunesAppleMusic", "JPay", "JBHiFi", "JestaDigital", "Juno", "JustMusicTV", "JVLMusic", "K2Media", "KelloggCompany", "KKBOX", "Kleek", "KTMusic", "Kuwo", "LabelMobile", "Labelgate", "Lala", "LastFM", "LineMusic", "Lickd", "Listencom", "LivewireMobile", "LOENEntertainment", "MalaysianMobile", "Masilor", "MasterCard", "MCM", "Mediamarkt", "MediaNet", "Mediapark", "MelOnIndonesia", "Merlin", "MFlow", "MinistryofSound", "MirrorImage", "MixBurn", "MixRadio", "MLJ", "MMOMP3", "MobileStreams", "Mobilkom", "MobiTV", "MOG", "MondiaMedia", "Movistar", "MTI", "MTNMobileTelephoneNetworks", "MTVN", "MusicBox", "MusicLoad", "Musicjet", "MusicMe", "Musicnet", "MuveMusic", "Muzu", "MyMusic", "MySpaceMusic", "MyVideo", "NetEase", "NeuroticMedia", "Nikitin", "NMusic", "Nokia", "Now", "NSMMusic", "Ntelco", "NTTCommunications", "O2", "OD2", "OiTNL", "Omnifone", "Omusic", "Onet", "OnMobile", "Orange", "Oricon", "Pandora", "Parlophone", "Personal", "Phonofile", "PIAS", "Playcom", "PlayPL", "PlayNetworks", "Pono", "PortugalTelecom", "PrisaRadio", "Pulselocker", "PuntillaDistribution", "Qobuz", "rara", "Rdio", "REALNetworks", "RedTouchMedia", "RedeyeWorldwideDigital", "RevelatorFX", "RhapsodyNapster", "RIM", "RogersWIreless", "ROKMobile", "Rythm", "Saavn", "Sainsburys", "Samsung", "Sanity", "ScreenPlay", "Securycast", "Shazam", "Simfy", "Singtel", "Sirius", "SlackerRadio", "SMSAT", "Sockets", "SolitonAlpha", "Songbird", "Songl", "Songo", "SonidoAbsoluto", "SonyBreakage", "SonyMusic", "Soribada", "Soundbuzz", "Soundcloud", "SoundExchange", "Spinlet", "Spotify", "Starzik", "Statsbiblioteket", "Styngr", "Sunrise", "Swisscom", "Synacor", "Taobao", "TapeTV", "TargetMediaBV", "TargetMusic", "TecnoMobile", "TelecomItalia", "Telefonica", "Telenor", "Telstra", "Tencent", "Terra", "Tesco", "TheOrchard", "Tidal", "TIMCelular", "TIMMusic", "TIS", "TMobile", "TOnline", "TouchTunes", "Tradebit", "TransWorldEntertainment", "TreMobile", "Trebel", "Trilulilu", "Tsutaya", "TuneCore", "Tunetribe", "TVRL", "UnitedAirlines", "Universal", "Unknownservice", "Usen", "Verizon", "VerveLife", "Vevo", "VidZone", "Viggle", "VirginMedia", "VirginMega", "Vivo", "Vodafone", "Vubiquity", "WE7", "WiMP", "Wisepeer", "WMIWEA", "Wrigleys", "Xperience", "YahooMusic", "Yamaha", "Yandex", "YouTube", "YouTubeContentID", "Zed", "Zefr", "ZiggoMuziek", "ZIK", "Zonga", "Zune", "ZUUS", "Zvooq", "Uma", "KDigital", "Tesla", "Mixcloud", "Dubset", "Fuga", "SoundtrackYourBrand", "TikTok", "Resso", "Boomplay", "Snapchat", "Peloton", "SberZvuk", "Audiomack", "Hungama", "Joox", "Adaptr", "Flo", "Disco", "Povu", "Pretzel", "Triller", "iTunesAppleMusicMerlin", "AcrCloud", "MerlinFlo", "TunedGlobal", "Jaxsta", "Supernatural", "Fizy", "Rakuten", "Agedi", "MerlinConnect", "FtpSandbox", "AwsSandbox", "Kuaishou", "MerlinBridge", "IdentityMusic", "AudioSalad", "Hook", "ClickNClear", "Kanjian", "RightsManagementTrackSandbox", "RightsManagementReleaseSandbox", "Sonosuite", "WarnerMusicGroup", "JooxKanjian", "NetEaseMusicKanjian", "KkboxKanjian", "QQMusic", "KugouMusic", "KuwoMusic", "WeSing", "Moov", "AliMusic", "Migu", "KuaishouKanjian", "Douyin", "Catalogac", "Nudacy", "ClickAndClear", "KuackMedia", "Even", "Mora", "Ototoy", "FaRaoPro", "MusicJP", "Recochoku", "VibePovu", "BugsPovu", "GeniePovu", "MelonPovu", "Gaana", "Lissen", "Bmat", "Udio", "CapCut", "Bandcamp", "OpenPlay", "RandomSounds", "Traxsource", "GONSMusiek", "SoundCloudWarner", "Meta", "WarnerSandbox"]).optional()}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * POST /enterprise/connections/{distributorStoreId}/delivery/save */ export const createApiEnterpriseConnectionsDistributorStoreIdDeliverySave = async (args: CreateApiEnterpriseConnectionsDistributorStoreIdDeliverySaveArgs, options?: CreateApiEnterpriseConnectionsDistributorStoreIdDeliverySaveOptions) => { const {baseUrl = "http://api.revelator.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") const url = `${baseUrl.replace(/\/+$/, '')}/enterprise/connections/${encodeURIComponent(String(args.distributorStoreId))}/delivery/save${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(genericDeliveryDistributorManager, await res.json()) };