export type DisplayHintsRef = {displayName?: string | undefined, displayOrder?: number | undefined}; export type JurisdictionRef = {displayHints?: DisplayHintsRef | undefined}; export type RegionRef = {displayName?: string | undefined, numberingString?: string | undefined}; export type ConditionValueRef = {key: string, values: Array}; export type PropertyConstraint = {table: string, column: string, where: {[key: string]: ConditionValueRef}}; export type AvailabilityRef = {availableAfter?: string | undefined, availabilityTimeBasis: 'policyStartTime' | 'termStartTime', retireAfter?: string | undefined, retire?: boolean | undefined, retirementTimeBasis: 'policyStartTime' | 'termStartTime', removeOnRenewalAfter?: string | undefined, removeOnRenewal?: boolean | undefined}; export type Values = {string: string, int: number, long: number, guid: string, date: string, datetime: string, decimal: number}; export type RestrictedDataRef = {anonymizable: boolean, maskingLevel: 'none' | 'level1' | 'level2', value: Values}; export type PropertyRef = {displayName?: string | undefined, type?: string | undefined, scope?: string | undefined, defaultValue?: string | undefined, min?: string | undefined, max?: string | undefined, minLength?: number | undefined, maxLength?: number | undefined, precision?: number | undefined, options?: Array | undefined, regex?: string | undefined, roundingMode?: ('ceiling' | 'down' | 'floor' | 'halfDown' | 'halfEven' | 'halfUp' | 'up') | undefined, tag?: Array | undefined, constraint?: PropertyConstraint | undefined, searchable?: boolean | undefined, availability?: AvailabilityRef | undefined, restrictedData?: RestrictedDataRef | undefined}; export type DataTypeRef = {displayName?: string | undefined, abstract?: boolean | undefined, extend?: string | undefined, data: {[key: string]: PropertyRef}, defaultSearchable?: boolean | undefined}; export type AccountRef = {displayName?: string | undefined, abstract?: boolean | undefined, extend?: string | undefined, defaultSearchable?: boolean | undefined, data: {[key: string]: PropertyRef}, defaultInvoiceDocument?: string | undefined, numberingPlan?: string | undefined, invoiceNumberingPlan?: string | undefined, paymentExecutionRetryPlan?: string | undefined, contacts?: {[key: string]: Array} | undefined, numberingTrigger?: ('creation' | 'validation') | undefined, accountKind?: ('standard' | 'proxyPayer') | undefined}; export type ElementRef = {extend?: string | undefined, abstract?: boolean | undefined, pluralType?: string | undefined, displayName?: string | undefined, coverageTerms?: Array | undefined, contents?: Array | undefined, charges?: Array | undefined, defaultSearchable?: boolean | undefined, data?: {[key: string]: PropertyRef} | undefined, availability?: AvailabilityRef | undefined, schedule?: string | undefined}; export type ProductRef = {extend?: string | undefined, abstract?: boolean | undefined, defaultInstallmentPlan?: string | undefined, defaultBillingPlan?: string | undefined, defaultTermDuration?: number | undefined, defaultDelinquencyPlan?: string | undefined, defaultAutoRenewalPlan?: string | undefined, defaultShortfallTolerancePlan?: string | undefined, displayName?: string | undefined, defaultDurationBasis?: ('years' | 'months' | 'weeks' | 'days' | 'hours') | undefined, coverageTerms?: Array | undefined, eligibleAccountTypes?: Array | undefined, eligibleTransactionTypes?: Array | undefined, contents?: Array | undefined, documents?: Array | undefined, charges?: Array | undefined, scheduledEvents?: Array | undefined, data?: {[key: string]: PropertyRef} | undefined, staticData?: {[key: string]: PropertyRef} | undefined, defaultSearchable?: boolean | undefined, pluralType?: string | undefined, numberingPlan?: string | undefined, numberingString?: string | undefined, availability?: AvailabilityRef | undefined, withPrecommitReapplication?: boolean | undefined, requiresJurisdiction?: boolean | undefined, contacts?: {[key: string]: Array} | undefined, numberingTrigger?: ('creation' | 'validation') | undefined, workplanTriggers?: {[key: string]: Array} | undefined, riskAssessmentCriteria?: string | undefined, producerQualification?: ('none' | 'license' | 'appointment') | undefined, externalNumberingPlan?: string | undefined, reservedPolicyNumberRequired?: boolean | undefined, continuationFor?: Array | undefined}; export type CoverageTermOptionRef = {displayName?: string | undefined, value: number, tag?: string | undefined, displayHints?: DisplayHintsRef | undefined}; export type CoverageTermRef = {type: 'splitLimit' | 'deductible' | 'limit', displayName?: string | undefined, options?: {[key: string]: CoverageTermOptionRef} | undefined, value?: PropertyRef | undefined, availability?: AvailabilityRef | undefined}; export type ChargeRef = {displayName?: string | undefined, category: 'none' | 'premium' | 'tax' | 'fee' | 'credit' | 'invoiceFee' | 'cededPremium' | 'nonFinancial' | 'surcharge', handling: 'flat' | 'normal' | 'retention', invoicing: 'scheduled' | 'next' | 'immediate', transactionBundlingEnabled: boolean}; export type TransactionTypeRef = {category: 'issuance' | 'change' | 'renewal' | 'cancellation' | 'continuation' | 'flatCancellation' | 'reinstatement' | 'reversal' | 'aggregate', costBearing: boolean, displayHints?: DisplayHintsRef | undefined, data?: {[key: string]: PropertyRef} | undefined}; export type InstallmentPlanRef = {displayName?: string | undefined, cadence: 'none' | 'fullPay' | 'weekly' | 'everyOtherWeek' | 'monthly' | 'quarterly' | 'semiannually' | 'annually' | 'thirtyDays' | 'everyNDays', anchorMode: 'generateDay' | 'termStartDay' | 'dueDay', generateLeadDays: number, dueLeadDays: number, installmentWeights: Array, maxInstallmentsPerTerm: number, autopayLeadDays?: number | undefined}; export type InstallmentGroupingDetails = {matching: 'generateTime' | 'startTime' | 'all', window: 'start' | 'startAndEnd' | 'catchUp'}; export type InvoicingPlanRef = {displayName?: string | undefined, invoiceFeeHandling: 'max' | 'min' | 'sum' | 'waive', invoiceFeeAmounts: {[key: string]: number}, consolidateInvoicesOnCancellation: 'none' | 'future' | 'all', installmentGrouping: InstallmentGroupingDetails}; export type BillingPlanRef = {displayName?: string | undefined, billingLevel: 'account' | 'inherit' | 'policy'}; export type PaymentRef = {displayName?: string | undefined, abstract: boolean, extend: string, defaultSearchable: boolean, data?: {[key: string]: PropertyRef} | undefined, numberingPlan: string, numberingTrigger: 'creation' | 'validation'}; export type DisbursementRef = {displayName?: string | undefined, abstract?: boolean | undefined, extend?: string | undefined, data: {[key: string]: PropertyRef}, numberingPlan?: string | undefined, numberingTrigger?: ('creation' | 'validation') | undefined}; export type ColumnRef = {dataType: string, isKey: boolean}; export type TableRef = {columns: {[key: string]: ColumnRef}, selectionTimeBasis: 'policyStartTime' | 'termStartTime' | 'transactionEffectiveTime' | 'currentTime'}; export type RangeTableRef = {columns: {[key: string]: ColumnRef}, selectionTimeBasis: 'policyStartTime' | 'termStartTime' | 'transactionEffectiveTime' | 'currentTime', rangeStart: string, rangeEnd?: string | undefined}; export type ConstraintColumnRef = {dataType: string, makeDistinct: boolean}; export type ConstraintTableRef = {columns: {[key: string]: ConstraintColumnRef}, selectionTimeBasis: 'policyStartTime' | 'termStartTime' | 'transactionEffectiveTime' | 'currentTime'}; export type PrimitivePropertyRef = {dataType: string}; export type SecretRef = {items: {[key: string]: PrimitivePropertyRef}}; export type DocumentMarginRef = {top?: number | undefined, bottom?: number | undefined, left?: number | undefined, right?: number | undefined}; export type DocumentConfigRef = {displayName?: string | undefined, scope: 'transaction' | 'policy' | 'term' | 'segment' | 'invoice', format: 'text' | 'html' | 'pdf' | 'jpg' | 'jpeg' | 'doc' | 'docx' | 'xls' | 'xlsx' | 'csv' | 'txt' | 'zip', rendering: 'dynamic' | 'prerendered', selectionTimeBasis: 'policyStartTime' | 'termStartTime' | 'transactionEffectiveTime' | 'currentTime', trigger: 'validated' | 'priced' | 'accepted' | 'underwritten' | 'issued' | 'generated' | 'declined' | 'rejected' | 'refused', portrait?: boolean | undefined, pageSize?: ('letter' | 'legal' | 'A3' | 'A4' | 'A5' | 'B4' | 'B5') | undefined, margin?: DocumentMarginRef | undefined, templateSnippets: Array, customFonts: Array, enablePdfTags: boolean}; export type ConsolidatedPageNumberingRef = {enableNumbering: boolean, leadingDocumentPages: boolean, xPosition: number, yPosition: number}; export type ConsolidatedDocumentConfigRef = {displayName?: string | undefined, consolidatedDocuments: Array, leadingDocumentTemplate?: string | undefined, pageNumbering?: ConsolidatedPageNumberingRef | undefined}; export type TemplateSnippetConfigRef = {displayName?: string | undefined, selectionTimeBasis: 'policyStartTime' | 'termStartTime' | 'transactionEffectiveTime' | 'currentTime'}; export type AuxDataSettingsRef = {displayName?: string | undefined, expirationPeriod: number}; export type MoratoriumRuleRef = {path: string, criteriaKey: string, notIn: boolean}; export type MoratoriumProductRuleRef = {product: string, operator: 'AND' | 'OR', rules: Array, displayName?: string | undefined}; export type MoratoriumPolicyMatchCriteriaRef = {criteriaValues: {[key: string]: Array}, productsRules: {[key: string]: MoratoriumProductRuleRef}}; export type PolicyHoldScopeRef = {transactionCategory: Array<'issuance' | 'change' | 'renewal' | 'cancellation' | 'continuation' | 'flatCancellation' | 'reinstatement' | 'reversal' | 'aggregate'>, transactionType: Array, allowStaticData: boolean, displayName?: string | undefined}; export type BillingHoldScopeRef = {policyInvoicingHold: boolean, policyDelinquencyHold: boolean, autopayHold: boolean, deferredInvoiceDueOffsetDays: number, displayName?: string | undefined}; export type MoratoriumRef = {type: string, description?: string | undefined, applicationMode: 'optIn' | 'optOut' | 'mandatory', effectiveTime: string, endTime?: string | undefined, policyMatchCriteria: MoratoriumPolicyMatchCriteriaRef, effectiveTimeWaived?: boolean | undefined, policyHoldScope: PolicyHoldScopeRef, billingHoldScope: BillingHoldScopeRef, displayName?: string | undefined}; export type EventCadenceRef = {intervalDuration: number, durationBasis: 'years' | 'months' | 'weeks' | 'days' | 'hours', limit?: number | undefined}; export type EventScheduleRef = {anchor: 'policyStart' | 'policyEnd' | 'termStart' | 'segmentStart', alignment?: ('weekStart' | 'monthStart' | 'yearStart') | undefined, offset?: {[key: string]: number} | undefined, cadence?: EventCadenceRef | undefined, suppressOnStatuses?: (Array<'pending' | 'inGap' | 'expired' | 'cancelled' | 'cancelPending' | 'onRisk' | 'delinquent' | 'doNotRenew' | 'continued' | 'continuation' | 'flatCancelled'>) | undefined}; export type CustomEventRef = {type: string, schedule?: EventScheduleRef | undefined}; export type DelinquencyEventConfiguration = {offsetDays: number, offsetBasis: 'gracePeriodStart' | 'gracePeriodEnd'}; export type DelinquencyPlanRef = {displayName?: string | undefined, gracePeriodDays: number, delinquencyLevel?: ('policy' | 'invoice') | undefined, lapseTransactionType?: string | undefined, advanceLapseTo?: ('draft' | 'validated' | 'priced' | 'underwritten' | 'accepted' | 'issued') | undefined, events?: {[key: string]: DelinquencyEventConfiguration} | undefined}; export type ShortfallTolerancePlanRef = {currencyTolerances: {[key: string]: number}}; export type AutoRenewalPlanRef = {generateAutoRenewals: boolean, renewalTransactionType?: string | undefined, renewalCreateLeadDays?: number | undefined, renewalAcceptLeadDays?: number | undefined, renewalIssueLeadDays?: number | undefined, newTermDuration?: number | undefined}; export type NegativeInvoiceHandlingRef = {automaticallySettleNegativeInvoices: 'toOpenInvoices' | 'toCreditBalance' | 'never', prioritizeOverlappingCoveragePeriods: boolean, targetInvoices: 'overlappingCoveragePeriodsOnly' | 'overlappingCoverageAndEarlier' | 'allOpenInvoices', targetInvoicePriority: 'byAmount' | 'smallestFirst' | 'earliestFirst', processingMode: 'accountLevel' | 'policyLevel', yieldExcessToCreditBalance: boolean}; export type ExcessCreditPlanRef = {disburseExcess: boolean, disbursementType: string, excludeDebits: 'allInvoices' | 'invoicesAndUnbilledInstallments' | 'none' | 'pastDueInvoices', disbursementThresholds: {[key: string]: number}, advanceDisbursementTo: 'draft' | 'validated' | 'approved' | 'executed' | 'reversed' | 'rejected' | 'discarded', autoApplyExcessToInvoicesEnabled: boolean, negativeInvoiceHandling: NegativeInvoiceHandlingRef}; export type ReversalTypeRef = {creditType: 'any' | 'creditDistribution' | 'payment'}; export type NumberingPlanRef = {displayName?: string | undefined, initialCoreNumber: string, format: string, copyFromQuote: boolean, termNumberFormat: string, quoteNumberFormat: string, initialQuoteCoreNumber: string, productScope?: string | undefined}; export type FnolRef = {displayName?: string | undefined, extend?: string | undefined, abstract?: boolean | undefined, lossTypes?: Array | undefined, defaultClaimType?: string | undefined, defaultSearchable?: boolean | undefined, data: {[key: string]: PropertyRef}, numberingPlan?: string | undefined, contacts?: {[key: string]: Array} | undefined}; export type LossRef = {displayName?: string | undefined, extend?: string | undefined, abstract?: boolean | undefined, data: {[key: string]: PropertyRef}, category: string, defaultClaimExposureType?: string | undefined, coverageTypes?: Array | undefined}; export type ContactRef = {abstract?: boolean | undefined, extend?: string | undefined, defaultSearchable?: boolean | undefined, data: {[key: string]: PropertyRef}}; export type ScheduleRef = {extend?: string | undefined, abstract?: boolean | undefined, displayName?: string | undefined, data: {[key: string]: PropertyRef}, resetOnRenewal: boolean}; export type TaskTypeRef = {defaultDeadlineDays: number, blocksUnderwriting: boolean, numberingPlan?: string | undefined, numberingString?: string | undefined}; export type UserAssociationRoleRef = {appliesTo?: (Array<'account' | 'quickQuote' | 'quote' | 'policy' | 'transaction' | 'invoice' | 'underwritingFlag' | 'payment' | 'quoteGroup' | 'inquiry'>) | undefined, exclusive?: boolean | undefined, qualification?: {[key: string]: string} | undefined}; export type LabelRef = Record; export type WorkManagementRef = {tasks?: {[key: string]: {[key: string]: TaskTypeRef}} | undefined, userAssociationRoles?: {[key: string]: UserAssociationRoleRef} | undefined, qualifications?: {[key: string]: Array} | undefined, labels?: {[key: string]: LabelRef} | undefined}; export type DataAccessControlFieldRef = {fields: Array}; export type DataAccessControlRef = {enabled: boolean, dataMasking: boolean, account: DataAccessControlFieldRef, policy: DataAccessControlFieldRef}; export type SecretKeyRef = {name: string, key: string}; export type IntentPlan = {intentType: string, taskType: string, workgroup?: string | undefined}; export type AssistantRef = {patTokenSecretRef?: SecretKeyRef | undefined, inquiryIntents?: {[key: string]: IntentPlan} | undefined}; export type ResourceInstanceRef = {staticName: string, jurisdictions: Array}; export type ResourceGroupRef = {selectionStartTime: string, resourceNames: Array}; export type ResourcesRef = {resourceInstances: {[key: string]: ResourceInstanceRef}, resourceGroups: {[key: string]: ResourceGroupRef}}; export type BootstrapRef = {resources: ResourcesRef}; export type RetryPlanRef = {attempts: number, hoursBetweenAttempts: Array}; export type AutomationPluginActionRef = {timeout?: number | undefined, request?: {[key: string]: PropertyRef} | undefined, response?: {[key: string]: PropertyRef} | undefined}; export type AutomationPluginRef = {enableWebhooks?: boolean | undefined, actions?: {[key: string]: AutomationPluginActionRef} | undefined, secret?: string | undefined, webhookHandlerTimeout?: number | undefined}; export type ProducerRef = {displayName?: string | undefined, abstract: boolean, extend: string, defaultSearchable: boolean, data?: {[key: string]: PropertyRef} | undefined}; export type ProducerCodeRef = {displayName?: string | undefined, abstract: boolean, extend: string, defaultSearchable: boolean, numberingPlan: string, numberingString: string, data?: {[key: string]: PropertyRef} | undefined}; export type ProducerLicenseRef = {abstract: boolean, extend: string, defaultSearchable: boolean, data?: {[key: string]: PropertyRef} | undefined}; export type ProducerAppointmentRef = {abstract: boolean, extend: string, defaultSearchable: boolean, data?: {[key: string]: PropertyRef} | undefined}; export type UnderwritingFlagRef = {level?: ('info' | 'block' | 'decline' | 'reject' | 'approve') | undefined, tag?: string | undefined, note?: string | undefined}; export type ProducerManagementRef = {producers: {[key: string]: ProducerRef}, producerCodes: {[key: string]: ProducerCodeRef}, producerLicenses: {[key: string]: ProducerLicenseRef}, producerAppointments: {[key: string]: ProducerAppointmentRef}, underwritingFlag: UnderwritingFlagRef}; export type TenantEventScheduleRef = {alignment?: ('weekStart' | 'monthStart' | 'yearStart') | undefined, offset?: {[key: string]: number} | undefined, cadence?: EventCadenceRef | undefined}; export type TenantCustomEventRef = {type: string, schedule?: TenantEventScheduleRef | undefined, isPersisted: boolean}; export type ExternalNumberingPlanRef = {displayName?: string | undefined, triggerQuoteState: 'draft' | 'validated' | 'earlyUnderwritten' | 'priced' | 'underwritten' | 'accepted' | 'issued' | 'underwrittenBlocked' | 'declined' | 'rejected' | 'refused' | 'discarded'}; export type ConfigurationRef = {defaultTimeZone?: string | undefined, defaultCurrency?: string | undefined, defaultTermDuration?: number | undefined, defaultInstallmentPlan?: string | undefined, defaultInvoicingPlan?: string | undefined, defaultPaymentNumberingPlanName?: string | undefined, defaultDisbursementNumberingPlanName?: string | undefined, defaultBillingPlan?: string | undefined, defaultDurationBasis?: ('years' | 'months' | 'weeks' | 'days' | 'hours') | undefined, defaultBillingLevel?: ('account' | 'inherit' | 'policy') | undefined, defaultBackdatedInstallmentsBilling?: ('immediate' | 'deferDueDate') | undefined, defaultDelinquencyPlan?: string | undefined, defaultAutoRenewalPlan?: string | undefined, defaultExcessCreditPlan?: string | undefined, defaultRetryPlan?: string | undefined, defaultLapseType?: string | undefined, defaultAnchorMode?: ('generateDay' | 'termStartDay' | 'dueDay') | undefined, defaultGenerateLeadDays?: number | undefined, defaultDueLeadDays?: number | undefined, defaultAuxDataSettings?: string | undefined, defaultShortfallTolerancePlan?: string | undefined, jurisdictions?: {[key: string]: JurisdictionRef} | undefined, regions?: {[key: string]: RegionRef} | undefined, defaultRegion?: string | undefined, defaultSearchable?: boolean | undefined, enableSerialInvoiceNumbering?: boolean | undefined, enableEntityAnonymization?: boolean | undefined, defaultScheduleUploadErrorsLimit?: number | undefined, dataTypes?: {[key: string]: DataTypeRef} | undefined, accounts: {[key: string]: AccountRef}, policyLines?: {[key: string]: ElementRef} | undefined, exposureGroups?: {[key: string]: ElementRef} | undefined, exposures?: {[key: string]: ElementRef} | undefined, coverages?: {[key: string]: ElementRef} | undefined, products: {[key: string]: ProductRef}, coverageTerms?: {[key: string]: CoverageTermRef} | undefined, charges: {[key: string]: ChargeRef}, transactionTypes?: {[key: string]: TransactionTypeRef} | undefined, installmentPlans?: {[key: string]: InstallmentPlanRef} | undefined, invoicingPlans?: {[key: string]: InvoicingPlanRef} | undefined, billingPlans?: {[key: string]: BillingPlanRef} | undefined, payments?: {[key: string]: PaymentRef} | undefined, disbursements?: {[key: string]: DisbursementRef} | undefined, tables?: {[key: string]: TableRef} | undefined, rangeTables?: {[key: string]: RangeTableRef} | undefined, constraintTables?: {[key: string]: ConstraintTableRef} | undefined, secrets?: {[key: string]: SecretRef} | undefined, documents?: {[key: string]: DocumentConfigRef} | undefined, consolidatedDocuments?: {[key: string]: ConsolidatedDocumentConfigRef} | undefined, templateSnippets?: {[key: string]: TemplateSnippetConfigRef} | undefined, customFonts?: Array | undefined, auxDataSettings?: {[key: string]: AuxDataSettingsRef} | undefined, moratoriums?: {[key: string]: MoratoriumRef} | undefined, customEvents?: {[key: string]: CustomEventRef} | undefined, delinquencyPlans?: {[key: string]: DelinquencyPlanRef} | undefined, shortfallTolerancePlans?: {[key: string]: ShortfallTolerancePlanRef} | undefined, autoRenewalPlans?: {[key: string]: AutoRenewalPlanRef} | undefined, excessCreditPlans?: {[key: string]: ExcessCreditPlanRef} | undefined, reversalTypes?: {[key: string]: ReversalTypeRef} | undefined, numberingPlans?: {[key: string]: NumberingPlanRef} | undefined, fnol?: {[key: string]: FnolRef} | undefined, losses?: {[key: string]: LossRef} | undefined, lossCategories?: Array | undefined, contacts?: {[key: string]: ContactRef} | undefined, contactRoles?: Array | undefined, schedules?: {[key: string]: ScheduleRef} | undefined, workManagement?: WorkManagementRef | undefined, dataAccessControl?: DataAccessControlRef | undefined, assistant?: AssistantRef | undefined, bootstrap?: BootstrapRef | undefined, defaultInvoiceDocument?: string | undefined, retryPlans?: {[key: string]: RetryPlanRef} | undefined, automations?: {[key: string]: AutomationPluginRef} | undefined, producerManagement?: ProducerManagementRef | undefined, tenantCustomEvents?: {[key: string]: TenantCustomEventRef} | undefined, externalNumberingPlans?: {[key: string]: ExternalNumberingPlanRef} | undefined}; export type GetApiConfigTenantLocatorDeploymentsDiffArgs = {tenantLocator: string, config: ConfigurationRef}; export type GetApiConfigTenantLocatorDeploymentsDiffOptions = {baseUrl: string, fetch?: typeof fetch | undefined}; /** * GET /config/{tenantLocator}/deployments/diff */ export const getApiConfigTenantLocatorDeploymentsDiff = async (args: GetApiConfigTenantLocatorDeploymentsDiffArgs, options: GetApiConfigTenantLocatorDeploymentsDiffOptions) => { const {baseUrl, fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "*/*") if (args.config != null) query.append("config", JSON.stringify(args.config)) const url = `${baseUrl.replace(/\/+$/, '')}/config/${encodeURIComponent(String(args.tenantLocator))}/deployments/diff${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 res.blob() };