syntax = "proto3"; package io.axoniq.axonserver.grpc.common; import "google/protobuf/any.proto"; option java_multiple_files = true; /* Describes a serialized object */ message SerializedObject { /* The type identifier of the serialized object. */ string type = 1; /* The revision of the serialized form of the given type. */ string revision = 2; /* The actual data representing the object in serialized form. */ bytes data = 3; } /* The value of a MetaData entry. */ message MetaDataValue { /* The data of the MetaData entry, depending on the type of data it contains. */ oneof data { /* The text value of the Meta Data entry. */ string text_value = 1; /* The numeric value of the Meta Data entry. */ sint64 number_value = 2; /* The boolean value of the Meta Data entry. */ bool boolean_value = 3; /* The floating point value of the Meta Data entry. */ double double_value = 4; /* The binary value of the Meta Data entry. */ SerializedObject bytes_value = 5; } } /* An instruction for routing components when routing or processing a message. */ message ProcessingInstruction { /* The type of processing message. */ ProcessingKey key = 1; /* The value associated with the processing key. */ MetaDataValue value = 2; } /* An enumeration of possible keys for processing instructions. */ enum ProcessingKey { /* key indicating that the attached value should be used for consistent routing. */ ROUTING_KEY = 0; /* key indicating that the attached value indicates relative priority of this message. */ PRIORITY = 1; /* key indicating that the accompanied message has a finite validity. The attached value contains the number of milliseconds. */ TIMEOUT = 2; /* key indicating that the requester expects at most the given number of results from this message. Use -1 for unlimited. */ NR_OF_RESULTS = 3; // do not reuse reserved number to ensure forward and backward compatibility reserved 4, 5, 6; } /* Message containing details of an error */ message ErrorMessage { /* A human readable message explaining the error */ string message = 1; /* A description of the location (client component, server) where the error occurred */ string location = 2; /* A collection of messages providing more details about root causes of the error */ repeated string details = 3; /* An Error Code identifying the type of error */ string error_code = 4; } /* Message used for Flow Control instruction, providing the counterpart with additional permits for sending messages */ message FlowControl { reserved 1; /* The ClientID of the component providing additional permits */ string client_id = 2; /* The number of permits to provide */ int64 permits = 3; } /* Message describing instruction acknowledgement */ message InstructionAck { /* The identifier of the instruction */ string instruction_id = 1; /* Indicator whether the instruction was acknowledged successfully */ bool success = 2; /* Set if instruction acknowledgement failed. */ ErrorMessage error = 3; } /* Message describing the result of the execution of an instruction*/ message InstructionResult { /* The identifier of the instruction */ string instruction_id = 1; /* Indicator whether the instruction was processed successfully */ bool success = 2; /* Cause of instruction handling failure. */ ErrorMessage error = 3; } /* Defines status values for a scheduled task */ enum TaskStatus { // Task is scheduled for execution SCHEDULED = 0; // Task execution completed successfully COMPLETED = 1; // Task execution failed with non transient exception FAILED = 2; // Task execution is in progress RUNNING = 3; // Task execution is in progress CANCELLED = 4; }