/**
 * <p class=proto-main>This API is to assist the User in case of Vehicle is Stolen, and User  alerts the SDP (by means the call center)  then the SDP sends info to the client.
 * When the vehicle is stolen, the SDP side can send out request to the User, asking the TBM to enter into the SVA mode.The SDP shall also send a cancel request asking the TBM to exit the SVA mode.
 * The TBM shall respond with a message with related vehicle information required by the SVA service.
 * </p>
 *
 * <div class=proto-hier>
 * 	 UconnectAny
 * 	   |
 * 	   |---- <a href="#com.fca.uconnect.global.StolenModeChangeRequest">StolenModeChangeRequest stolenModeChangeRequest (220)</a>
 * 	   |
 *	   |---- <a href="#com.fca.uconnect.global.StolenModeChangeResponse">StolenModeChangeResponse stolenModeChangeResponse (221)</a>
 * 	   |
 * 	   |---- <a href="#com.fca.uconnect.global.StolenVehicleInfoNotification">StolenVehicleInfoNotification stolenVehicleInfoNotification (222)</a>
 *
 *
 * </div>
 *
 *  <h3 class=change-log-hdr> Change Log</h3>
 *  <table id="change-log" class="change-log"><thead><tr>
 *	<td>Version</td><td>Date</td><td>Notes</td></tr></thead>
 *   <tbody>
 *    <tr><td>1.3</td><td>2018-06-20</td><td>Added InitiateStolenVehicleMode</td></tr>
 *    <tr><td>1.2</td><td>2017-11-2</td><td>Update to Proto3</td></tr>
 *  <tr><td>1.1</td><td>2017-04-19</td><td>Moved VehicleInfo to Uconnect Common.</td></tr>
 *	<tr><td>1.0</td><td>2017-03-17</td><td>Release of initial Proto.</td></tr>
 *	</tbody></table>
 *
 *  <h3 class=change-log-hdr>List of MQTT Topics</h3>
 *  <table class="change-log"><thead><tr>
 *	<td>Flow</td><td>Type</td><td>Topic Name</td></tr></thead>
 *    <tbody>
 *   <tr><td>Cloud send to Vehicle</td><td>Publish</td><td>fcasdp/${iot:ClientId}/SVAS</td></tr>
 *	 <tr><td>Cloud receive from Vehicle</td><td>Subscribe</td><td>fcasdp/SVAS/#</td></tr>
 *	 <tr><td>Vehicle send to Cloud </td><td>Publish</td><td>fcasdp/SVAS/${iot:ClientId}</td></tr>
 *	 <tr><td>Vehicle receive from Cloud </td><td>Subscribe</td><td>fcasdp/${iot:ClientId}/#</td></tr>
 *	</tbody></table>
 * <h3 class=change-log-hdr>Data Flow</h3>
 * <p>The following sequence diagram depicts the flow of messages between the TBM and the SDP:</p>
 *
 * <img class=img-border src=./images/stolenvehassist.png>
 *
 * <table class=sequence-table><thead><tr>
 *	<td>Seq</td><td>Title</td><td>Role</td><td>Message</td><td>Topic</td><td>Description</td></tr></thead>
 *   <tbody>
 * <tr><td>1.</td><td>Stolen Vehicle Assistance Event</td><td>SDP</td><td></td><td></td><td><p>The SDP triggers StolenVehicleAssistance event which triggers StolenVehicleMode ChangeRequest to the Client.</p></td></tr>
 * <tr><td>2.</td><td>Assign MessageId</td><td>SDP</td><td></td><td></td><td><p>The SDP generates the messageId for the message by incrementing a sequence counter.</p></td></tr>
 * <tr><td>3.</td><td>Send StolenModeChangeRequest Message</td><td>SDP</td><td>StolenModeChangeRequest</td><td>${iot:ClientId}/SVAS</td><td><p>The SDP populates the StolenModeChangeRequest Message with the required elements and publishes to the StolenVehicleAssistance topic.</p></td></tr>
 * <tr><td>4.</td><td>Process Message</td><td>TBM</td><td></td><td></td><td><p>The TBM processes the message and generates an StolenModeChangeResponse Message with the status and the correlationId set to the messageId from the received StolenModeChangeRequest Message.</p></td></tr>
 * <tr><td>5.</td><td>Send StolenModeChangeResponse Message</td><td>TBM</td><td>StolenModeChangeResponse</td><td>/SVAS/${iot:ClientId}</td><td><p>The TBM publishes the StolenModeChangeResponse message to the StolenVehicleAssistance topic for the SDP to receive.</p></td></tr>
 * <tr><td>6.</td><td>Process Message</td><td>SDP</td><td></td><td></td><td><p>The SDP receives the message and verifies the correlationId matches the messageId of the sent request.</p></td></tr>
 * <tr><td></td><td>opt</td><td></td><td></td><td></td><td><p>steps 7 to 11 are opt means The interaction operator opt means that the combined fragment represents a choice of behavior where either the (sole) operand happens or nothing happens. </p></td></tr>
 * <tr><td></td><td>loop</td><td></td><td></td><td></td><td><p>step 7 is in loop means the interaction operator loop means that the combined fragment represents a loop. The loop operand will be repeated a number of times. The loop construct represents a recursive application of the seq operator where
 * 															   the loop operand is sequenced after the result of earlier iterations.</p></td></tr>
 * <tr><td>7.</td><td>Send StolenVehicleInfoNotification Message</td><td>TBM</td><td>StolenVehicleInfoNotification</td><td>/SVAS/${iot:ClientId}</td><td><p>The SDP receives the message and alert the User about Vehicle Location.</p></td></tr>
 * <tr><td>8.1</td><td>Process Message</td><td>SDP</td><td></td><td></td><td><p>The SDP processes the message and proceed accordingly.</p></td></tr>
 * <tr><td>8.2.</td><td>Assign correlationID</td><td>SDP</td><td></td><td></td><td><p>Assign correct correlationId.</p></td></tr>
 * <tr><td>8.3.</td><td>send AckMessage</td><td>SDP</td><td>AckMessage</td><td>${iot:ClientId}/SVAS</td><td><p>The SDP sends AckMessage to acknowledge that it received StolenVehicleInfoNotification Message.</p></td></tr>
 * <tr><td>8.4.</td><td>Process AckMessage</td><td>TBM</td><td></td><td></td><td><p>The client process AckMessage.</p></td></tr>

 * </tbody>
 * </table>
 */
 syntax="proto3";
