UNPKG

@dgac/nmb2b-client

Version:

EUROCONTROL Network Manager B2B SOAP client

1 lines 23.3 kB
{"version":3,"sources":["../../src/Flow/types.ts"],"sourcesContent":["export type ReroutingId = string; // (UALPHA|DIGIT|SPECIAL_CHARACTER){1,8}\nexport type RegulationId = string; // UALPHA(UALPHA|DIGIT){0,5}DIGIT{2}UALPHA{0,1}\nexport type MeasureId =\n | { REGULATION: RegulationId }\n | { REROUTING: ReroutingId };\nexport type FlowId = string; // (UALPHA|DIGIT|SPECIAL_CHARACTER){1,8}\nexport type ScenarioId = string;\nexport type SectorConfigurationId = string; // (UALPHA|DIGIT|.){1,6}\nexport type PlanDataSource = 'AIRSPACE' | 'MEASURE' | 'NO_DATA' | 'TACTICAL';\nexport type RegulationIdWildcard = string; // (UALPHA|DIGIT){1,8}|(UALPHA|DIGIT){0,7}*\n\nimport type {\n ReferenceLocation,\n TrafficVolumeId,\n AirspaceId,\n TrafficVolumeIdWildcard,\n TrafficVolumeSetIdWildcard,\n FlightLevelRange,\n TrafficVolumeSetId,\n AerodromeICAOId,\n WithReferenceLocationOnPrefix,\n WithReferenceLocationOnPrefixOptional,\n} from '../Airspace/types';\n\nimport type {\n DateTimeMinutePeriod,\n DurationHourMinute,\n Dataset,\n DateYearMonthDay,\n PlanDataId,\n NMSet,\n NMMap,\n DistanceM,\n DateTimeSecond,\n UserId,\n AirNavigationUnitId,\n DateTimeMinute,\n ReplyWithData,\n} from '../Common/types';\n\nimport type {\n TrafficType,\n FlightKeys,\n IFPLId,\n GroupReroutingIndicator,\n} from '../Flight/types';\n\nexport type FlightRegulationLocation =\n WithReferenceLocationOnPrefix<'referenceLocation'> & {\n regulationId: RegulationId;\n toConfirm: boolean;\n };\n\nexport type FlightAtfcmMeasureLocationCommon =\n WithReferenceLocationOnPrefixOptional<'referenceLocation'> & {\n measureSubType: MeasureSubType;\n hotspotId?: HotspotId;\n mcdmState?: MCDMState;\n };\n\nexport type FlightAtfcmRegulationLocation = {\n FlightAtfcmRegulationLocation: FlightAtfcmMeasureLocationCommon & {\n regulationId: RegulationId;\n toConfirm: boolean;\n };\n};\n\nexport type FlightAtfcmReroutingLocation = {\n FlightAtfcmReroutingLocation: FlightAtfcmMeasureLocationCommon & {\n reroutingId: ReroutingId;\n reroutingApplyKind: ReroutingApplyKind;\n groupReroutingIndicator: GroupReroutingIndicator;\n reroutingPurpose: ReroutingPurpose;\n requestText?: null | string;\n originatorLatestReroutingProposalFlight: boolean;\n };\n};\n\nexport type ReroutingApplyKind =\n | 'EXECUTE'\n | 'FOR_INDICATION_WITHOUT_AUTOMATIC_PROPOSAL_FLIGHT'\n | 'FOR_INDICATION_WITH_AUTOMATIC_RRP'\n | 'FOR_INDICATION_WITH_AUTOMATIC_RRN';\n\nexport type ReroutingPurpose =\n | 'ATFCM'\n | 'FLIGHT_EFFICIENCY'\n | 'STAM'\n | 'AOLO_REROUTING'\n | 'ATC_ROUTING'\n | 'CDR_OPPORTUNITY';\n\nexport type FlightAtfcmMeasureLocation =\n | FlightAtfcmRegulationLocation\n | FlightAtfcmReroutingLocation;\n\nexport interface RegulationCause {\n reason: RegulationReason;\n locationCategory: RegulationLocationCategory;\n iataDelayCode: number;\n}\n\nexport type RegulationLocationCategory = 'ARRIVAL' | 'DEPARTURE' | 'ENROUTE';\n\nexport type RegulationReason =\n | 'ACCIDENT_INCIDENT'\n | 'AERODROME_CAPACITY'\n | 'AERODROME_SERVICES'\n | 'AIRSPACE_MANAGEMENT'\n | 'ATC_CAPACITY'\n | 'ATC_EQUIPMENT'\n | 'ATC_INDUSTRIAL_ACTION'\n | 'ATC_ROUTINGS'\n | 'ATC_STAFFING'\n | 'ENVIRONMENTAL_ISSUES'\n | 'NON_ATC_INDUSTRIAL_ACTION'\n | 'OTHERS'\n | 'SPECIAL_EVENT'\n | 'WEATHER';\n\nexport interface FlightHotspotLocation {\n hotspot: Hotspot;\n referenceLocation: ReferenceLocation;\n}\n\nexport interface Hotspot {\n hotspotId: HotspotId;\n severity: HotspotSeverity;\n status: HotspotStatus;\n remark?: string;\n trafficVolumeDescription?: string;\n}\n\nexport type HotspotSeverity = 'HIGH' | 'LOW' | 'MEDIUM';\nexport type HotspotStatus = 'ACCEPTABLE' | 'ACTIVE' | 'DRAFT' | 'SOLVED';\nexport interface HotspotId {\n applicabilityPeriod: DateTimeMinutePeriod;\n trafficVolume: TrafficVolumeId;\n duration: DurationHourMinute;\n}\n\nexport interface FlightMCDMInfo {\n leastAdvancedMCDMMeasure: MeasureId;\n nrAssociatedMCDMRegulations: number;\n nrAssociatedMCDMReroutings: number;\n nrAssociatedMCDMOnlyMeasures: number;\n leastAdvancedMCDMState: MCDMState;\n}\n\nexport type MCDMState =\n | 'ABANDONED'\n | 'COORDINATED'\n | 'DRAFT'\n | 'FINISHED'\n | 'IMPLEMENTED'\n | 'IMPLEMENTING'\n | 'INTERRUPTED'\n | 'PROPOSED';\n\nexport type OtmvStatus = 'PEAK' | 'SUSTAINED';\n\nexport type CountsCalculationType = 'ENTRY' | 'OCCUPANCY';\nexport interface CountsInterval {\n duration: DurationHourMinute;\n step: DurationHourMinute;\n}\n\nexport type RegulationField =\n | 'applicability'\n | 'autolink'\n | 'measureCherryPicked'\n | 'calculationType'\n | 'initialConstraints'\n | 'occupancyConstraints'\n | 'linkedRegulations'\n | 'location'\n | 'protectedLocation'\n | 'reason'\n | 'remark'\n | 'regulationState'\n | 'supplementaryConstraints'\n | 'lastUpdate'\n | 'noDelayWindow'\n | 'occupancyDuration'\n | 'updateCapacityRequired'\n | 'updateTVActivationRequired'\n | 'externallyEditable'\n | 'subType'\n | 'delayTVSet'\n | 'createdByFMP'\n | 'sourceHotspot'\n | 'mcdmRequired'\n | 'dataId'\n | 'scenarioReference'\n | 'delayConfirmationThreshold';\n\nexport interface SectorConfigurationPlanRetrievalRequest\n extends TacticalConfigurationRetrievalRequest {\n airspace: AirspaceId;\n}\n\nexport interface TacticalConfigurationRetrievalRequest {\n dataset: Dataset;\n day: DateYearMonthDay;\n}\n\nexport type SectorConfigurationPlanRetrievalReply =\n ReplyWithData<SectorConfigurationPlanRetrievalReplyData>;\n\nexport interface SectorConfigurationPlanRetrievalReplyData {\n plan: SectorConfigurationPlan;\n}\n\nexport type KnownConfigurations = NMMap<\n SectorConfigurationId,\n NMSet<AirspaceId>\n>;\n\nexport interface SectorConfigurationPlan extends TacticalConfigurationPlan {\n airspace: AirspaceId;\n knownConfigurations?: NMMap<SectorConfigurationId, NMSet<AirspaceId>>;\n nmSchedule?: NMSet<PlannedSectorConfigurationActivation>; // Set<PlannedSectorConfigurationActivation>\n clientSchedule?: NMSet<PlannedSectorConfigurationActivation>; // Set<PlannedSectorConfigurationActivation>\n}\n\nexport interface CapacityPlans extends TacticalConfigurationPlan {\n tvCapacities: NMMap<TrafficVolumeId, PlannedCapacities>;\n}\n\nexport interface PlannedSectorConfigurationActivation {\n applicabilityPeriod: DateTimeMinutePeriod;\n dataSource: PlanDataSource;\n sectorConfigurationId?: SectorConfigurationId;\n}\n\nexport interface TacticalConfigurationPlan {\n dataId: PlanDataId;\n dataset: Dataset;\n day: DateYearMonthDay;\n planTransferred?: boolean;\n planCutOffReached?: boolean;\n}\n\nexport interface TrafficCountsByAirspaceRequest extends TrafficCountsRequest {\n airspace: AirspaceId;\n calculationType: CountsCalculationType;\n}\n\nexport interface TrafficCountsByTrafficVolumeRequest\n extends TrafficCountsRequest {\n trafficVolume: TrafficVolumeId;\n calculationType: CountsCalculationType;\n computeOtmvAlerts?: boolean;\n computeFlowCounts?: FlowType;\n includeInvisibleFlights?: boolean;\n}\n\nexport interface TrafficCountsRequest {\n dataset: Dataset;\n trafficWindow: DateTimeMinutePeriod;\n includeProposalFlights: boolean;\n includeForecastFlights: boolean;\n trafficTypes: NMSet<TrafficType>;\n // computeSubTotals: boolean;\n subTotalComputeMode: CountSubTotalComputeMode;\n countsInterval: CountsInterval;\n}\n\nexport type CountSubTotalComputeMode =\n /**\n * Do not compute flight count sub-totals.\n */\n | 'NO_SUB_TOTALS'\n /**\n * Compute flight count sub-totals by traffic type (see Counts.subTotalsCountsByTrafficType).\n */\n | 'SUB_TOTALS_BY_TRAFFIC_TYPE'\n /**\n * Compute flight count sub-totals by regulation details (see Counts.subTotalsCountsByRegulationDetails).\n */\n | 'SUB_TOTALS_BY_REGULATION_DETAILS';\n\nexport type TrafficCountsByAirspaceReply =\n ReplyWithData<TrafficCountsReplyData>;\n\nexport type TrafficCountsByTrafficVolumeReply =\n ReplyWithData<TrafficCountsReplyData>;\n\nexport interface TrafficCountsReplyData {\n effectiveTrafficWindow: DateTimeMinutePeriod;\n flows?: NMSet<Flow>;\n counts?: NMMap<DateTimeMinutePeriod, NMMap<TrafficType, Counts>>;\n otmvAlerts?: NMMap<TrafficType, NMSet<OtmvAlert>>;\n effectiveCapacities?: NMMap<DateTimeMinutePeriod, CountsValue>;\n effectiveOTMVs?: NMMap<DateTimeMinutePeriod, OTMVThresholds>;\n}\n\nexport interface Flow {\n id: FlowId;\n type: FlowType;\n role?: FlowRoleSelection;\n applicableScenarios?: TrafficVolumeScenarios;\n scenarioImpact?: ScenarioImpact;\n}\n\nexport type ScenarioImpact = {\n totalCommonFlightCount: CountsValue;\n totalOtherFlightCount: CountsValue;\n scenarioTrafficVolumeEntryPeriod?: DateTimeMinutePeriod;\n};\n\nexport type FlowType = 'ASSOCIATED' | 'LINKED' | 'SCENARIO';\nexport type FlowRoleSelection =\n | 'EXCLUDED'\n | 'EXEMPTED'\n | 'INCLUDED'\n | 'INCLUDED_AND_EXEMPTED';\n\nexport interface Counts {\n totalCounts: CountsValue;\n flowCounts?: NMMap<FlowId, CountsValue>;\n subTotalsCountsByTrafficType?: NMMap<SubTotalsTrafficCountsType, CountsValue>;\n subTotalsCountsByRegulationDetails?: NMMap<\n SubTotalsRegulationDetailedType,\n CountsValue\n >;\n}\n\nexport type CountsValue = number;\n\nexport type OTMVThresholds = {\n peakThreshold?: OTMVThreshold;\n sustainedThreshold?: OTMVThreshold;\n sustainedElapsedDuration?: DurationHourMinute;\n sustainedCrossingOccurences?: number;\n};\n\nexport type SubTotalsTrafficCountsType =\n /**\n * Predicted flights that are not suspended\n */\n | 'PFD'\n /**\n * Flights created from a flight plan filed to IFPS that are not suspended, nor ATC_ACTIVATED, nor TACT_ACTIVATED_WITH_FSA, nor TACT_ACTIVATED_WITHOUT_FSA.\n */\n | 'IFPL'\n /**\n * Suspended Flights. Note that suspended flights are not considered part of the TrafficType.LOAD.\n */\n | 'SUSPENDED'\n /**\n * ATC activated flights. Note that this also includes terminated flights that were ATC activated.\n */\n | 'ATC_ACTIVATED'\n /**\n * TACT activated with FSA message expected (but not yet received). Note that this also includes terminated flights that were TACT_ACTIVATED_WITH_FSA.\n */\n | 'TACT_ACTIVATED_WITH_FSA'\n /**\n * TACT activated with no FSA message expected. Note that this also includes terminated flights that were TACT_ACTIVATED_WITHOUT_FSA.\n */\n | 'TACT_ACTIVATED_WITHOUT_FSA';\n\nexport type SubTotalsRegulationDetailedType =\n /**\n * The count of not yet airborne delayed (delay > 0) flights of which most penalising regulation is the target regulation.\n */\n | 'DELAYED_FLIGHTS_NOT_YET_AIRBORNE'\n /**\n * The count of airborne delayed (delay > 0) flights of which most penalising regulation is the target regulation.\n */\n | 'DELAYED_FLIGHTS_ALREADY_AIRBORNE'\n /**\n * The count of not yet airborne zero (0) delay flights of which most penalising regulation is the target regulation or any other regulation.\n */\n | 'ZERO_DELAY_FLIGHTS_NOT_YET_AIRBORNE'\n /**\n * The count of airborne zero (0) delay flights of which most penalising regulation is the target regulation or any other regulation.\n */\n | 'ZERO_DELAY_FLIGHTS_ALREADY_AIRBORNE'\n /**\n * The count of not yet airborne flights with no most penalising regulation that are regulatable. These flights are typically in the extended periods around the regulation (or when showing the display when newly creating regulations).\n */\n | 'NOT_REGULATED_BUT_REGULATABLE_FLIGHTS'\n /**\n * The count of airborne flights with no most penalising regulation or, any exempted/excluded (airborne or not) flights with no most penalising regulation or of which most penalising regulation is the target regulation or any other regulation.\n */\n | 'NOT_REGULATED_AIRBORNE_OR_EXEMPTED_FLIGHTS'\n /**\n * The count of not yet airborne delayed (delay > 0) flights of which most penalising regulation is not the target regulation, excluding target regulation exempted flights.\n */\n | 'OTHER_MPR_DELAYED_FLIGHTS_NOT_YET_AIRBORNE'\n /**\n * The count of airborne delayed (delay > 0) flights of which most penalising regulation is not the target regulation, excluding target regulation exempted flights.\n */\n | 'OTHER_MPR_DELAYED_FLIGHTS_ALREADY_AIRBORNE';\n\nexport interface OtmvAlert {\n period: DateTimeMinutePeriod;\n status: OtmvStatus;\n}\n\nexport type RegulationState =\n | 'APPLIED'\n | 'APPLYING'\n | 'CANCELLED'\n | 'CANCELLING'\n | 'TERMINATED';\n\nexport type RegulationListRequest = RegulationOrMCDMOnlyListRequest & {\n requestedRegulationFields: NMSet<RegulationField>;\n regulationStates?: NMSet<RegulationState>;\n};\n\nexport type RegulationListReply = ReplyWithData<RegulationListReplyData>;\n\nexport interface RegulationListReplyData\n extends RegulationOrMCDMOnlyListReplyData {\n regulations: NMSet<Regulation>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface RegulationOrMCDMOnlyListReplyData\n extends MeasureListReplyData {}\n\nexport interface MeasureListReplyData {\n planTransferred?: boolean;\n planCutOffReached?: boolean;\n dataset: Dataset;\n}\n\nexport type RegulationOrMCDMOnlyListRequest = MeasureListRequest & {\n regulations?: NMSet<RegulationIdWildcard>;\n reasons?: NMSet<RegulationReason>;\n};\n\nexport interface MeasureListRequest {\n dataset: Dataset;\n queryPeriod: DateTimeMinutePeriod;\n tvs?: NMSet<TrafficVolumeIdWildcard>;\n tvSets?: NMSet<TrafficVolumeSetIdWildcard>;\n}\n\nexport type Regulation = RegulationOrMCDMOnly & {\n regulationState: RegulationState;\n};\n\nexport type TrafficVolumeScenarios = {\n solutionTrafficVolumeId: TrafficVolumeId;\n trafficVolumeMatchingKind: ScenarioTrafficVolumeMatchingKind;\n scenarios: NMSet<ScenarioId>;\n};\n\nexport type ScenarioTrafficVolumeMatchingKind =\n | 'INDIRECT_OFFLOAD'\n | 'OVERLAPPING_REFERENCE_LOCATION'\n | 'SAME_REFERENCE_LOCATION'\n | 'SAME_TRAFFIC_VOLUME';\nexport interface IRegulationOrMCDMOnly extends Measure {\n regulationId: RegulationId;\n reason?: RegulationReason;\n location?: TrafficVolumeLocation;\n calculationType?: null | CountsCalculationType;\n initialConstraints?: RegulationInitialConstraint[];\n supplementaryConstraints?: RegulationSupplementaryConstraint[];\n occupancyConstraints?: RegulationOccupancyConstraint[];\n remark?: string;\n autolink?: boolean;\n linkedRegulations?: NMSet<RegulationId>;\n noDelayWindow?: DurationHourMinute;\n updateCapacityRequired?: boolean;\n updateTCActivationRequired?: boolean;\n delayTVSet?: TrafficVolumeSetId;\n delayConfirmationThreshold?: DurationHourMinute;\n}\n\nexport type RegulationOrMCDMOnly =\n WithReferenceLocationOnPrefixOptional<'protectedLocation'> &\n IRegulationOrMCDMOnly;\n\nexport interface Measure {\n dataId?: PlanDataId;\n applicability?: DateTimeMinutePeriod;\n measureCherryPicked?: boolean;\n lastUpdate?: LifeCycleEvent;\n externallyEditable?: boolean;\n subType?: MeasureSubType;\n createdByFMP?: boolean;\n mcdmRequired?: boolean;\n sourceHotspot?: HotspotId;\n scenarioReference?: MeasureFromScenarioRepository;\n mcdmInfo?: MCDMMeasureTopic;\n}\n\nexport type MeasureSubType =\n | 'AIRBORNE_HORIZONTAL_REROUTING'\n | 'AIRBORNE_LEVEL_CAP'\n | 'GROUND_DELAY'\n | 'GROUND_HORIZONTAL_REROUTING'\n | 'GROUND_LEVEL_CAP'\n | 'MILES_MINUTES_IN_TRAIL'\n | 'MINIMUM_DEPARTURE_INTERVAL'\n | 'OTHER_KIND_OF_STAM_MEASURE'\n | 'TAKE_OFF_NOT_AFTER'\n | 'TAKE_OFF_NOT_BEFORE'\n | 'TERMINAL_PROCEDURE_CHANGE';\n\nexport interface MeasureFromScenarioRepository {\n scenarioId: ScenarioId;\n measureId: MeasureId;\n}\n\nexport interface LifeCycleEvent {\n eventTime: DateTimeSecond;\n userUpdateEventTime?: DateTimeSecond;\n userUpdateType: LifeCycleEventType;\n userId: UserId;\n}\n\nexport interface MCDMMeasureTopic extends MCDMStatefulTopic {\n userCategories?: NMSet<MCDMRoleUserCategory>;\n deadlines?: MCDMDeadlines;\n flightTopics?: NMSet<MCDMFlightTopic>;\n predefinedUsersForFlightCoordinationLevel?: NMSet<MCDMUserAndRole>;\n remark?: string;\n proposalNote?: string;\n proposalFeedback?: string;\n}\n\nexport interface MCDMStatefulTopic extends MCDMTopic {\n measureId?: MeasureId;\n state?: MCDMState;\n hotspotId?: HotspotId;\n initiator?: AirNavigationUnitId;\n initiatorIsImplementer?: boolean;\n userRolesAndApprovalStates?: NMSet<MCDMUserRoleAndApprovalState>;\n}\n\nexport interface MCDMTopic {\n topicId: MCDMTopicId;\n dataId?: PlanDataId;\n}\n\nexport type MCDMTopicId = string;\n\nexport interface MCDMRoleUserCategory {\n category: MCDMUserCategory;\n coordinationLevel: MCDMCoordinationLevel;\n role: MCDMRole;\n}\n\nexport interface MCDMDeadlines {\n timeToCoordinate?: DateTimeMinute;\n timeToStartImplement?: DateTimeMinute;\n timeToImplement?: DateTimeMinute;\n}\n\nexport interface MCDMFlightTopic extends MCDMStatefulTopic {\n flightKeys: FlightKeys;\n ifplId?: IFPLId;\n ticket?: EhelpDeskTicketChoice;\n}\n\nexport type EhelpDeskTicketChoice = unknown; // TODO: Implement this stuff\n\nexport interface MCDMUserAndRole {\n user: AirNavigationUnitId;\n role?: MCDMRole;\n}\n\nexport type MCDMCoordinationLevel = 'FLIGHT' | 'MEASURE';\n\nexport type MCDMUserCategory =\n | 'IMPACTED_FMP'\n | 'ALL_FMP'\n | 'TOWER'\n | 'AIRCRAFT_OPERATOR'\n | 'NMOC';\n\nexport interface MCDMUserRoleAndApprovalState {\n user: AirNavigationUnitId;\n role?: MCDMRole;\n approvalState?: MCDMApprovalState;\n}\n\nexport type MCDMRole =\n | 'APPROVAL'\n | 'IMPLEMENTER'\n | 'INFO'\n | 'INITIATOR'\n | 'NOT_INVOLVED'\n | 'ROLE_INFO';\n\nexport type MCDMApprovalState =\n | 'ACKNOWLEDGED'\n | 'APPROVED'\n | 'REJECTED'\n | 'UNKNOWN';\n\nexport type LifeCycleEventType = 'CREATION' | 'DELETION' | 'UPDATE';\n\nexport type TrafficVolumeLocation =\n WithReferenceLocationOnPrefix<'referenceLocation'> & {\n id: TrafficVolumeId;\n flightLevels?: FlightLevelRange;\n description?: string;\n setIds?: NMSet<TrafficVolumeSetId>;\n };\n\nexport interface RegulationInitialConstraint {\n constraintPeriod: DateTimeMinutePeriod;\n normalRate: number;\n pendingRate: number;\n equipmentRate: number;\n exceptionalConstraint?: RegulationExceptionalConstraint;\n}\n\nexport interface RegulationExceptionalConstraint {\n runwayVisualRange?: DistanceM;\n fcmMandatory: boolean;\n shift: boolean;\n}\n\nexport interface RegulationSupplementaryConstraint {\n constraintPeriod: DateTimeMinutePeriod;\n supplementaryRate: number;\n}\n\nexport interface RegulationOccupancyConstraint {\n constraintPeriod: DateTimeMinutePeriod;\n occupancyRate: number;\n peakCapacity: number;\n pendingCapacityPercentage: number;\n}\n\nexport interface HotspotListRequest {\n dataset: Dataset;\n day: DateYearMonthDay;\n trafficVolume?: TrafficVolumeId;\n duration?: DurationHourMinute;\n hotspotKind: HotspotKind;\n}\n\nexport type HotspotKind = 'LOCATION_OF_INTEREST' | 'PROBLEM';\n\nexport type HotspotListReply = ReplyWithData<HotspotListReplyData>;\n\nexport type HotspotListReplyData = { plans: HotspotPlans };\nexport interface HotspotPlans {\n dataId: PlanDataId;\n dataset: Dataset;\n day: DateYearMonthDay;\n planTransferred?: boolean;\n planCutOffreached?: boolean;\n hotspotKind: HotspotKind;\n schedules: NMMap<TrafficVolumeId, NMMap<DurationHourMinute, NMSet<Hotspot>>>;\n}\n\nexport interface OTMVWithDuration {\n trafficVolume: TrafficVolumeId;\n otmvDuration?: DurationHourMinute;\n}\n\nexport interface OTMVPlanRetrievalRequest\n extends TacticalConfigurationRetrievalRequest {\n otmvsWithDuration: NMSet<OTMVWithDuration>;\n}\n\nexport interface OTMVPlans extends TacticalConfigurationPlan {\n tvsOTMVs: NMMap<\n TrafficVolumeId,\n NMMap<DurationHourMinute, OTMVPlanForDuration>\n >;\n}\n\nexport interface OTMVPlanForDuration {\n nmSchedule?: NMSet<PlannedOTMV>;\n clientSchedule: NMSet<PlannedOTMV>;\n}\n\nexport interface PlannedOTMV {\n applicabilityPeriod: DateTimeMinutePeriod;\n dataSource: PlanDataSource;\n otmv?: OTMV;\n}\n\nexport interface OTMV {\n trafficVolume: TrafficVolumeId;\n otmvDuration: DurationHourMinute;\n peak?: OTMVPeak;\n sustained?: OTMVSustained;\n remark?: string;\n}\n\nexport interface OTMVPeak {\n threshold: OTMVThreshold;\n}\n\nexport interface OTMVSustained {\n threshold: OTMVThreshold;\n crossingOccurrences: number;\n elapsed: DurationHourMinute;\n}\n\nexport type OTMVThreshold = number;\n\nexport type OTMVPlanRetrievalReply = ReplyWithData<OTMVPlanRetrievalReplyData>;\n\nexport interface OTMVPlanRetrievalReplyData {\n plans: OTMVPlans;\n}\n\nexport interface OTMVPlanUpdateRequest {\n plans: OTMVPlans;\n}\n\nexport type OTMVPlanUpdateReply = ReplyWithData<OTMVPlanUpdateReplyData>;\n\nexport interface OTMVPlanUpdateReplyData {\n plans: OTMVPlans;\n}\n\nexport interface CapacityPlanRetrievalRequest\n extends TacticalConfigurationRetrievalRequest {\n trafficVolumes: NMSet<TrafficVolumeId>;\n}\n\nexport type CapacityPlanRetrievalReply =\n ReplyWithData<CapacityPlanRetrievalReplyData>;\n\nexport interface CapacityPlanRetrievalReplyData {\n plans: CapacityPlans;\n}\n\nexport interface CapacityPlans extends TacticalConfigurationPlan {\n tvCapacities: NMMap<TrafficVolumeId, PlannedCapacities>;\n}\n\nexport interface PlannedCapacities {\n nmSchedule?: NMSet<PlannedCapacity>;\n clientSchedule: NMSet<PlannedCapacity>;\n}\n\nexport interface PlannedCapacity {\n applicabilityPeriod: DateTimeMinutePeriod;\n dataSource: PlanDataSource;\n capacity?: Capacity;\n}\n\nexport type Capacity = number;\n\nexport interface CapacityPlanUpdateRequest {\n plans: CapacityPlans;\n}\n\nexport type CapacityPlanUpdateReply =\n ReplyWithData<CapacityPlanUpdateReplyData>;\n\nexport interface CapacityPlanUpdateReplyData {\n plans: CapacityPlans;\n}\n\nexport type RunwayConfigurationPlanRetrievalReply =\n ReplyWithData<RunwayConfigurationPlanRetrievalData>;\n\nexport interface RunwayConfigurationPlanRetrievalData {\n plan: RunwayConfigurationPlan;\n}\n\nexport interface RunwayConfigurationPlan extends TacticalConfigurationPlan {\n knownRunwayIds?: NMSet<RunwayId>;\n nmSchedule?: NMSet<RunwayConfigurationPlanSchedule>;\n clientSchedule?: NMSet<RunwayConfigurationPlanSchedule>;\n}\n\nexport type RunwayId = string; // ([0-9]{2}([A-Z]|( )){0,1})\n\nexport interface RunwayConfigurationPlanSchedule {\n applicabilityPeriod: DateTimeMinutePeriod;\n dataSource: PlanDataSource;\n runwayConfigurations?: NMSet<RunwayConfiguration>;\n}\n\nexport interface RunwayConfiguration {\n runway: RunwayId;\n usage?: RunwayUsage;\n runwayUsageDataSource: PlanDataSource;\n departureTaxiTime?: DurationHourMinute;\n departureTaxiTimeDataSource: PlanDataSource;\n timeToInsertInSequence?: DurationHourMinute;\n timeToInsertInSequenceDataSource: PlanDataSource;\n timeToRemoveFromSequence?: DurationHourMinute;\n timeToRemoveFromSequenceDataSource: PlanDataSource;\n arrivalTaxiTime?: DurationHourMinute;\n arrivalTaxiTimeDataSource: PlanDataSource;\n}\nexport interface RunwayConfigurationPlanRetrievalRequest\n extends TacticalConfigurationRetrievalRequest {\n aerodrome: AerodromeICAOId;\n}\nexport type RunwayUsage =\n | 'DEPARTURE'\n | 'ARRIVAL'\n | 'DEPARTURE_ARRIVAL'\n | 'INACTIVE';\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}