hansken_extraction_plugin.framework.PrimitiveMessages.proto Maven / Gradle / Ivy
syntax = "proto3";
// UPDATE NOTICE
//
// If you introduce new features or make breaking changes to the GRPC protocol
// definitions, please update VersionUitl.java and apiversion.properties as
// described in the projects README.md
package org.hansken.extraction.plugin.grpc;
option java_multiple_files = true;
option java_package = "org.hansken.extraction.plugin.grpc";
import "google/protobuf/any.proto";
/**
* This proto file contains message definitions from the primitive data structures, such
* as integers, dates, lists, etc...
*/
/**
* Message representing a 'null' reference value.
*/
message RpcNull {
}
/**
* Message representing a sequence of bytes.
*/
message RpcBytes {
bytes value = 1;
}
/**
* Message representing a boolean value.
*/
message RpcBoolean {
bool value = 1;
}
/**
* Message representing a 32-bit signed integer.
*/
message RpcInteger {
int32 value = 1;
}
/**
* Message representing a 64-bit signed integer.
*/
message RpcLong {
int64 value = 1;
}
/**
* Message representing a double-precision 64-bit IEEE 754 floating point.
*/
message RpcDouble {
double value = 1;
}
/**
* Message representing a string (a sequence of characters).
*/
message RpcString {
string value = 1;
}
/**
* Message representing a latitude and longitude pair (i.e. a location).
*/
message RpcLatLong {
double latitude = 1;
double longitude = 2;
}
/**
* Message representing a Unix timestamp, in milliseconds.
*/
message RpcUnixTime {
int64 value = 1;
}
/**
* Message representing a vector.
*/
message RpcVector {
bytes value = 1;
}
/**
* Message representing a timestamp in a specific zone with a specific offset. For a
* description of the valid values of these properties, such as the zone ID, refer to the ZonedDateTime JavaDoc:
*
* ZonedDateTime JavaDoc.
*
* All fields are required.
*/
message RpcZonedDateTime {
// number of seconds since 1970-01-01T00:00:00Z
int64 epochSecond = 1;
// the sub-second time in nanoseconds
int32 nanoOfSecond = 2;
// the offset from Greenwich/UTC
string zoneOffset = 3;
// the zone id, for example 'Europe/Amsterdam'
string zoneId = 4;
}
/**
* Message representing an as is string implementation of an ISO 8601 date. This should mainly be used with Python
* datetime objects because of their lack of precision due to the underlying floating point posix time.
*/
message RpcIsoDateString {
string value = 1;
}
/**
* Message representing an empty list of any type.
*
* Note: in Java, it is generally not possible to retrieve the runtime generic parameter
* type of a list. In case it is empty, there is also no element to base the type on.
* One should use this empty list message in that case, as it is clear in intent.
*/
message RpcEmptyList {
}
/**
* Message representing a list of string values.
*/
message RpcStringList {
repeated string values = 1;
}
/**
* Message representing a list of long values.
*/
message RpcLongList {
repeated int64 values = 1;
}
/**
* Message representing a list of double-precision values.
*/
message RpcDoubleList {
repeated double values = 1;
}
/**
* Message representing an empty map of any key-value type.
*
* Note: in Java, it is generally not possible to retrieve the runtime generic parameter
* type of a map. In case it is empty, there is also no element to base the type on.
* One should use this empty map message in that case, as it is clear in intent.
*/
message RpcEmptyMap {
}
/**
* Message representing a map of string keys and values.
* @deprecated: use RpcMap instead.
*/
message RpcStringMap {
option deprecated = true;
map entries = 1;
}
/**
* Message representing a map of string keys and any of the supported RPC types as values.
*/
message RpcMap {
map entries = 1;
}