@shipengine/connect-carrier-api
Version:
This is the typescript/javascript definitions for carrier api
66 lines (61 loc) • 2.42 kB
text/typescript
import Joi from 'joi';
export interface ShippingOption {
Name: string;
Type: ShippingOptionEnum;
Description: string;
}
export type ShippingOptionDescription = { Name: string; Description: string };
export type ShippingOptionDictionary = {
[Key in ShippingOptionEnum]?: ShippingOptionDescription;
};
export const ShippingOptionDescriptionSchema = Joi.object({
Name: Joi.string().required().max(50),
Description: Joi.string().required().max(255),
}).optional();
export enum ShippingOptionEnum {
ContainsAlcohol = 'alcohol',
B13ACanada = 'b13a-canada',
BillToSender = 'bill-to-sender',
BillToThirdParty = 'bill-to-third-party',
CollectOnDelivery = 'collect-on-delivery',
ConsequentialLoss = 'consequential-loss',
DangerousGoods = 'dangerous-goods',
DeliveryMessage = 'delivery-message',
DontPrepayPostage = 'dont-prepay-postage',
DryIce = 'dry-ice',
EmailNotification = 'email-notification',
FreightClass = 'freight-class',
HoldForPickup = 'hold-for-pickup',
IncludeReturnLabel = 'include-return-label',
LocalCollect = 'local-collect',
NonMachinable = 'non-machinable',
NotificationType = 'notification-type',
ReleaseNoSignature = 'shipper-release',
RequiresAdditionalHandling = 'additional-handling',
Safeplace = 'safeplace',
SaturdayDelivery = 'saturday-delivery',
SaturdayGuarantee = 'saturday-guarantee',
SmsNotification = 'sms-notification',
SpecialHandling = 'special-handling',
ThirdPartyConsignee = 'third-party-consignee',
CarrierInsurance = 'carrier-insurance',
WindsorFrameworkMovementIndicator = 'windsor-framework-movement-indicator',
WindsorFrameworkNotAtRisk = 'windsor-framework-not-at-risk',
EnableDocumentUpload = 'enable-document-upload',
Unpack = 'unpack',
PackagingDisposal = 'packaging-disposal',
Assembly = 'assembly',
Disassembly = 'disassembly',
CustomerExpectedDeliveryFromDate = 'customer-expected-delivery-from-date',
CustomerExpectedDeliveryToDate = 'customer-expected-delivery-to-date',
Fragile = 'fragile',
ServiceConfigurationId = 'service-configuration-id',
DeliveryAsAddressed = 'delivery-as-addressed',
ReturnAfterFirstAttempt = 'return-after-first-attempt',
}
export const ShippingOptionDictionarySchema = Joi.object(
Object.values(ShippingOptionEnum).reduce((accumulator: any, option) => {
accumulator[option] = ShippingOptionDescriptionSchema;
return accumulator;
}, {}),
);