import {z} from 'zod' export type GetApiAddressBulkV1BatchesBatchIdResultsArgs = {'Reference-Id'?: string | undefined, batch_id: string}; export type GetApiAddressBulkV1BatchesBatchIdResultsOptions = {baseUrl?: string | undefined, OAuth2?: string | undefined, fetch?: typeof fetch | undefined}; export const responseError = z.object({type: z.string().nullable().optional(), title: z.string().nullable().optional(), detail: z.string().nullable().optional(), instance: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseStatistic = z.object({name: z.string().nullable().optional(), value: z.number().int().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMatchInfo = z.object({postcode_action: z.string().nullable().optional(), address_action: z.string().nullable().optional(), generic_info: z.array(z.string()).nullable().optional(), aus_info: z.array(z.string()).nullable().optional(), deu_info: z.array(z.string()).nullable().optional(), fra_info: z.array(z.string()).nullable().optional(), gbr_info: z.array(z.string()).nullable().optional(), nld_info: z.array(z.string()).nullable().optional(), nzl_info: z.array(z.string()).nullable().optional(), sgp_info: z.array(z.string()).nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressAddressFormatted = z.object({layout_name: z.string().nullable().optional(), address: z.record(z.string(), z.string()).nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsPostalCode = z.object({full_name: z.string().nullable().optional(), primary: z.string().nullable().optional(), secondary: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsDeliveryService = z.object({full_name: z.string().nullable().optional(), service_type: z.string().nullable().optional(), service_number: z.string().nullable().optional(), post_centre_name: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsSubBuildingItem = z.object({full_name: z.string().nullable().optional(), type: z.string().nullable().optional(), value: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsSubBuilding = z.object({name: z.string().nullable().optional(), entrance: bulkAddressV1GetBatchResultsResponseAddressComponentsSubBuildingItem.optional(), floor: bulkAddressV1GetBatchResultsResponseAddressComponentsSubBuildingItem.optional(), door: bulkAddressV1GetBatchResultsResponseAddressComponentsSubBuildingItem.optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsBuilding = z.object({building_name: z.string().nullable().optional(), building_number: z.string().nullable().optional(), secondary_name: z.string().nullable().optional(), secondary_number: z.string().nullable().optional(), allotment_number: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsOrganization = z.object({department_name: z.string().nullable().optional(), secondary_department_name: z.string().nullable().optional(), company_name: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsStreet = z.object({full_name: z.string().nullable().optional(), name: z.string().nullable().optional(), type: z.string().nullable().optional(), prefix: z.string().nullable().optional(), suffix: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsRouteService = z.object({full_name: z.string().nullable().optional(), service_type: z.string().nullable().optional(), service_number: z.string().nullable().optional(), delivery_name: z.string().nullable().optional(), qualifier: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsLocalityItem = z.object({name: z.string().nullable().optional(), code: z.string().nullable().optional(), description: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponentsLocality = z.object({region: bulkAddressV1GetBatchResultsResponseAddressComponentsLocalityItem.optional(), sub_region: bulkAddressV1GetBatchResultsResponseAddressComponentsLocalityItem.optional(), town: bulkAddressV1GetBatchResultsResponseAddressComponentsLocalityItem.optional(), district: bulkAddressV1GetBatchResultsResponseAddressComponentsLocalityItem.optional(), sub_district: bulkAddressV1GetBatchResultsResponseAddressComponentsLocalityItem.optional()}); export const bulkAddressV1GetBatchResultsResponseAddressComponents = z.object({language: z.string().nullable().optional(), country_name: z.string().nullable().optional(), country_iso_3: z.string().nullable().optional(), country_iso_2: z.string().nullable().optional(), postal_code: bulkAddressV1GetBatchResultsResponseAddressComponentsPostalCode.optional(), delivery_service: bulkAddressV1GetBatchResultsResponseAddressComponentsDeliveryService.optional(), secondary_delivery_service: bulkAddressV1GetBatchResultsResponseAddressComponentsDeliveryService.optional(), sub_building: bulkAddressV1GetBatchResultsResponseAddressComponentsSubBuilding.optional(), building: bulkAddressV1GetBatchResultsResponseAddressComponentsBuilding.optional(), organization: bulkAddressV1GetBatchResultsResponseAddressComponentsOrganization.optional(), street: bulkAddressV1GetBatchResultsResponseAddressComponentsStreet.optional(), secondary_street: bulkAddressV1GetBatchResultsResponseAddressComponentsStreet.optional(), route_service: bulkAddressV1GetBatchResultsResponseAddressComponentsRouteService.optional(), locality: bulkAddressV1GetBatchResultsResponseAddressComponentsLocality.optional(), physical_locality: bulkAddressV1GetBatchResultsResponseAddressComponentsLocality.optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataAddressInfoIdentifier = z.object({udprn: z.string().nullable().optional(), umrrn: z.string().nullable().optional(), dpid: z.string().nullable().optional(), gnafpid: z.string().nullable().optional(), hin: z.string().nullable().optional(), paf_address_key: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataAddressInfo = z.object({sources: z.array(z.string()).nullable().optional(), number_of_households: z.string().nullable().optional(), just_built_date: z.string().nullable().optional(), identifier: bulkAddressV1GetBatchResultsResponseAddressMetadataAddressInfoIdentifier.optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataRouteClassification = z.object({carrier_route: z.string().nullable().optional(), id: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataBarcode = z.object({delivery_point_barcode: z.string().nullable().optional(), check_digit: z.string().nullable().optional(), sort_plan_number: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataAddressClassificationAddressType = z.object({code: z.string().nullable().optional(), description: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataAddressClassification = z.object({address_type: bulkAddressV1GetBatchResultsResponseAddressMetadataAddressClassificationAddressType.optional(), delivery_type: z.string().nullable().optional(), is_deliverable: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadataDpv = z.object({cmra_indicator: z.string().nullable().optional(), seed_indicator: z.string().nullable().optional(), dpv_indicator: z.string().nullable().optional(), footnotes: z.array(z.string()).nullable().optional(), vacancy_indicator: z.string().nullable().optional(), no_stats_indicator: z.string().nullable().optional(), pbsa_indicator: z.string().nullable().optional(), no_stat_reason_code: z.array(z.string()).nullable().optional(), drop: z.string().nullable().optional(), throwback: z.string().nullable().optional(), non_delivery_days_indicator: z.string().nullable().optional(), non_delivery_days_value: z.array(z.string()).nullable().optional(), no_secure_location: z.string().nullable().optional(), door_not_accessible: z.string().nullable().optional(), enhanced_dpv_code: z.string().nullable().optional()}); export const bulkAddressV1GetBatchResultsResponseAddressMetadata = z.object({address_info: bulkAddressV1GetBatchResultsResponseAddressMetadataAddressInfo.optional(), route_classification: bulkAddressV1GetBatchResultsResponseAddressMetadataRouteClassification.optional(), barcode: bulkAddressV1GetBatchResultsResponseAddressMetadataBarcode.optional(), address_classification: bulkAddressV1GetBatchResultsResponseAddressMetadataAddressClassification.optional(), dpv: bulkAddressV1GetBatchResultsResponseAddressMetadataDpv.optional()}); export const bulkAddressV1GetBatchResultsResponseAddress = z.object({address: z.string().nullable().optional(), country_iso: z.string().nullable().optional(), datasets: z.array(z.string()).nullable().optional(), confidence: z.string().nullable().optional(), match_type: z.string().nullable().optional(), match_confidence: z.string().nullable().optional(), match_info: bulkAddressV1GetBatchResultsResponseAddressMatchInfo.optional(), addresses_formatted: z.array(bulkAddressV1GetBatchResultsResponseAddressAddressFormatted).nullable().optional(), components: bulkAddressV1GetBatchResultsResponseAddressComponents.optional(), metadata: bulkAddressV1GetBatchResultsResponseAddressMetadata.optional()}); export const bulkAddressV1GetBatchResultsResponseResult = z.object({batch_id: z.string().nullable().optional(), batch_reference_id: z.string().nullable().optional(), credits_charged: z.number().int().optional(), status: z.string().nullable().optional(), reason: z.string().nullable().optional(), statistics: z.array(bulkAddressV1GetBatchResultsResponseStatistic).nullable().optional(), addresses: z.array(bulkAddressV1GetBatchResultsResponseAddress).nullable().optional()}); export const bulkAddressV1GetBatchResultsResponse = z.object({error: responseError.optional(), result: bulkAddressV1GetBatchResultsResponseResult.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 }; /** * Gets the validation result of a batch of address. * * GET /address/bulk/v1/batches/{batch_id}/results * * Also accepts auth: Auth-Token */ export const getApiAddressBulkV1BatchesBatchIdResults = async (args: GetApiAddressBulkV1BatchesBatchIdResultsArgs, options?: GetApiAddressBulkV1BatchesBatchIdResultsOptions) => { const {baseUrl = "https://api.experianaperture.io", fetch: fetchFn = fetch, OAuth2} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/json") if (args['Reference-Id'] != null) headers.set("Reference-Id", String(args['Reference-Id'])) if (OAuth2 !== undefined) headers.set('authorization', `Bearer ${OAuth2}`) const url = `${baseUrl.replace(/\/+$/, '')}/address/bulk/v1/batches/${encodeURIComponent(String(args.batch_id))}/results${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(bulkAddressV1GetBatchResultsResponse, await res.json()) };