/** * Shell EVLib * * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ). */ import { oneOf, Schema, validateAndMap } from '../../schema'; import { MultiLocationMarker, multiLocationMarkerSchema, } from '../multiLocationMarker'; import { SingleLocationMarker, singleLocationMarkerSchema, } from '../singleLocationMarker'; /** This is a container type for one-of types. */ export type LocationMarker = SingleLocationMarker | MultiLocationMarker; const discriminatorMap = { 'SingleLocation': singleLocationMarkerSchema, 'MultiLocation': multiLocationMarkerSchema, }; export const locationMarkerSchema: Schema = oneOf( [singleLocationMarkerSchema, multiLocationMarkerSchema], discriminatorMap, 'markerType' ); export namespace LocationMarker { /** * Validation method to narrow down union type to SingleLocationMarker type case. * * This is SingleLocationMarker case. */ export function isSingleLocationMarker( value: unknown ): value is SingleLocationMarker { const validationResult = validateAndMap(value, singleLocationMarkerSchema); return validationResult.errors === false; } /** * Validation method to narrow down union type to MultiLocationMarker type case. * * This is MultiLocationMarker case. */ export function isMultiLocationMarker( value: unknown ): value is MultiLocationMarker { const validationResult = validateAndMap(value, multiLocationMarkerSchema); return validationResult.errors === false; } }