import {z} from 'zod' export type AdaptekApiCommonConstantsAccountsProductType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18; export type AdaptekApiCommonConstantsAccountsProductSubType = 1 | 2 | 3 | 5 | 6 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61; export type GetApiV1InsuranceAccountsByownersArgs = {ownerIds?: Array | undefined, productTypes?: Array | undefined, productSubTypes?: Array | undefined}; export type GetApiV1InsuranceAccountsByownersOptions = {baseUrl: string, oauth2?: string | undefined, fetch?: typeof fetch | undefined}; export const adaptekApiCommonConstantsAccountsProductType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8), z.literal(9), z.literal(10), z.literal(11), z.literal(12), z.literal(13), z.literal(14), z.literal(15), z.literal(16), z.literal(17), z.literal(18)]); export const adaptekApiCommonConstantsAccountsAccountTaxType = z.union([z.literal(1), z.literal(5), z.literal(6), z.literal(7), z.literal(9), z.literal(10), z.literal(11), z.literal(13), z.literal(14), z.literal(15), z.literal(16), z.literal(17), z.literal(20), z.literal(21), z.literal(22), z.literal(23), z.literal(24), z.literal(25), z.literal(26), z.literal(27), z.literal(28), z.literal(29), z.literal(30), z.literal(31), z.literal(32), z.literal(33), z.literal(34), z.literal(35), z.literal(36), z.literal(38), z.literal(39)]); export const adaptekApiCommonConstantsCommonStateOrProvinceType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8), z.literal(9), z.literal(10), z.literal(11), z.literal(12), z.literal(13), z.literal(14), z.literal(15), z.literal(16), z.literal(17), z.literal(18), z.literal(19), z.literal(20), z.literal(21), z.literal(22), z.literal(23), z.literal(24), z.literal(25), z.literal(26), z.literal(27), z.literal(28), z.literal(29), z.literal(30), z.literal(31), z.literal(32), z.literal(33), z.literal(34), z.literal(35), z.literal(36), z.literal(37), z.literal(38), z.literal(39), z.literal(40), z.literal(41), z.literal(42), z.literal(43), z.literal(44), z.literal(45), z.literal(46), z.literal(47), z.literal(48), z.literal(49), z.literal(50), z.literal(51), z.literal(52), z.literal(53), z.literal(54), z.literal(55), z.literal(56)]); export const adaptekApiCommonConstantsAccountsOwnershipType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6), z.literal(7), z.literal(8)]); export const adaptekApiCommonConstantsAccountsAccountAdvisorType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountAdvisorDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), userId: z.number().int().optional(), accountAdvisorTypeId: adaptekApiCommonConstantsAccountsAccountAdvisorType.optional(), splitPercentage: z.number().optional(), remarks: z.string().nullable().optional(), isDeleted: z.boolean().optional()}); export const adaptekApiCommonConstantsAccountsAnnuitantType = z.union([z.literal(1), z.literal(2)]); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountAnnuitantDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), personId: z.number().int().optional(), annuitantTypeId: adaptekApiCommonConstantsAccountsAnnuitantType.optional(), remarks: z.string().nullable().optional(), isDeleted: z.boolean().optional()}); export const adaptekApiCommonConstantsAccountsInsuredType = z.union([z.literal(1), z.literal(2)]); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountInsuredDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), personId: z.number().int().optional(), insuredTypeId: adaptekApiCommonConstantsAccountsInsuredType.optional(), remarks: z.string().nullable().optional(), isDeleted: z.boolean().optional()}); export const adaptekApiCommonConstantsAccountsAccountOwnerType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountOwnerDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), personId: z.number().int().optional(), accountOwnerTypeId: adaptekApiCommonConstantsAccountsAccountOwnerType.optional(), percentage: z.number().optional(), remarks: z.string().nullable().optional(), isDeleted: z.boolean().optional()}); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountValueDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), value: z.number().optional(), valueDate: z.string().optional(), isDeleted: z.boolean().optional(), dateModified: z.string().optional(), userModified: z.number().int().nullable().optional(), personModified: z.number().int().nullable().optional()}); export const adaptekApiCommonConstantsAccountsAccountModeType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5)]); export const adaptekApiCommonConstantsAccountsAccountPaymentType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4), z.literal(5), z.literal(6)]); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountPremiumDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), accountModeTypeId: adaptekApiCommonConstantsAccountsAccountModeType.optional(), accountPaymentTypeId: adaptekApiCommonConstantsAccountsAccountPaymentType.optional(), modal: z.number().optional(), annualized: z.number().optional(), startDate: z.string().optional(), endDate: z.string().nullable().optional(), remarks: z.string().nullable().optional(), isDeleted: z.boolean().optional()}); export const adaptekApiApplicationVendorProductsVendorDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), externalIdentifier: z.string().nullable().optional(), holdingCompanyId: z.number().int().nullable().optional(), name: z.string().nullable().optional(), isGlobal: z.boolean().optional(), isDeleted: z.boolean().optional(), remarks: z.string().nullable().optional(), byAllAccountsIdentifier: z.string().nullable().optional()}); export const adaptekApiCommonConstantsAccountsProductSubType = z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(5), z.literal(6), z.literal(10), z.literal(11), z.literal(12), z.literal(14), z.literal(15), z.literal(16), z.literal(17), z.literal(18), z.literal(19), z.literal(20), z.literal(21), z.literal(22), z.literal(23), z.literal(24), z.literal(25), z.literal(26), z.literal(27), z.literal(28), z.literal(29), z.literal(30), z.literal(31), z.literal(32), z.literal(33), z.literal(34), z.literal(35), z.literal(36), z.literal(37), z.literal(38), z.literal(39), z.literal(40), z.literal(41), z.literal(42), z.literal(43), z.literal(44), z.literal(45), z.literal(46), z.literal(47), z.literal(48), z.literal(49), z.literal(50), z.literal(51), z.literal(52), z.literal(53), z.literal(54), z.literal(55), z.literal(56), z.literal(57), z.literal(58), z.literal(59), z.literal(60), z.literal(61)]); export const adaptekApiApplicationVendorProductsProductDto = z.object({id: z.number().int().optional(), ticker: z.string().nullable().optional(), cusip: z.string().nullable().optional(), sedol: z.string().nullable().optional(), isin: z.string().nullable().optional(), coupon: z.string().nullable().optional(), isDeleted: z.boolean().optional(), isGlobal: z.boolean().optional(), holdingCompanyId: z.number().int().nullable().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), productSubTypeId: adaptekApiCommonConstantsAccountsProductSubType.optional(), name: z.string().nullable().optional(), otherSymbol: z.string().nullable().optional(), importNumber: z.number().int().optional(), externalIdentifier: z.string().nullable().optional(), dateCreated: z.string().optional(), dateModified: z.string().nullable().optional(), userCreated: z.number().int().nullable().optional(), userModified: z.number().int().nullable().optional(), assetClassTypeId: z.number().int().nullable().optional(), assetSubClassTypeId: z.number().int().nullable().optional(), maturityDate: z.string().nullable().optional()}); export const adaptekApiApplicationVendorProductsVendorProductDto = z.object({vendorId: z.number().int().optional(), productId: z.number().int().optional(), vendor: adaptekApiApplicationVendorProductsVendorDto.optional(), product: adaptekApiApplicationVendorProductsProductDto.optional()}); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountVendorProductDto = z.object({id: z.number().int().optional(), importNumber: z.number().int().optional(), insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), vendorId: z.number().int().optional(), productId: z.number().int().optional(), isDeleted: z.boolean().optional(), productDisplayName: z.string().nullable().optional(), vendorDisplayName: z.string().nullable().optional(), vendorProduct: adaptekApiApplicationVendorProductsVendorProductDto.optional()}); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountByAllAccountsDto = z.object({insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), advisorIdentifier: z.string().nullable().optional(), clientIdentifier: z.string().nullable().optional(), institutionIdentifier: z.string().nullable().optional(), accountIdentifier: z.string().nullable().optional(), dataLastReceived: z.string().optional(), isDeleted: z.boolean().optional()}); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountLifeKeyValueDto = z.object({insuranceAccountId: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), basicFaceAmount: z.number().optional(), loanAmount: z.number().optional(), cashSurrenderValue: z.number().nullable().optional()}); export const adaptekApiApplicationInsuranceAccountsInsuranceAccountDto = z.object({id: z.number().int().optional(), productTypeId: adaptekApiCommonConstantsAccountsProductType.optional(), importNumber: z.number().int().optional(), externalIdentifier: z.string().nullable().optional(), holdingCompanyId: z.number().int().optional(), name: z.string().nullable().optional(), policyNumber: z.string().nullable().optional(), issueAge: z.number().int().optional(), issueDate: z.string().nullable().optional(), maturityDate: z.string().nullable().optional(), accountTaxTypeId: adaptekApiCommonConstantsAccountsAccountTaxType.optional(), stateOrProvinceTypeId: adaptekApiCommonConstantsCommonStateOrProvinceType.optional(), isEditableInVault: z.boolean().optional(), reportNote: z.string().nullable().optional(), isDeleted: z.boolean().optional(), dateCreated: z.string().optional(), personCreated: z.number().int().nullable().optional(), ownershipTypeId: adaptekApiCommonConstantsAccountsOwnershipType.optional(), commission: z.number().nullable().optional(), isSyncedToRoi: z.boolean().optional(), salesforceAccountID: z.string().nullable().optional(), advisors: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountAdvisorDto).nullable().optional(), annuitants: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountAnnuitantDto).nullable().optional(), insureds: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountInsuredDto).nullable().optional(), owners: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountOwnerDto).nullable().optional(), values: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountValueDto).nullable().optional(), premiums: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountPremiumDto).nullable().optional(), vendorProducts: z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountVendorProductDto).nullable().optional(), byAllAccounts: adaptekApiApplicationInsuranceAccountsInsuranceAccountByAllAccountsDto.optional(), lifeKeyValue: adaptekApiApplicationInsuranceAccountsInsuranceAccountLifeKeyValueDto.optional()}); export const getApiV1InsuranceAccountsByownersResponse = z.array(adaptekApiApplicationInsuranceAccountsInsuranceAccountDto); 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 }; /** * Returns a list of Insurance Accounts by Owners * * GET /v1/InsuranceAccounts/byowners */ export const getApiV1InsuranceAccountsByowners = async (args: GetApiV1InsuranceAccountsByownersArgs, options: GetApiV1InsuranceAccountsByownersOptions) => { const {baseUrl, fetch: fetchFn = fetch, oauth2} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") for (const item of args.ownerIds ?? []) query.append("ownerIds", String(item)) for (const item of args.productTypes ?? []) query.append("productTypes", String(item)) for (const item of args.productSubTypes ?? []) query.append("productSubTypes", String(item)) if (oauth2 !== undefined) headers.set('authorization', `Bearer ${oauth2}`) const url = `${baseUrl.replace(/\/+$/, '')}/v1/InsuranceAccounts/byowners${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(getApiV1InsuranceAccountsByownersResponse, await res.json()) };