import {z} from 'zod' export type GetApiSettingsSettingIdArgs = {settingId: string}; export type GetApiSettingsSettingIdOptions = {baseUrl?: string | undefined, Bearer?: string | undefined, fetch?: typeof fetch | undefined}; export const idParam = z.string().min(24).max(24); export const userParam = z.string().min(24).max(24); export const deletedParam = z.union([z.literal(0), z.literal(1)]); export const createdByParam = z.string().min(24).max(24); export const updatedByParam = z.string().min(24).max(24); export const createdAtParam = z.string(); export const updatedAtParam = z.string(); export const settingProperty = z.object({session: z.object({logoutTimeout: z.number().optional()}).optional(), welcome: z.object({currentStep: z.number().optional(), termsAgreementDate: z.string().optional()}).optional(), telehealth: z.object({enabled: z.boolean().optional(), sessionReminderMinutes: z.number().optional(), sessionFinalReminderMinutes: z.number().optional(), maximumNoShowMinutes: z.number().optional(), vendor: z.enum(["twilio", "zoom"]).optional(), vendors: z.object({zoom: z.object({apiKey: z.string().optional(), apiSecret: z.string().optional(), type: z.enum(["free", "pro", "business"]).optional()}).optional()}).optional(), showTimer: z.boolean().optional(), requireProviderLogin: z.boolean().optional(), telehealthGroup: z.object({createDefaultGroup: z.object({enabled: z.boolean().optional()}).optional(), addProviderToDefaultGroup: z.object({enabled: z.boolean().optional()}).optional()}).optional()}).optional(), labs: z.object({enabled: z.boolean().optional()}).optional(), lumabot: z.object({enabled: z.boolean().optional(), includePoweredByLuma: z.boolean().optional(), placement: z.string().optional(), name: z.string().optional(), header: z.string().optional(), prompt: z.string().optional(), avatar: z.string().min(24).max(24).optional(), agentic: z.object({enabled: z.boolean().optional()}).optional(), theme: z.object({palette: z.object({primary: z.object({light: z.string().optional(), main: z.string().optional(), dark: z.string().optional(), contrastText: z.string().optional()}).optional(), secondary: z.object({light: z.string().optional(), main: z.string().optional(), dark: z.string().optional(), contrastText: z.string().optional()}).optional(), tertiary: z.object({light: z.string().optional(), main: z.string().optional(), dark: z.string().optional(), contrastText: z.string().optional()}).optional(), background: z.object({default: z.string().optional(), paper: z.string().optional()}).optional()}).optional()}).optional()}).optional(), communication: z.object({defaultChatVisibility: z.enum(["public", "internal"]).optional(), defaultChatCommunicationSecurity: z.object({level: z.enum(["secure", "insecure"]).optional(), acknowledgedBy: z.string().min(24).max(24).optional(), acknowledgedAt: z.string().optional()}).optional(), useFacilityPhoneAsFromNumber: z.boolean().optional(), useFacilityAlternativePhoneAsFromNumber: z.boolean().optional(), useFacilityNumberFallback: z.object({enabled: z.boolean().optional(), phone: z.string().optional()}).optional(), unsubscribedMessages: z.array(z.unknown()).optional(), blockedContacts: z.array(z.unknown()).optional(), limitedContacts: z.array(z.unknown()).optional(), expirePatientData: z.object({enabled: z.boolean().optional(), maxAgeInDays: z.number().optional()}).optional(), urlReplacers: z.array(z.object({find: z.string().optional(), replace: z.string().optional(), _id: z.string().min(24).max(24).optional()})).optional(), disableAutomaticLinkShortening: z.boolean().optional(), filterPatientMessageHistory: z.array(z.unknown()).optional(), staffDisabledChannels: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), reopenChatsForUnclassifiedReplies: z.boolean().optional(), minLengthToReopenChat: z.number().optional(), minLengthToReopenChatPerTemplate: z.unknown(), reopenChatsWithStatusUnassigned: z.boolean().optional(), sendAfterHoursMessageForInboundChats: z.boolean().optional(), broadcastSkipPatientLookup: z.boolean().optional(), officeHoursPerDay: z.array(z.object({weekDay: z.number().optional(), beginAt: z.number().optional(), endAt: z.number().optional(), _id: z.string().min(24).max(24).optional()})).optional(), customHolidays: z.object({dates: z.array(z.object({date: z.string().optional(), description: z.string().optional(), closed: z.boolean().optional(), sendAppointmentReminders: z.enum(["before", "as-scheduled"]).optional(), sendReferralReminders: z.enum(["after", "as-scheduled"]).optional(), _id: z.string().min(24).max(24).optional()})).optional()}).optional(), officeHours: z.object({beginAt: z.number().optional(), endAt: z.number().optional()}).optional(), numberMasking: z.object({enabled: z.boolean().optional()}).optional(), emailMasking: z.object({enabled: z.boolean().optional(), fromName: z.string().optional(), fromEmail: z.string().optional()}).optional(), contactVerification: z.object({enabled: z.boolean().optional()}).optional(), patientInitiatedTexting: z.object({enabled: z.boolean().optional(), lookupCallerId: z.boolean().optional(), useRandomNumbersAsGeneratedName: z.boolean().optional()}).optional(), searchByToAndFrom: z.boolean().optional(), systemMessagesExpiration: z.object({enabled: z.boolean().optional(), value: z.number().optional(), unit: z.enum(["years", "months", "weeks", "days", "hours"]).optional()}).optional(), inboundMessageReplies: z.object({length: z.number().optional(), keys: z.array(z.unknown()).optional()}).optional(), outboundMessages: z.object({allowRetries: z.boolean().optional(), skipSmsToLandline: z.boolean().optional(), allowSmsOverLongCode: z.object({enabled: z.boolean().optional()}).optional(), multiChannelRetries: z.object({enabled: z.boolean().optional(), shouldSmsNumberBeRetriedAsVoice: z.object({enabled: z.boolean().optional()}).optional(), channels: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), failuresToIgnoreByChannel: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), refs: z.array(z.unknown()).optional(), number: z.number().optional()}).optional()}).optional(), filterChatsByGroupsFacilities: z.boolean().optional(), suppressMessagesByProvisioning: z.boolean().optional(), sortMessagesBy: z.enum(["unreadMessages", "priorityUpdatedAt"]).optional(), chatAssignmentOnHubSend: z.enum(["reassign", "keepAssignee"]).optional(), chatAssignmentOnProfileSend: z.enum(["reassign", "keepAssignee"]).optional(), useFixedNumber: z.object({enabled: z.boolean().optional(), vendor: z.enum(["twilio", "bandwidth"]).optional(), number: z.string().optional(), allowAutoReplacement: z.boolean().optional(), numbers: z.array(z.object({enabled: z.boolean().optional(), default: z.boolean().optional(), vendor: z.enum(["twilio", "bandwidth"]).optional(), number: z.string().optional(), allowAutoReplacement: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional()}).optional(), enableInboundCallForwardingToFacilityPhone: z.boolean().optional(), enableInboundCallForwardingToFacilityAlternativePhone: z.boolean().optional(), useExistentLumaContactOnBroadcastsWithEmptyValues: z.boolean().optional(), broadcast: z.object({patientsBatchLimit: z.object({enabled: z.boolean().optional(), value: z.number().optional(), interval: z.object({value: z.number().optional(), unit: z.enum(["minutes", "hours"]).optional()}).optional()}).optional(), rolesToBeNotifiedOnRequiredAction: z.object({shouldNotifyByGroup: z.boolean().optional(), roles: z.array(z.enum(["admin", "manager"])).optional()}).optional(), messagesOverrides: z.object({enabled: z.boolean().optional()}).optional(), uploadMapper: z.object({enabled: z.boolean().optional()}).optional(), statusChangesNotifications: z.object({enabled: z.boolean().optional()}).optional()}).optional(), ignoreInactiveContactsToSendMessage: z.object({enabled: z.boolean().optional()}).optional()}).optional(), timezone: z.string().optional(), useTimezoneFrom: z.enum(["user", "facility"]).optional(), localization: z.enum(["en-US", "pt-BR"]).optional(), scheduler: z.object({enabled: z.boolean().optional(), alwaysHideToolbar: z.boolean().optional(), zipcodeMaxDistance: z.number().optional(), daysAheadToShowAvailability: z.number().optional(), hoursAheadToShowAvailability: z.number().optional(), maxDaysToShow: z.number().optional(), skipResettingAvailabilities: z.boolean().optional(), skipTwoFactorAuthentication: z.boolean().optional(), skipHeatMap: z.boolean().optional(), requireForm: z.boolean().optional(), confirmationQrcode: z.object({enabled: z.boolean().optional(), value: z.string().optional()}).optional(), providerAvailabilityFilter: z.array(z.object({dayOfMonth: z.number().optional(), dayOfWeek: z.number().optional(), startTime: z.string().optional(), endTime: z.string().optional(), _id: z.string().min(24).max(24).optional()})).optional(), availabilityBlocks: z.array(z.object({dayOfWeek: z.number().optional(), startTime: z.number().optional(), endTime: z.number().optional(), _id: z.string().min(24).max(24).optional()})).optional(), maxAvailablitiesToRender: z.number().optional(), patientAddress: z.object({required: z.boolean().optional(), visible: z.boolean().optional()}).optional(), patientEmailAddress: z.object({required: z.boolean().optional()}).optional(), reschedulerRespectsSchedulerRules: z.boolean().optional(), createPatientOnLookupFailure: z.boolean().optional(), minimumIntervalRequiredForBooking: z.number().optional(), forceAppointmentTypeDuration: z.boolean().optional(), ignoreDurationOnAvailabilityLookup: z.boolean().optional(), useAppointmentDurationOnAvailabilityCoalescing: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), showChatOnCompletion: z.boolean().optional(), preQualificationFormTemplate: z.string().min(24).max(24).optional(), allowMultiLinkedAppointments: z.boolean().optional(), hideProviderDetails: z.boolean().optional(), queryRealtimeAvailaiblitiesFromIntegration: z.boolean().optional(), sampleAvailabilityQuery: z.boolean().optional(), embeddedWidgetHtml: z.string().optional(), useDependentProviderOnAnchorAvailability: z.boolean().optional(), singleUseSchedulerLink: z.object({enabled: z.boolean().optional()}).optional(), onlyNotifyStaffOnAnchorApptBooking: z.boolean().optional(), minimumDaysFromLastAppointment: z.object({enabled: z.boolean().optional(), amount: z.number().optional(), status: z.array(z.enum(["confirmed", "unconfirmed", "cancelled"])).optional()}).optional()}).optional(), outboundReferral: z.object({enabled: z.boolean().optional(), attempts: z.number().optional(), interval: z.number().optional(), sendReferralFax: z.boolean().optional(), sendReferralFaxCoversheet: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), displayVisitReasonDropdown: z.boolean().optional()}).optional(), referral: z.object({enabled: z.boolean().optional(), attempts: z.number().optional(), useOutreachExperience: z.object({enabled: z.boolean().optional()}).optional(), interval: z.number().optional(), schedulableWindow: z.object({earliest: z.number().optional(), latest: z.number().optional()}).optional(), sendReferralFax: z.boolean().optional(), sendReferralFaxCoversheet: z.boolean().optional(), sendReferralFaxStatus: z.object({scheduled: z.boolean().optional(), cancelled: z.boolean().optional(), incomplete: z.boolean().optional()}).optional(), sendReferralEmail: z.boolean().optional(), requireFullMatchForAutoSchedule: z.boolean().optional(), requireSpecificMatchForAutoSchedule: z.boolean().optional(), skipAutoSchedule: z.boolean().optional(), requireMaxHoursApartFromAppointmentForAutoSchedule: z.number().optional(), includeInternalMessagingInFollowupFax: z.boolean().optional(), formLink: z.string().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), markReferralsIncompleteAfterLastOutreachInHours: z.number().optional(), useFacilityAlternativeNumber: z.boolean().optional(), suppressExpiration: z.object({enabled: z.boolean().optional()}).optional()}).optional(), reminder: z.object({multipleRemindersPerDay: z.enum(["onlySendEarliest", "multipleRemindersPerDay"]).optional(), onlySendEarliestForApptTypesWithRemindersEnabled: z.boolean().optional(), multipleRemindersPerDayShouldOnlyConsiderResourcesWithRemindersEnabledInSquiggly: z.boolean().optional(), multipleRemindersPerDayRepliesOverride: z.enum(["disabled", "allowed", "confirmationOnly", "none"]).optional(), schedule: z.array(z.unknown()).optional(), enabled: z.boolean().optional(), onConfirmation: z.enum(["skipFurtherReminders", "keepLastReminder"]).optional(), repliesForLastReminder: z.enum(["allowed", "confirmationOnly", "none"]).optional(), replies: z.enum(["allowed", "confirmationOnly", "none"]).optional(), enabledChannels: z.array(z.enum(["sms", "voice", "email", "fax", "whatsapp"])).optional(), treatCancellationsAsNoShows: z.number().optional(), offerToJoinWaitlistOnCancellation: z.enum(["disabled", "from-reminder", "from-integrator", "from-both"]).optional(), schedulableWindow: z.object({earliest: z.number().optional(), latest: z.number().optional()}).optional(), allowSelfSchedule: z.boolean().optional(), allowSelfReschedule: z.boolean().optional(), allowSelfRescheduleAvailabilityFilter: z.array(z.enum(["appointment-cancellation", "ui", "referral", "integrator"])).optional(), allowSelfRescheduleExpiry: z.number().optional(), rescheduleSundayToSaturday: z.boolean().optional(), forceVoiceCallsForSmsNonResponders: z.boolean().optional(), cancelOrConfirmAllAppointmentsInDay: z.boolean().optional(), cancelOrConfirmAppointmentsInDayOnlyIfTypeVisible: z.boolean().optional(), shouldRespectCancelOrConfirmAllAppointmentsInDay: z.boolean().optional(), allowConfirmAfterCancel: z.boolean().optional(), allowCancelAfterConfirm: z.boolean().optional(), allowCancelAfterAppointmentStart: z.boolean().optional(), strictConfirmCancelTextHandling: z.boolean().optional(), skipRedundantConfirmCancel: z.boolean().optional(), disableCatchupReminders: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), forceMessageTime: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional(), sendReminderOnHolidays: z.object({enabled: z.boolean().optional()}).optional()}).optional(), cancellation: z.object({enabled: z.boolean().optional(), expiration: z.number().optional(), processAppointmentTypes: z.boolean().optional(), requireFrontOfficeAcceptance: z.boolean().optional(), shadowAppointment: z.object({enabled: z.boolean().optional()}).optional(), allowDoubleBooks: z.boolean().optional(), skipAvailabilityCreateFromCancellationStatusSources: z.array(z.unknown()).optional(), maxDaysAheadsToProcessCancellation: z.number().optional(), minMinutesAheadsToProcessCancellation: z.number().optional(), minMinutesAheadsToProcessCancellationProviderOverridePolicy: z.enum(["min", "max"]).optional(), spotsDiscovery: z.object({enabled: z.boolean().optional(), maxSpots: z.number().optional(), hoursAhead: z.number().optional(), includeWhitespace: z.boolean().optional()}).optional(), autoAddToWaitlist: z.object({enabled: z.boolean().optional(), daysAhead: z.number().optional(), maxDaysAhead: z.number().optional(), minDaysFromLastAcceptedOfferToJoinWaitlist: z.number().optional()}).optional(), waitlistOfferFlexibility: z.enum(["strict", "facility-match", "provider-match", "any"]).optional(), waitlistOfferSortOrder: z.enum(["longest-waiting", "most-recent-added"]).optional(), waitlistLocationOfferLeadTimeOverrides: z.array(z.object({facilityId: z.unknown(), minimumLeadTimeDays: z.number().gte(0).optional()})).optional(), sendYouveBeenAddedMessage: z.boolean().optional(), skipOfferBasedOnLastSentOffer: z.boolean().optional(), maxOffersPerWaitlist: z.number().optional(), protocol: z.enum(["serial", "parallel"]).optional(), offerToJoinDuration: z.number().optional(), autoCreateWaitlists: z.boolean().optional(), delayOffers: z.object({enabled: z.boolean().optional(), until: z.string().optional(), delayOn: z.enum(["weekdays", "all-days"]).optional(), weekdaysDelay: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional(), weekendsDelay: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional()}).optional(), disableOnWeekends: z.boolean().optional(), cancelFutureAppointment: z.boolean().optional(), requireFutureAppointment: z.boolean().optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional()}).optional(), appointment: z.object({duration: z.number().optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), validateUpdatedAtTimestamp: z.boolean().optional()}).optional(), feedback: z.object({multipleRemindersPerDay: z.enum(["onlySendEarliest", "multipleRemindersPerDay"]).optional(), enabled: z.boolean().optional(), promoter: z.object({type: z.enum(["facebook", "yelp", "patientfusion", "betterdoctor", "zocdoc", "google", "generic", "healthgrades", "ratemds"]).optional(), url: z.string().optional()}).optional(), promoterUrls: z.array(z.object({type: z.enum(["facebook", "yelp", "patientfusion", "betterdoctor", "zocdoc", "google", "generic", "healthgrades", "ratemds"]).optional(), url: z.string().optional(), enabled: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional(), detractor: z.object({type: z.enum(["google", "luma"]).optional(), url: z.string().optional()}).optional(), detractorUrls: z.array(z.object({type: z.enum(["google", "surveymonkey", "luma"]).optional(), url: z.string().optional(), enabled: z.boolean().optional(), _id: z.string().min(24).max(24).optional()})).optional(), schedule: z.number().optional(), interval: z.object({enabled: z.boolean().optional(), value: z.number().optional()}).optional(), limit: z.object({enabled: z.boolean().optional(), value: z.number().optional()}).optional(), allowFeedbackForPastAppointments: z.boolean().optional(), forceMessageTime: z.object({enabled: z.boolean().optional(), until: z.string().optional()}).optional(), botResponses: z.object({enabled: z.boolean().optional()}).optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), forceSkipBlackoutRules: z.boolean().optional()}).optional(), followup: z.object({enabled: z.boolean().optional(), recommendations: z.object({timingPreferences: z.object({enabled: z.boolean().optional()}).optional()}).optional(), sendMessageForceTimeUsingTimezone: z.boolean().optional(), ignoreCustomActionOperationsModelsFields: z.object({operations: z.array(z.unknown()).optional(), models: z.array(z.unknown()).optional(), fields: z.array(z.enum(["user", "_id", "deleted", "createdAt", "updatedAt", "createdBy", "updatedBy", "deletedBy", "deletedAt", "provider", "facility", "type", "patient", "source", "statusSource", "status", "statusReason", "notes", "date", "endDate", "duration", "stats", "cancelledAt", "confirmedAt", "arrivedAt", "createdFromReferral", "externalRawSource", "customerRawSource", "telehealth", "externalId.source", "externalId.value", "secondaryExternalId.source", "secondaryExternalId.value", "integratorUpdateResults.status", "integratorUpdateResults.error", "__v"])).optional()}).optional(), sendImmediatelyWithPastSendAt: z.boolean().optional(), triggerCustomActionForDeletion: z.boolean().optional()}).optional(), integrator: z.object({requireLock: z.boolean().optional(), lockExpiryInMinutes: z.number().optional(), syncWindow: z.object({earliest: z.number().optional(), latest: z.number().optional(), days: z.number().optional(), currentWeekSyncPastDataInDays: z.number().optional()}).optional(), writeDataToIntegrator: z.object({createAppointments: z.boolean().optional(), createAppointmentsMaxRetries: z.number().optional(), updateAvailabilityExternalIdOnCreateAppointmentSuccess: z.boolean().optional(), updateStatus: z.boolean().optional(), updatePatientDemographics: z.boolean().optional(), updatePatientDemographicsName: z.boolean().optional(), updatePatientDemographicsDateOfBirth: z.boolean().optional(), flushPatientMessageHistory: z.boolean().optional(), flushPatientMessageHistoryDelay: z.number().optional(), flushPatientMessageHistoryDayOfWeek: z.number().optional(), updateAppointmentNotesWithTelehealthLink: z.boolean().optional(), updateAppointmentWithReminderSentStatus: z.boolean().optional(), createOutboundHl7MessageOn: z.array(z.enum(["cancelled", "confirmed", "created"])).optional(), createPatient: z.boolean().optional(), cacheDeletedAppointments: z.boolean().optional()}).optional(), frequency: z.number().optional(), enforceProviderDeltaCheck: z.boolean().optional(), enforceAppointmentDeltaCheck: z.boolean().optional(), syncProcedures: z.boolean().optional(), syncDiagnoses: z.boolean().optional(), syncReferrals: z.boolean().optional(), syncRecalls: z.boolean().optional(), syncInsurances: z.boolean().optional(), syncOrders: z.boolean().optional(), verifySlotIsOpenBeforeAppointmentCreation: z.boolean().optional(), verifyWhitespaceIsOpenBeforeAppointmentCreation: z.boolean().optional(), requireValueAndTypeMatchOnDemographicsUpdate: z.boolean().optional(), skipGetProvider: z.boolean().optional(), syncAppointmentExternalRawSource: z.boolean().optional(), syncProviderUpdates: z.object({enabled: z.boolean().optional()}).optional(), syncPatientExternalRawSource: z.boolean().optional(), syncAdditionalDemographicFields: z.boolean().optional(), externalCustomResourceOverrides: z.array(z.object({resource: z.enum(["provider", "appointment-type", "facility"]).optional(), override: z.array(z.string()).optional(), _id: z.string().min(24).max(24).optional()})).optional(), syncNewResourcesAs: z.object({hiddenAfterDays: z.number().optional(), hiddenResources: z.array(z.enum(["provider", "appointment-type", "facility"])).optional(), disabledAfterDays: z.number().optional(), disabledResources: z.array(z.enum(["provider", "appointment-type", "facility"])).optional()}).optional(), historicDataLoader: z.object({daysToLoad: z.number().optional(), daysPerLoad: z.number().optional()}).optional(), disableDedupeIncomingPatientData: z.boolean().optional(), disablePatientsGetByExternalTypeAndComponents: z.boolean().optional(), sftpConfirmationRangeInHours: z.number().optional(), syncReferralsDisableExpiryForMissingReferrals: z.boolean().optional(), uploadReferralsPerformCompleteDeltaCheck: z.boolean().optional(), syncAppointmentsInParallel: z.boolean().optional(), updateReferralsWithExternalRawSource: z.boolean().optional()}).optional(), patients: z.object({maxTokenAge: z.number().optional(), loginLookupInIntegrator: z.boolean().optional(), loginRequireActiveContactMatch: z.boolean().optional(), requireCaptcha: z.boolean().optional(), useAtlasSearch: z.boolean().optional(), appointmentManagement: z.object({enabled: z.boolean().optional()}).optional()}).optional(), reporting: z.object({eventTracking: z.object({enabled: z.boolean().optional(), trackingModel: z.enum(["patient", "user", "user-and-patient"]).optional(), vendors: z.array(z.string()).optional()}).optional(), useUserTimezoneInReports: z.boolean().optional()}).optional(), waitingRoom: z.object({enabled: z.boolean().optional()}).optional(), settingsToOverrideFrom: z.object({facilities: z.array(z.unknown()).optional(), providers: z.array(z.unknown()).optional(), appointmentTypes: z.array(z.unknown()).optional(), users: z.array(z.unknown()).optional()}).optional(), billing: z.object({vendors: z.object({paypal: z.object({enabled: z.boolean().optional()}).optional(), instamed: z.object({enabled: z.boolean().optional()}).optional(), salucro: z.object({enabled: z.boolean().optional()}).optional()}).optional(), contactNumber: z.string().optional(), contactEmail: z.string().optional()}).optional(), patientForms: z.object({filterPatientFormsByFacility: z.boolean().optional(), preventRefillingCompletedForms: z.boolean().optional(), allowPerQuestionTwoFactorSkip: z.boolean().optional(), showMessageOnFormEnd: z.boolean().optional(), sendDirectMessageForCcdaForms: z.object({enabled: z.boolean().optional(), vendor: z.literal("datamotion").optional(), minutesAheadsToLookForAppointments: z.number().optional(), directMessagingEmail: z.string().optional()}).optional(), allowWidgetUserToUploadFile: z.boolean().optional(), hideProgressBarOnFormsWithJump: z.boolean().optional(), insuranceFormTemplate: z.string().min(24).max(24).optional()}).optional(), insurance: z.object({verification: z.object({enabled: z.boolean().optional(), hoursAheadToVerifyInsurance: z.number().optional()}).optional()}).optional(), branding: z.object({themes: z.array(z.object({enabled: z.boolean().optional(), scope: z.string()})).optional()}).optional(), estimate: z.object({updateFileUploadPatient: z.boolean().optional()}).optional()}); export const settingResponse = z.object({_id: idParam.optional(), user: userParam.optional(), deleted: deletedParam.optional(), createdBy: createdByParam.optional(), updatedBy: updatedByParam.optional(), createdAt: createdAtParam.optional(), updatedAt: updatedAtParam.optional(), refId: z.string().min(24).max(24).optional(), ref: z.enum(["user", "provider", "facility", "appointment-type", "integrator"]).optional(), settings: settingProperty.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 }; /** * Get setting by id * * GET /settings/{settingId} */ export const getApiSettingsSettingId = async (args: GetApiSettingsSettingIdArgs, options?: GetApiSettingsSettingIdOptions) => { const {baseUrl = "https://api.lumahealth.io/api/v2", fetch: fetchFn = fetch, Bearer} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (Bearer !== undefined) headers.set('authorization', `Bearer ${Bearer}`) const url = `${baseUrl.replace(/\/+$/, '')}/settings/${encodeURIComponent(String(args.settingId))}${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(settingResponse, await res.json()) };