@shipengine/connect-carrier-api
Version:
This is the typescript/javascript definitions for carrier api
23 lines (20 loc) • 905 B
text/typescript
import Joi from 'joi';
import { fileExists } from './custom-validators/file-exists';
import { RateCard, RateCardSchema } from './rate-card';
/** Configuration for attaching Native Rating to a carrier */
export interface NativeRatingConfiguration {
/** @description Default rate card to use for rating */
DefaultRateCardId?: string;
/** @description Can users manage their own rates */
SupportsUserManagedRates?: boolean;
/** Path to rating logic and rate card data for this carrier */
Path?: string;
/** Array of rate cards for the carrier */
RateCards?: RateCard[];
}
export const NativeRatingConfigurationSchema = Joi.object({
DefaultRateCardId: Joi.string().optional(),
SupportsUserManagedRates: Joi.boolean().optional(),
Path: Joi.string().optional().custom(fileExists, 'implementation path exists'),
RateCards: Joi.array().optional().items(RateCardSchema).unique('Id'),
});