/**
 * Copyright (C) 2014-2016 Open Whisper Systems
 *
 * Licensed according to the LICENSE file in this repository.
 */

// iOS - since we use a modern proto-compiler, we must specify
// the legacy proto format.
syntax = "proto2";

// iOS - package name determines class prefix
package WebSocketProtos;

option java_package = "org.whispersystems.signalservice.internal.websocket";
option java_outer_classname = "WebSocketProtos";

message WebSocketRequestMessage {
    // @required
    optional string verb = 1;
    // @required
    optional string path = 2;
    optional bytes body = 3;
    repeated string headers = 5;
    // @required
    optional uint64 requestId = 4;
}

message WebSocketResponseMessage {
    // @required
    optional uint64 requestId = 1;
    // @required
    optional uint32 status = 2;
    optional string message = 3;
    repeated string headers = 5;
    optional bytes body = 4;
}

message WebSocketMessage {
    enum Type {
        UNKNOWN = 0;
        REQUEST = 1;
        RESPONSE = 2;
    }

    // @required
    optional Type type = 1;
    optional WebSocketRequestMessage request = 2;
    optional WebSocketResponseMessage response = 3;
}
