{
	"$schema":"http://json-schema.org/draft-04/schema#",
	"title":"Route",
	"type":"object",
	"additionalProperties":false,
	"description":"Analytics-v2 .. Route object",
	"properties":{
		"log_context":{
			"$ref":"/resources/schema/analytics/client/v2/LogContext.json",
			"description":"Required Log Context Reference"
		},
		"event_name":{
			"type": "string",
			"enum": ["ROUTE"]		
		},
		"schema_definition":{
			"type": "string",
			"enum": ["Route"]
		},
		"trigger":{
			"$ref":"/resources/schema/analytics/client/v2/RouteTriggerType.json",
			"description":"Required .. The purpose of the Route calculation depending on what action triggered it. If a drive was paused and resumed later by clicking on Resume Route, trigger would be ResumeRoute. Calculation of route to original destination from Waypoint-ResumeFromWP. If user manually alters a step in the Navigation direction Listing by adding a detour, log as Detour"
		},
		"type":{
			"$ref":"/resources/schema/analytics/client/v2/RouteRecommendationType.json",
			"description":"Applicable for auto.Whether route was personalized, fastest, etc."
		},
		"traffic_flow_vendor":{
			"type":"string",
			"description":"Traffic Flow Vendor Name."
		},
		"traffic_incident_vendor":{
			"type":"string",
			"description":"Traffic Incident Vendor Name."
		},
		"origin_lat":{
			"type":"number",
			"description":"Required .. Latitude of origin."
		},
		"origin_lon":{
			"type":"number",
			"description":"Required .. Longitude of origin."
		},
		"dest_lat":{
			"type":"number",
			"description":"Required .. Latitude of destination."
		},
		"dest_lon":{
			"type":"number",
			"description":"Required .. Longitude of destination."
		},
		"entity_id":{
			"type":"string",
			"description":"Required .. Entity ID of the destination that was chosen."
		},
		"entity_lat":{
			"type":"number",
			"description":"Required .. Latitude of destination."
		},
		"entity_lon":{
			"type":"number",
			"description":"Required .. Longitude of destination."
		},
		"iid":{
			"type":"string",
			"description":"Impression ID of the chosen destination POI from SRP or Coupon page."
		},
		"merchant_id":{
			"type":"string",
			"description":"Merchant ID of the coupon if route was calculated for a coupon selection."
		},
		"distance":{
			"type":"number",
			"description":"Required .. Calculated distance to destination for the specific route in miles."
		},
		"eta":{
			"type":"number",
			"description":"Required .. Estimated time of arrival to destination in minutes."
		},
		"eta_static":{
			"type":"number",
			"description":"Required .. Estimated time of arrival to destination in minutes."
		},
		"eta_dynamic":{
			"type":"number",
			"description":"Required .. Estimated time of arrival to destination in minutes."
		},
		"share_eta":{
			"$ref":"/resources/schema/analytics/client/v2/SettingType.json",
			"description":"Required .. Route setting for whether ETA is shared or not."
		},
		"number_of_incidents":{
			"type":"number",
			"description":"Required .. The number of traffic incidents displayed on the route."
		},
		"route_position":{
			"type":"number",
			"description":"Required .. When multiple routes are displayed for a destination, the position of the route displayed on the screen. 1 would be the leftmost route on the screen."
		},
		"dest_type":{
			"$ref":"/resources/schema/analytics/client/v2/RouteDestType.json",
			"description":"Required .. Type of destination on how the route calculation was initiated"
		},
		"search_id":{
			"type":"string",
			"description":"The LogID of the Search that resulted in the Route Calculation if the caused by a Search"
		},
		"coupon_detail_id":{
			"type":"string",
			"description":"The LogID of the CouponDetails selection that resulted in the Route Calculation if caused by Coupon select"
		},
		"parent_search_id":{
			"type":"string",
			"description":"LogID of the original Search for the trip. This would be different from SearchID when a Search is initiated with intent as Waypoint."
		},
		"route_id":{
			"type":"string",
			"description":"The RouteID of the immediate parent. For example, for a route with trigger=deviation, the route_id field should have the RouteID of the segment within which the deviation occurred."
		},
		"parent_route_id":{
			"type":"string",
			"description":"Required .. RouteID of the original trip.If the intent of the route was RouteRequest,the ParentRouteID would be same as RouteID. If trigger is any other, then RouteID of the first RouteCalculation in the trip."
		},
		"edge_id":{
			"type":"string",
			"description":"Edge id at the point deviation occurred when trigger is deviation."
		},
		"caused_by":{
			"$ref":"/resources/schema/analytics/client/v2/DeviationCauseType.json",
			"description":"If the trigger is deviation, then the reason for deviation."
		},
		"mode":{
			"$ref":"/resources/schema/analytics/client/v2/RouteModeType.json",
			"description":"Whether routing for automobile or pedestrian."
		},
		"source":{
			"$ref":"/resources/schema/analytics/client/v2/ConnectionType.json",
			"description":"States the connection type whether it is onboard or cloud connection."
		}, 
		"response_time":{
			"type":"number",
			"description":"Required .. Response time to each request in milliseconds."
		},
		"nav_id":{
			"type":"string",
			"description":"LogID of corresponding NavStart event, Required only when trigger is Deviation or Waypoint"
		},
		"interaction_method": {
			"$ref": "/resources/schema/analytics/client/v2/InteractionMethodValues.json",
			"description": "for each user interaction log the interation method"
		}
	},
	"required":[
		"log_context",
		"event_name",
		"schema_definition",
		"trigger",
		"origin_lat",
		"origin_lon",
		"dest_lat",
		"dest_lon",
		"distance",
		"eta",
		"share_eta",
		"number_of_incidents",
		"route_position",
		"dest_type",
		"parent_route_id"		
	]
}