syntax = "proto2";
option go_package = "xmpp";

package appengine;

message XmppServiceError {
  enum ErrorCode {
    UNSPECIFIED_ERROR = 1;
    INVALID_JID = 2;
    NO_BODY = 3;
    INVALID_XML = 4;
    INVALID_TYPE = 5;
    INVALID_SHOW = 6;
    EXCEEDED_MAX_SIZE = 7;
    APPID_ALIAS_REQUIRED = 8;
    NONDEFAULT_MODULE = 9;
  }
}

message PresenceRequest {
  required string jid = 1;
  optional string from_jid = 2;
}

message PresenceResponse {
  enum SHOW {
    NORMAL = 0;
    AWAY = 1;
    DO_NOT_DISTURB = 2;
    CHAT = 3;
    EXTENDED_AWAY = 4;
  }

  required bool is_available = 1;
  optional SHOW presence = 2;
  optional bool valid = 3;
}

message BulkPresenceRequest {
  repeated string jid = 1;
  optional string from_jid = 2;
}

message BulkPresenceResponse {
  repeated PresenceResponse presence_response = 1;
}

message XmppMessageRequest {
  repeated string jid = 1;
  required string body = 2;
  optional bool raw_xml = 3 [ default = false ];
  optional string type = 4 [ default = "chat" ];
  optional string from_jid = 5;
}

message XmppMessageResponse {
  enum XmppMessageStatus {
    NO_ERROR = 0;
    INVALID_JID = 1;
    OTHER_ERROR = 2;
  }

  repeated XmppMessageStatus status = 1;
}

message XmppSendPresenceRequest {
  required string jid = 1;
  optional string type = 2;
  optional string show = 3;
  optional string status = 4;
  optional string from_jid = 5;
}

message XmppSendPresenceResponse {
}

message XmppInviteRequest {
  required string jid = 1;
  optional string from_jid = 2;
}

message XmppInviteResponse {
}
