UNPKG

qe-fe-automation

Version:
225 lines (194 loc) 5.67 kB
export interface TravelEventInvitationRequest { summary: TravelEventSummary; settings: TravelEventSettings; participants: TravelEventParticipant[]; contactId: string; shouldSendEmail?: boolean; } interface TravelEventSummary { name: string; description?: string; pictureUrl?: string; startDateTime: string; endDateTime: string; location: TravelEventLocation; note: string[]; cancellationNote: string[]; } interface TravelEventLocation { placeId: string; displayName: string; type: TravelEventLocationType; companyOfficeId?: string; companyOfficeName?: string; coordinates?: { latitude: number; longitude: number; }; } export enum TravelEventLocationType { OFFICE = 'OFFICE', PLACE = 'PLACE' } interface TravelEventSettings { travelConditions: TravelEventConditions; reportingSettings: TravelEventReportingSettings; notificationSettings: TravelEventNotificationSettings; } interface TravelEventConditions { accommodation: TravelEventAccommodation; transportation: TravelEventTransportation; commute: TravelEventCommute; travelWindows: TravelEventTravelWindows[]; payment: TravelEventPayment; numberOfExtraGuestsAllowed: number; companyPolicyLevelId: string; } interface TravelEventTravelConditions { numberOfBookingsAllowed: number; note?: string[]; maxPrice?: TravelEventMonetaryValue; } interface TravelEventMonetaryValue { amount: number; currency: string; } interface TravelEventAccommodation { hotelConditions: TravelEventHotelConditions; } interface TravelEventHotelConditions extends TravelEventTravelConditions { allowedHotels?: string[]; suggestedHotels?: TravelEventSuggestedHotel[]; allowedHotelRates?: string[]; } interface TravelEventSuggestedHotel { searchId: string; hotelId: string; name: string; googlePlaceId: string; } interface TravelEventTransportation { carConditions: TravelEventCarConditions; flightConditions: TravelEventFlightConditions; trainConditions: TravelEventTrainConditions; } interface TravelEventCarConditions extends TravelEventTravelConditions { suggestedCarRentalCompanies?: string[]; } interface TravelEventFlightConditions extends TravelEventTravelConditions { allowedItineraryTypes?: TravelEventFlightItineraryType[]; allowedDepartureAirportCodes?: string[]; allowedArrivalAirportCodes?: string[]; suggestedDepartureAirportCodes?: string[]; suggestedArrivalAirportCodes?: string[]; } enum TravelEventFlightItineraryType { ONE_WAY = 'ONE_WAY', ROUND_TRIP = 'ROUND_TRIP', BUNDLE = 'BUNDLE', FLEXIBLE_BUNDLE = 'FLEXIBLE_BUNDLE', UNKNOWN = 'UNKNOWN' } interface TravelEventTrainConditions extends TravelEventTravelConditions { allowedItineraryTypes?: TravelEventTrainItineraryType[]; allowedDepartureStationIds?: string[]; allowedArrivalStationIds?: string[]; suggestedDepartureStationIds?: string[]; suggestedArrivalStationIds?: string[]; } export enum TravelEventTrainItineraryType { ONE_WAY = 'ONE_WAY', RETURN = 'RETURN', OPEN_RETURN = 'OPEN_RETURN' } interface TravelEventReportingSettings { billTo?: string; department?: string; region?: string; subsidiary?: string; customFieldValues: TravelEventCustomFieldValue[]; } interface TravelEventCustomFieldValue { name: string; label: string; value: any; sabreName: string; approver: string; optionLabel: string; } interface TravelEventCommute { blackCars: string[]; cars: string[]; trains: string[]; } interface TravelEventTravelWindows { verticals: TravelEventVertical[]; earliestDepartureDateTime: TravelEventTravelWindowsDateTime; latestArrivalDateTime: TravelEventTravelWindowsDateTime; earliestLeaveDateTime: TravelEventTravelWindowsDateTime; latestReturnDateTime: TravelEventTravelWindowsDateTime; } export enum TravelEventVertical { FLIGHT = 'FLIGHT', HOTEL = 'HOTEL', CAR = 'CAR', BLACK_CAR = 'BLACK_CAR', RAIL = 'RAIL' } interface TravelEventTravelWindowsDateTime { value: string; type: TravelEventTravelWindowsDateTimeType; } export enum TravelEventTravelWindowsDateTimeType { MANDATORY = 'MANDATORY', SUGGESTED = 'SUGGESTED' } interface TravelEventPayment { allowedPaymentMethodIds: string[]; allowedCarDirectBillPaymentMethodIds: string[]; addingNewPaymentMethodAllowed: boolean; } interface TravelEventNotificationSettings { enabledOrganizerNotifications: OrganizerNotification[]; enabledParticipantNotifications: ParticipantNotification[]; enabledParticipantReminders: ParticipantReminder[]; } enum OrganizerNotification { BOOKING_CREATED = 'BOOKING_CREATED', BOOKING_CANCELED = 'BOOKING_CANCELED', BOOKING_CHANGED = 'BOOKING_CHANGED', EVENT_CREATED = 'EVENT_CREATED', EVENT_CHANGED = 'EVENT_CHANGED', EVENT_CANCELED = 'EVENT_CANCELED', INVITE_ACCEPTED = 'INVITE_ACCEPTED', INVITE_DECLINED = 'INVITE_DECLINED', INVITE_FINALIZED = 'INVITE_FINALIZED' } enum ParticipantNotification { BOOKING_CREATED = 'BOOKING_CREATED', BOOKING_CANCELED = 'BOOKING_CANCELED', BOOKING_CHANGED = 'BOOKING_CHANGED', EVENT_CREATED = 'EVENT_CREATED', EVENT_CHANGED = 'EVENT_CHANGED', EVENT_CANCELED = 'EVENT_CANCELED', INVITE_ACCEPTED = 'INVITE_ACCEPTED', INVITE_DECLINED = 'INVITE_DECLINED', INVITE_FINALIZED = 'INVITE_FINALIZED' } interface ParticipantReminder { type: ParticipantReminderType; start: string; end: string; repeatInterval: string; } enum ParticipantReminderType { INVITATION_RESPONSE = 'INVITATION_RESPONSE', DRAFT_COMPLETION = 'DRAFT_COMPLETION' } interface TravelEventParticipant { email: string; givenName: string; familyName: string; billTo?: string; department?: string; }