chromium/remoting/proto/action.proto

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package remoting.protocol;

// Next Id: 3
message ActionRequest {
  enum Action {
    ACTION_UNDEFINED = 0;
    SEND_ATTENTION_SEQUENCE = 1;
    LOCK_WORKSTATION = 2;
  }
  // Represents the Action to be executed remotely.
  optional Action action = 1;

  // Identifies an individual request so a response can be sent at a later time
  // to indicate whether the action succeeded.
  optional uint32 request_id = 2;
}

// Next Id: 4
message ActionResponse {
  // The ID of the action request this response was generated for.
  optional uint32 request_id = 1;

  enum ReturnCode {
    RETURN_CODE_UNDEFINED = 0;
    PROTOCOL_ERROR = 1;
    ACTION_SUCCESS = 2;
  }
  optional ReturnCode code = 2;

  // ProtocolErrorType field may be populated if |code()| is a PROTOCOL_ERROR.
  enum ProtocolErrorType {
    ERROR_CODE_UNDEFINED = 0;

    // The ActionRequest received could not be deserialized.
    INVALID_MESSAGE_ERROR = 1;

    // The action supplied was missing or undefined.
    INVALID_ACTION_ERROR = 2;

    // The action supplied is not supported by the platform or connection mode.
    UNSUPPORTED_ACTION_ERROR = 3;
  }
  optional ProtocolErrorType protocol_error_type = 3;
}