import {z} from 'zod' export type GetApiV1ProvidersIdArgs = {id: number}; export type GetApiV1ProvidersIdOptions = {baseUrl?: string | undefined, basic?: {username: string, password: string} | undefined, fetch?: typeof fetch | undefined}; export const revAppComponentsLink = z.object({rel: z.string().optional(), href: z.string().optional()}); export const revAppModelsProviderOrderTypes = z.object({cnam: z.boolean().optional(), conversion: z.boolean().optional(), deny: z.boolean().optional(), disconnect: z.boolean().optional(), e911: z.boolean().optional(), ld_block: z.boolean().optional(), port: z.boolean().optional(), restore: z.boolean().optional(), transfer: z.boolean().optional(), links: z.array(revAppComponentsLink).optional()}); export const revWebAPIModelsGetOrSearchOfRevAppModelsProvider = z.object({ok: z.boolean().optional(), provider_id: z.number().int().optional(), description: z.string().max(50).optional(), provider_code: z.enum(["NONE", "_123NET", "_2600HZ", "_360_Networks", "_4VOICE", "_8X8", "ACCESS_ONE", "ACCESS_POINT", "ACME_PACKET", "ACUTEL", "AIRESPRING", "ALCATEL_LUCENT", "ALIANZA", "ALLIED", "ALLTEL", "AMERICAN_INTERNET", "AMERITECH", "ANDIAMO", "ANI_NETWORKS", "ALLIANCE", "ALEF_EDGE", "ANIN", "APEIRON", "APLUS", "APLUS_CONFERENCING", "ARKADIN", "ARTERRA_TMOBILE", "ASTERISK", "ASTPP", "ATLANTECH", "ATOM", "ATT", "ATT_9_STATE", "ATT_13_STATE", "APEX", "ATX", "ATT_MOBILITY", "AVALON", "AVERISTAR", "AVOXI", "AZURE_CHARGE_TYPE", "BANDWIDTH", "BANDWIDTH_DASH", "BAYOU_INTERNET", "BCN", "BELL", "BELLSOUTH", "BELLSOUTH_DSL", "BROADSOFT", "BICOM", "BISCOM", "BIG_RIVER", "BOSTON_PBX_SIP_PROXY", "BRIGHTLINK", "BIRCH", "BLUETONE_VOYCE", "BLUIP", "BROADCLOUD", "BROADVOICE", "BROADVOX", "BROADVIEW", "BROADWING", "BROADWORKS", "BREKEKE", "BTS", "BULKVS", "CALL48", "CALLMANAGER", "CALLSOURCE", "CAPROCK", "CARDINAL", "CCNQ3", "CELLHIRE", "CELLULAR_4G", "CENTILE", "CENTURYLINK", "CGM", "CISCO_T1_INTERNAL", "CISCO_CALL_MANAGER", "CLEARSKY", "CLEARRATE", "CLEARTEL", "CLOUDFAX", "COMPUTERTALK", "CONCORD", "CONSENSUS", "CONFERENCE_GROUP", "COPPERCOM", "CORDIA", "COREDIAL", "COVISTA", "COVODA", "CREXENDO", "DATA2GO", "DATABLAZE", "DD", "DD4", "DELTACOM", "DELTATHREE", "DIGICEL", "DIDWW", "DOCUMO", "DUBBER", "EARTHLINK", "ECI", "EFAX", "EFHUTTON", "ELEMENT", "ENQWEST", "EQUIVOICE", "ESTECH", "EVOLVE_IP", "EXACTIT", "EXTERNAL_CARRIER", "EXCELTELE", "EZ_CDR", "FAXBACK", "FAXBOX", "FAXSIPIT", "FDN", "FIRSTCOMM", "FIRSTDIGITAL_VERACITY", "FIRSTLIGHT", "FIVE9", "FLOW", "FLOWROUTE", "FOCAL", "FREESIDE_SWITCH", "FREESWITCH", "FRONTIER", "FUSION", "FUZE", "FUSION_PBX", "GENBAND_C3", "GLOBAL_CROSSING", "GLOBAL_CROSSING_CONFERENCE", "GLOBALGIG", "GLOBALINX", "GTBFAX", "GTT_COMMUNICATIONS", "HISCALL", "HYPERCUBE", "T_MOBILE", "GRANITE", "GULFTEL", "H2O", "ICS", "IDT", "IKANO", "ILD", "IMPACT", "IN_CONTACT", "INFINITE", "INFINITY", "INFOBIP", "INGRAM_MICRO", "INHOUSE", "INMARSAT", "INTEGRA", "INTRADO", "INTELECOM", "INTELEPEER", "INTELEPEER_TRZ", "INTELEPEER_TRZR", "INTELIQUENT", "INTELIQUENT_NT", "INTERCALL", "INTERMEDIA", "INETWORK", "IRIDIUM", "JASPER", "KAMAILIO", "KAZOO", "KINETICVOIP", "KORE", "LD_321", "LEVEL3", "LEVEL365", "LINGO", "LIGADO", "LOCALSTRATUS", "LOGICOMUSA", "LYNKTEL", "MAGICJACK", "MAXFAX", "MAXSIP", "Marco", "MCLEOD", "MCI", "MCI_LD", "MCI_LOCAL", "MCISIP", "METASWITCH", "METASWITCH_CONFERENCING", "MIX", "MOMENTUM", "M800", "NACT", "NBC_COMMUNICATIONS", "NECA", "NEXTONE", "NETFAX", "NETFORTRESS", "NETCARRIER", "NETSAPIENS", "NETSATISFAXTION", "NGT", "NETXUSA", "NEWCORE", "NEUSTAR", "NEXVORTEX", "NTS_COMMUNICATIONS", "NUMBERSENTRY", "NUVOX", "ODYSSEY", "ONE_COMMUNICATIONS", "ONE_RING", "ONESIM", "ONESOURCE", "ONESTREAM", "ONVOY", "ORCAWAVE", "OTHER", "PAETEC", "PANGERA", "PEERLESS", "PLATFORM_EXPERTS", "POND", "PORTA1", "POWERNET", "PREMIERE_GLOBAL", "PREMIERE_GLOBAL_CONFERENCE", "PRIMUS", "QUESTBLUE", "QWEST", "RADIUS", "RAZORLINE", "RBS", "Reach", "READY_MOBILE", "RED_RIVER", "RED_RIVER_PREPAID", "RIBBON", "RING_CENTRAL", "RNK", "ROGERS", "SADDLEBACK", "SANSAY", "SAYCOR", "SAYCOR_RATE", "SEAGATE", "SER", "SIMO", "SIMPL", "SINCH", "SIP_GATEWAY", "SIPPIO", "SIPNAV", "SIPUS", "SKYETEL", "Skyswitch", "SOLARWINDS", "SMART_CHOICE", "SMART_TELECOM_CONCEPTS", "SNET", "SONEXIS", "SONUS_INFOSTRUCTURE", "SONUS_SBC", "SOTEL_SYSTEMS", "SPIRIT", "SPRINT", "SPRINT_WIRELESS", "SBC", "SCRYPT_FAX", "SME", "SRFAX", "T38", "TANGO_NETWORKS", "TALKSCRIBE", "TAQUA", "TATA", "TCAST", "TELCLOUD", "TELCORDIA", "TELCOBRIDGES", "TELCOBRIDGES_PROSBC", "TELASTIC", "TELEBLEND", "TELEPACIFIC", "TELESPREE", "TELI", "TELICA", "TELISPIRE", "TELNYX", "TELUS", "THINQ", "TMC", "T_MOBILE_PCM", "TNCI", "TNS", "TOLY_DIGITAL", "TRANSBEAM", "TRANSNEXUS", "TRANSTELCO", "TSB", "TXLINK", "TURBOBRIDGE", "UCN", "UCOMTEL", "UNIFIED_ARTS", "UNIFIED_SYSTEMS", "USA_DIGITAL_COMMUNICATIONS", "UserCentric", "USLEC", "USG", "VALTECH", "VCARE", "VERACITY", "VERGX", "VERIZON_BUSINESS_LD", "VERIZON", "VERIZON_EDI", "VERIZON_SIP", "VERIZON_WEST", "VERIZON_MOBILITY", "VERIZON_WIRELESS", "VOEX", "VOORE", "VOXOX", "VOXBONE", "VOXTELESYS", "VOYANT", "WASABI", "WEBBING", "WEBEX", "WEST_CONFERENCE", "WHITELABEL", "WILTEL", "WINDSTREAM", "WL_CRBM_EB", "XCAST", "XO", "XPIX", "ZONE", "ENSWITCH", "VITALPBX", "VITELITY", "VOIP_INNOVATIONS", "CIA_EXPRESS_BLAST", "CIA_RESELLER", "CISCO_VOIP", "VOIPSWITCH", "JERASOFT", "AVAYA", "VOXBEAM", "PANGEA", "CALLTOWER", "PAYA", "ZOOM", "ZULTYS", "CLEARLY", "VESTEDNETWORKS", "CONDOR", "US_CELLULAR", "GRUPO_INET", "SPECTRUM", "TEAL", "NUMHUB", "FIBERNOIRSIP", "SIMPLE_AGENTS", "SQUAWKVOICE", "PAYPAL"]).optional(), active: z.boolean().optional(), created_date: z.string().optional(), created_by: z.number().int().optional(), bill_profile_id: z.number().int().optional(), state_provinces: z.array(z.string()).optional(), gravity_profile_id: z.number().int().optional(), order_types: revAppModelsProviderOrderTypes.optional(), links: z.array(revAppComponentsLink).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 }; /** * View provider * * GET /v1/Providers/{id} */ export const getApiV1ProvidersId = async (args: GetApiV1ProvidersIdArgs, options?: GetApiV1ProvidersIdOptions) => { const {baseUrl = "https://restapi.rev.io", fetch: fetchFn = fetch, basic} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (basic !== undefined) headers.set('authorization', `Basic ${btoa(`${basic.username}:${basic.password}`)}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/Providers/${encodeURIComponent(String(args.id))}${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(revWebAPIModelsGetOrSearchOfRevAppModelsProvider, await res.json()) };