// Copyright 2018-2022 Cargill Incorporated
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
message CircuitMessage {
// The message type for the payload
CircuitMessageType message_type = 1;
// either a message defined below or another message envelope
bytes payload = 2;
}
enum CircuitMessageType {
UNSET_CIRCUIT_MESSAGE_TYPE = 0;
// Circuit Message
CIRCUIT_ERROR_MESSAGE = 1;
NETWORK_ERROR_MESSAGE = 2;
CIRCUIT_DIRECT_MESSAGE = 3;
SERVICE_CONNECT_REQUEST = 4;
SERVICE_CONNECT_RESPONSE = 5;
SERVICE_DISCONNECT_REQUEST = 7;
SERVICE_DISCONNECT_RESPONSE = 8;
ADMIN_DIRECT_MESSAGE = 100;
}
message CircuitError {
enum Error {
UNSET_ERROR = 0;
ERROR_CIRCUIT_DOES_NOT_EXIST = 1;
ERROR_RECIPIENT_NOT_IN_CIRCUIT_ROSTER = 2;
ERROR_SENDER_NOT_IN_CIRCUIT_ROSTER = 3;
ERROR_RECIPIENT_NOT_IN_DIRECTORY = 4;
ERROR_SENDER_NOT_IN_DIRECTORY = 5;
}
// id that correlates response to a request
string correlation_id = 1;
// service id of the sender of the message
string service_id = 2;
// circuit id of the sender of the message
string circuit_name = 3;
// enum of the network specific error that was encountered
Error error = 4;
// explanation of the error
string error_message = 5;
}
message NetworkError {
enum Error {
UNSET_ERROR = 0;
ERROR_COULD_NOT_DELIVER = 1;
ERROR_QUEUE_FULL = 2;
}
// id that correlates response to a request
string correlation_id = 1;
// enum of the network specific error that was encountered
Error error = 2;
// explanation of the error
string error_message = 3;
}
message CircuitDirectMessage {
// the name of the circuit the message is meant for
string circuit = 1;
// id of the sender of the message
string sender = 2;
// id of recipient of the message
string recipient = 3;
// the request
bytes payload = 4;
// id used to correlate the response with this request
string correlation_id = 5;
}
message AdminDirectMessage {
// the name of the circuit the message is meant for
string circuit = 1;
// id of the sender of the message
string sender = 2;
// id of recipient of the message
string recipient = 3;
// the request
bytes payload = 4;
// id used to correlate the response with this request
string correlation_id = 5;
}
message ServiceConnectRequest {
// the name of the circuit the message is meant for
string circuit = 1;
// the unique id of the service that is connecting to the circuit
string service_id = 2;
// id used to correlate the response with this request
string correlation_id = 3;
}
message ServiceConnectResponse {
// the name of the circuit the message is meant for
string circuit = 1;
// the unique id of the service that is connecting to the circuit
string service_id = 2;
enum Status {
UNSET_STATUS = 0;
OK = 1;
ERROR_CIRCUIT_DOES_NOT_EXIST = 2;
ERROR_SERVICE_NOT_IN_CIRCUIT_REGISTRY = 3;
ERROR_SERVICE_ALREADY_REGISTERED = 4;
ERROR_NOT_AN_ALLOWED_NODE = 5;
ERROR_QUEUE_FULL = 6;
}
Status status = 3;
// explanation of the error (optional)
string error_message = 4;
// id used to correlate this response with the request
string correlation_id = 5;
}
message ServiceDisconnectRequest {
// the name of the circuit the message is meant for
string circuit = 1;
// the unique id of the service that is connecting to the circuit
string service_id = 2;
// id used to correlate the response with this request
string correlation_id = 3;
}
message ServiceDisconnectResponse {
// the name of the circuit the message is meant for
string circuit = 1;
// the unique id of the service that is connecting to the circuit
string service_id = 2;
enum Status {
UNSET_ERROR = 0;
OK = 1;
ERROR_CIRCUIT_DOES_NOT_EXIST = 2;
ERROR_SERVICE_NOT_IN_CIRCUIT_REGISTRY = 3;
ERROR_SERVICE_NOT_REGISTERED = 4;
ERROR_QUEUE_FULL = 5;
}
Status status = 3;
// explanation of the error (optional)
string error_message = 4;
// id used to correlate this response with the request
string correlation_id = 5;
}