package com.fca.uconnect.global;
// import public "Global_Uconnect_Control.proto";
import public "Global_Uconnect_VehicleInfo.proto";
/**
 * This message represents  StolenModeChangeRequest, When the Vehicle is stolen SDP can send a request to Client to enter into Stolen Vehicle Mode.
 * <div class=exmsg-main>
 * <h4>StolenModeChangeRequest Example Message:</h4>
 * <div class=ex-msg>
 *	<code>
 *		timestamp: 1489802160176
 * 		messageId: 11
 * 		messages
 * 		{
 * 		 [com.fca.uconnect.global.stolenModeChangeRequest]
 * 		 {
 * 			stolenModeCommand: ENTER
 *
 * 		 }
 * 		}
 *	</code>
 *   </div>
 * </div>
 */
message StolenModeChangeRequest {

  enum StolenModeCommand{
  	ENTER=0; ///Enter Into Vehicle Stolen Mode.
  	EXIT=1;///Exit Into Vehicle Stolen Mode.
  }
   StolenModeCommand stolenModeCommand=1;///This identifies Whether Enter/Exit Vehicle into/from Stolen Mode.
   int32 stolenModeDuration=2;///This identifies How long Vehicle should be in StolenMode.
   int32 locationUpdateInterval=3;///This is the interval in milliseconds that TBM sends Notification to SDP.
}
/**
 * This message is in response to StolenModeChangeRequest and Client send back related information required by SDP.
 * <div class=exmsg-main>
 * <h4>StolenModeChangeResponse Example Message:</h4>
 * <div class=ex-msg>
 *	<code>
 *		timestamp: 1489802373594
 * 		messageId: 1
 * 		correlationId: 11
 * 		messages
 * 		{
 * 		 [com.fca.uconnect.global.stolenModeChangeResponse]
 * 		 {
 * 			isStolenModeActive: true
 * 		 }
 * 		}
 * </code>
 * </div>
 * </div>
 */
message StolenModeChangeResponse{
	 bool isStolenModeActive=1;///This identifies whether Stolen Vehicle Assistance Mode active or not.
}
/**
 * When Vehicle's Stolen Vehicle Assistance mode is ON, The Client periodically send out the Vehicle Location information to the SDP.
 *  <div class=exmsg-main>
 * <h4>StolenVehicleInfoNotification Example Message:</h4>
 * <div class=ex-msg>
 *	<code>
 *		timestamp: 1489802573608
 * 		messageId: 2
 * 		messages
 * 		{
 * 		 [com.fca.uconnect.global.stolenVehicleInfoNotification]
 * 		 {
 * 		  vehicleLocation
 * 		  {
 * 			longitude: -83.67168
 * 			latitude: 42.4804
 * 		  }
 * 		  isIgnoreAccelerateActive: false
 * 		  isBlockIgnitionActive: false
 * 		 }
 * 		}
 * </code>
 * </div>
 * </div>
 */
message StolenVehicleInfoNotification {
   VehicleInfo vehicleInfo = 1;
   bool isStolenModeActive		 = 2;///This identifies whether Vehicle is in StolenMode.

}

message InitiateStolenVehicleMode {
       bool isStolenModeActive		 = 2;///This identifies whether Vehicle is in StolenMode and is used by the vehicle to notify an auto SVL
}

