Protocol Documentation

Table of Contents

google/protobuf/any.proto

Top

Any

`Any` contains an arbitrary serialized protocol buffer message along with a

URL that describes the type of the serialized message.

Protobuf library provides support to pack/unpack Any values in the form

of utility functions or additional generated methods of the Any type.

Example 1: Pack and unpack a message in C++.

Foo foo = ...;

Any any;

any.PackFrom(foo);

...

if (any.UnpackTo(&foo)) {

...

}

Example 2: Pack and unpack a message in Java.

Foo foo = ...;

Any any = Any.pack(foo);

...

if (any.is(Foo.class)) {

foo = any.unpack(Foo.class);

}

// or ...

if (any.isSameTypeAs(Foo.getDefaultInstance())) {

foo = any.unpack(Foo.getDefaultInstance());

}

Example 3: Pack and unpack a message in Python.

foo = Foo(...)

any = Any()

any.Pack(foo)

...

if any.Is(Foo.DESCRIPTOR):

any.Unpack(foo)

...

Example 4: Pack and unpack a message in Go

foo := &pb.Foo{...}

any, err := anypb.New(foo)

if err != nil {

...

}

...

foo := &pb.Foo{}

if err := any.UnmarshalTo(foo); err != nil {

...

}

The pack methods provided by protobuf library will by default use

'type.googleapis.com/full.type.name' as the type URL and the unpack

methods only use the fully qualified type name after the last '/'

in the type URL, for example "foo.bar.com/x/y.z" will yield type

name "y.z".

JSON

====

The JSON representation of an `Any` value uses the regular

representation of the deserialized, embedded message, with an

additional field `@type` which contains the type URL. Example:

package google.profile;

message Person {

string first_name = 1;

string last_name = 2;

}

{

"@type": "type.googleapis.com/google.profile.Person",

"firstName": ,

"lastName":

}

If the embedded message type is well-known and has a custom JSON

representation, that representation will be embedded adding a field

`value` which holds the custom JSON in addition to the `@type`

field. Example (for message [google.protobuf.Duration][]):

{

"@type": "type.googleapis.com/google.protobuf.Duration",

"value": "1.212s"

}

FieldTypeLabelDescription
type_url string

A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. This string must contain at least one "/" character. The last segment of the URL's path must represent the fully qualified name of the type (as in `path/google.protobuf.Duration`). The name should be in a canonical form (e.g., leading "." is not accepted). In practice, teams usually precompile into the binary all types that they expect it to use in the context of Any. However, for URLs which use the scheme `http`, `https`, or no scheme, one can optionally set up a type server that maps type URLs to message definitions as follows: * If no scheme is provided, `https` is assumed. * An HTTP GET on the URL must yield a [google.protobuf.Type][] value in binary format, or produce an error. * Applications are allowed to cache lookup results based on the URL, or have them precompiled into a binary to avoid any lookup. Therefore, binary compatibility needs to be preserved on changes to types. (Use versioned type names to manage breaking changes.) Note: this functionality is not currently available in the official protobuf release, and it is not used for type URLs beginning with type.googleapis.com. As of May 2023, there are no widely used type server implementations and no plans to implement one. Schemes other than `http`, `https` (or the empty scheme) might be used with implementation specific semantics.

value bytes

Must be a valid serialized protocol buffer of the above specified type.

libs/common/v1/conflict.proto

Top

AttributeConflict

FieldTypeLabelDescription
is google.protobuf.Any

want google.protobuf.Any

Conflict

Conflicts are returned, if a request was made with a consistency token, and a conflict to the requested action was caused.

There are three states:

- WAS - the state expected to be the newest by the frontend as identified by the consistency token,

- WANT - the state resulting from applying the changes requested)

- IS - the true current state, which only differs from WAS if another action was performed since the client retrieved the WAS state

If WAS == IS, or WANT and IS are merge-able (e.g., requested action changes "name", and another action has changed "age"), no conflict arises.

Warning: If a previous action has deleted the resource, an error is raised, and no conflict returned.

FieldTypeLabelDescription
conflicting_attributes Conflict.ConflictingAttributesEntry repeated

might be empty, in that case we don't have the history to calculate the conflicting attributes

Conflict.ConflictingAttributesEntry

FieldTypeLabelDescription
key string

value AttributeConflict

google/protobuf/descriptor.proto

Top

DescriptorProto

Describes a message type.

FieldTypeLabelDescription
name string optional

field FieldDescriptorProto repeated

extension FieldDescriptorProto repeated

nested_type DescriptorProto repeated

enum_type EnumDescriptorProto repeated

extension_range DescriptorProto.ExtensionRange repeated

oneof_decl OneofDescriptorProto repeated

options MessageOptions optional

reserved_range DescriptorProto.ReservedRange repeated

reserved_name string repeated

Reserved field names, which may not be used by fields in the same message. A given name may only be reserved once.

DescriptorProto.ExtensionRange

FieldTypeLabelDescription
start int32 optional

Inclusive.

end int32 optional

Exclusive.

options ExtensionRangeOptions optional

DescriptorProto.ReservedRange

Range of reserved tag numbers. Reserved tag numbers may not be used by

fields or extension ranges in the same message. Reserved ranges may

not overlap.

FieldTypeLabelDescription
start int32 optional

Inclusive.

end int32 optional

Exclusive.

EnumDescriptorProto

Describes an enum type.

FieldTypeLabelDescription
name string optional

value EnumValueDescriptorProto repeated

options EnumOptions optional

reserved_range EnumDescriptorProto.EnumReservedRange repeated

Range of reserved numeric values. Reserved numeric values may not be used by enum values in the same enum declaration. Reserved ranges may not overlap.

reserved_name string repeated

Reserved enum value names, which may not be reused. A given name may only be reserved once.

EnumDescriptorProto.EnumReservedRange

Range of reserved numeric values. Reserved values may not be used by

entries in the same enum. Reserved ranges may not overlap.

Note that this is distinct from DescriptorProto.ReservedRange in that it

is inclusive such that it can appropriately represent the entire int32

domain.

FieldTypeLabelDescription
start int32 optional

Inclusive.

end int32 optional

Inclusive.

EnumOptions

FieldTypeLabelDescription
allow_alias bool optional

Set this option to true to allow mapping different tag names to the same value.

deprecated bool optional

Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. Default: false

deprecated_legacy_json_field_conflicts bool optional

Deprecated. Enable the legacy handling of JSON field name conflicts. This lowercases and strips underscored from the fields before comparison in proto3 only. The new behavior takes `json_name` into account and applies to proto2 as well. TODO Remove this legacy behavior once downstream teams have had time to migrate.

features FeatureSet optional

Any features defined in the specific edition.

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

Fields with deprecated option

Name Option
deprecated_legacy_json_field_conflicts

true

EnumValueDescriptorProto

Describes a value within an enum.

FieldTypeLabelDescription
name string optional

number int32 optional

options EnumValueOptions optional

EnumValueOptions

FieldTypeLabelDescription
deprecated bool optional

Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. Default: false

features FeatureSet optional

Any features defined in the specific edition.

debug_redact bool optional

Indicate that fields annotated with this enum value should not be printed out when using debug formats, e.g. when the field contains sensitive credentials. Default: false

feature_support FieldOptions.FeatureSupport optional

Information about the support window of a feature value.

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

ExtensionRangeOptions

FieldTypeLabelDescription
uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

declaration ExtensionRangeOptions.Declaration repeated

For external users: DO NOT USE. We are in the process of open sourcing extension declaration and executing internal cleanups before it can be used externally.

features FeatureSet optional

Any features defined in the specific edition.

verification ExtensionRangeOptions.VerificationState optional

The verification state of the range. TODO: flip the default to DECLARATION once all empty ranges are marked as UNVERIFIED. Default: UNVERIFIED

ExtensionRangeOptions.Declaration

FieldTypeLabelDescription
number int32 optional

The extension number declared within the extension range.

full_name string optional

The fully-qualified name of the extension field. There must be a leading dot in front of the full name.

type string optional

The fully-qualified type name of the extension field. Unlike Metadata.type, Declaration.type must have a leading dot for messages and enums.

reserved bool optional

If true, indicates that the number is reserved in the extension range, and any extension field with the number will fail to compile. Set this when a declared extension field is deleted.

repeated bool optional

If true, indicates that the extension must be defined as repeated. Otherwise the extension must be defined as optional.

FeatureSet

TODO Enums in C++ gencode (and potentially other languages) are

not well scoped. This means that each of the feature enums below can clash

with each other. The short names we've chosen maximize call-site

readability, but leave us very open to this scenario. A future feature will

be designed and implemented to handle this, hopefully before we ever hit a

conflict here.

FieldTypeLabelDescription
field_presence FeatureSet.FieldPresence optional

enum_type FeatureSet.EnumType optional

repeated_field_encoding FeatureSet.RepeatedFieldEncoding optional

utf8_validation FeatureSet.Utf8Validation optional

message_encoding FeatureSet.MessageEncoding optional

json_format FeatureSet.JsonFormat optional

FeatureSetDefaults

A compiled specification for the defaults of a set of features. These

messages are generated from FeatureSet extensions and can be used to seed

feature resolution. The resolution with this object becomes a simple search

for the closest matching edition, followed by proto merges.

FieldTypeLabelDescription
defaults FeatureSetDefaults.FeatureSetEditionDefault repeated

minimum_edition Edition optional

The minimum supported edition (inclusive) when this was constructed. Editions before this will not have defaults.

maximum_edition Edition optional

The maximum known edition (inclusive) when this was constructed. Editions after this will not have reliable defaults.

FeatureSetDefaults.FeatureSetEditionDefault

A map from every known edition with a unique set of defaults to its

defaults. Not all editions may be contained here. For a given edition,

the defaults at the closest matching edition ordered at or before it should

be used. This field must be in strict ascending order by edition.

FieldTypeLabelDescription
edition Edition optional

overridable_features FeatureSet optional

Defaults of features that can be overridden in this edition.

fixed_features FeatureSet optional

Defaults of features that can't be overridden in this edition.

FieldDescriptorProto

Describes a field within a message.

FieldTypeLabelDescription
name string optional

number int32 optional

label FieldDescriptorProto.Label optional

type FieldDescriptorProto.Type optional

If type_name is set, this need not be set. If both this and type_name are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.

type_name string optional

For message and enum types, this is the name of the type. If the name starts with a '.', it is fully-qualified. Otherwise, C++-like scoping rules are used to find the type (i.e. first the nested types within this message are searched, then within the parent, on up to the root namespace).

extendee string optional

For extensions, this is the name of the type being extended. It is resolved in the same manner as type_name.

default_value string optional

For numeric types, contains the original text representation of the value. For booleans, "true" or "false". For strings, contains the default text contents (not escaped in any way). For bytes, contains the C escaped value. All bytes >= 128 are escaped.

oneof_index int32 optional

If set, gives the index of a oneof in the containing type's oneof_decl list. This field is a member of that oneof.

json_name string optional

JSON name of this field. The value is set by protocol compiler. If the user has set a "json_name" option on this field, that option's value will be used. Otherwise, it's deduced from the field's name by converting it to camelCase.

options FieldOptions optional

proto3_optional bool optional

If true, this is a proto3 "optional". When a proto3 field is optional, it tracks presence regardless of field type. When proto3_optional is true, this field must belong to a oneof to signal to old proto3 clients that presence is tracked for this field. This oneof is known as a "synthetic" oneof, and this field must be its sole member (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs exist in the descriptor only, and do not generate any API. Synthetic oneofs must be ordered after all "real" oneofs. For message fields, proto3_optional doesn't create any semantic change, since non-repeated message fields always track presence. However it still indicates the semantic detail of whether the user wrote "optional" or not. This can be useful for round-tripping the .proto file. For consistency we give message fields a synthetic oneof also, even though it is not required to track presence. This is especially important because the parser can't tell if a field is a message or an enum, so it must always create a synthetic oneof. Proto2 optional fields do not set this flag, because they already indicate optional with `LABEL_OPTIONAL`.

FieldOptions

FieldTypeLabelDescription
ctype FieldOptions.CType optional

NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead. The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. See the specific options below. This option is only implemented to support use of [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of type "bytes" in the open source release. TODO: make ctype actually deprecated. Default: STRING

packed bool optional

The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. Rather than repeatedly writing the tag and type for each element, the entire array is encoded as a single length-delimited blob. In proto3, only explicit setting it to false will avoid using packed encoding. This option is prohibited in Editions, but the `repeated_field_encoding` feature can be used to control the behavior.

jstype FieldOptions.JSType optional

The jstype option determines the JavaScript type used for values of the field. The option is permitted only for 64 bit integral and fixed types (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING is represented as JavaScript string, which avoids loss of precision that can happen when a large value is converted to a floating point JavaScript. Specifying JS_NUMBER for the jstype causes the generated JavaScript code to use the JavaScript "number" type. The behavior of the default option JS_NORMAL is implementation dependent. This option is an enum to permit additional types to be added, e.g. goog.math.Integer. Default: JS_NORMAL

lazy bool optional

Should this field be parsed lazily? Lazy applies only to message-type fields. It means that when the outer message is initially parsed, the inner message's contents will not be parsed but instead stored in encoded form. The inner message will actually be parsed when it is first accessed. This is only a hint. Implementations are free to choose whether to use eager or lazy parsing regardless of the value of this option. However, setting this option true suggests that the protocol author believes that using lazy parsing on this field is worth the additional bookkeeping overhead typically needed to implement it. This option does not affect the public interface of any generated code; all method signatures remain the same. Furthermore, thread-safety of the interface is not affected by this option; const methods remain safe to call from multiple threads concurrently, while non-const methods continue to require exclusive access. Note that lazy message fields are still eagerly verified to check ill-formed wireformat or missing required fields. Calling IsInitialized() on the outer message would fail if the inner message has missing required fields. Failed verification would result in parsing failure (except when uninitialized messages are acceptable). Default: false

unverified_lazy bool optional

unverified_lazy does no correctness checks on the byte stream. This should only be used where lazy with verification is prohibitive for performance reasons. Default: false

deprecated bool optional

Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. Default: false

weak bool optional

For Google-internal migration only. Do not use. Default: false

debug_redact bool optional

Indicate that the field value should not be printed out when using debug formats, e.g. when the field contains sensitive credentials. Default: false

retention FieldOptions.OptionRetention optional

targets FieldOptions.OptionTargetType repeated

edition_defaults FieldOptions.EditionDefault repeated

features FeatureSet optional

Any features defined in the specific edition.

feature_support FieldOptions.FeatureSupport optional

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

FieldOptions.EditionDefault

FieldTypeLabelDescription
edition Edition optional

value string optional

Textproto value.

FieldOptions.FeatureSupport

Information about the support window of a feature.

FieldTypeLabelDescription
edition_introduced Edition optional

The edition that this feature was first available in. In editions earlier than this one, the default assigned to EDITION_LEGACY will be used, and proto files will not be able to override it.

edition_deprecated Edition optional

The edition this feature becomes deprecated in. Using this after this edition may trigger warnings.

deprecation_warning string optional

The deprecation warning text if this feature is used after the edition it was marked deprecated in.

edition_removed Edition optional

The edition this feature is no longer available in. In editions after this one, the last default assigned will be used, and proto files will not be able to override it.

FileDescriptorProto

Describes a complete .proto file.

FieldTypeLabelDescription
name string optional

file name, relative to root of source tree

package string optional

e.g. "foo", "foo.bar", etc.

dependency string repeated

Names of files imported by this file.

public_dependency int32 repeated

Indexes of the public imported files in the dependency list above.

weak_dependency int32 repeated

Indexes of the weak imported files in the dependency list. For Google-internal migration only. Do not use.

message_type DescriptorProto repeated

All top-level definitions in this file.

enum_type EnumDescriptorProto repeated

service ServiceDescriptorProto repeated

extension FieldDescriptorProto repeated

options FileOptions optional

source_code_info SourceCodeInfo optional

This field contains optional information about the original source code. You may safely remove this entire field without harming runtime functionality of the descriptors -- the information is needed only by development tools.

syntax string optional

The syntax of the proto file. The supported values are "proto2", "proto3", and "editions". If `edition` is present, this value must be "editions".

edition Edition optional

The edition of the proto file.

FileDescriptorSet

The protocol compiler can output a FileDescriptorSet containing the .proto

files it parses.

FieldTypeLabelDescription
file FileDescriptorProto repeated

FileOptions

FieldTypeLabelDescription
java_package string optional

Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.

java_outer_classname string optional

Controls the name of the wrapper Java class generated for the .proto file. That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.

java_multiple_files bool optional

If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will *not* be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file's getDescriptor() method as well as any top-level extensions defined in the file. Default: false

java_generate_equals_and_hash bool optional

Deprecated. This option does nothing.

java_string_check_utf8 bool optional

A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field. TODO: clarify exactly what kinds of field types this option applies to, and update these docs accordingly. Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks. Default: false

optimize_for FileOptions.OptimizeMode optional

Default: SPEED

go_package string optional

Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following: - The basename of the package import path, if provided. - Otherwise, the package statement in the .proto file, if present. - Otherwise, the basename of the .proto file, without extension.

cc_generic_services bool optional

Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins). Generic services were the only kind of service generation supported by early versions of google.protobuf. Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true. Default: false

java_generic_services bool optional

Default: false

py_generic_services bool optional

Default: false

deprecated bool optional

Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. Default: false

cc_enable_arenas bool optional

Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++. Default: true

objc_class_prefix string optional

Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.

csharp_namespace string optional

Namespace for generated classes; defaults to the package.

swift_prefix string optional

By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.

php_class_prefix string optional

Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.

php_namespace string optional

Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.

php_metadata_namespace string optional

Use this option to change the namespace of php generated metadata classes. Default is empty. When this option is empty, the proto file name will be used for determining the namespace.

ruby_package string optional

Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.

features FeatureSet optional

Any features defined in the specific edition.

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See the documentation for the "Options" section above.

Fields with deprecated option

Name Option
java_generate_equals_and_hash

true

GeneratedCodeInfo

Describes the relationship between generated code and its original source

file. A GeneratedCodeInfo message is associated with only one generated

source file, but may contain references to different source .proto files.

FieldTypeLabelDescription
annotation GeneratedCodeInfo.Annotation repeated

An Annotation connects some span of text in generated code to an element of its generating .proto file.

GeneratedCodeInfo.Annotation

FieldTypeLabelDescription
path int32 repeated

Identifies the element in the original source .proto file. This field is formatted the same as SourceCodeInfo.Location.path.

source_file string optional

Identifies the filesystem path to the original source .proto.

begin int32 optional

Identifies the starting offset in bytes in the generated code that relates to the identified object.

end int32 optional

Identifies the ending offset in bytes in the generated code that relates to the identified object. The end offset should be one past the last relevant byte (so the length of the text = end - begin).

semantic GeneratedCodeInfo.Annotation.Semantic optional

MessageOptions

FieldTypeLabelDescription
message_set_wire_format bool optional

Set true to use the old proto1 MessageSet wire format for extensions. This is provided for backwards-compatibility with the MessageSet wire format. You should not use this for any other reason: It's less efficient, has fewer features, and is more complicated. The message must be defined exactly as follows: message Foo { option message_set_wire_format = true; extensions 4 to max; } Note that the message cannot have any defined fields; MessageSets only have extensions. All extensions of your type must be singular messages; e.g. they cannot be int32s, enums, or repeated messages. Because this is an option, the above two restrictions are not enforced by the protocol compiler. Default: false

no_standard_descriptor_accessor bool optional

Disables the generation of the standard "descriptor()" accessor, which can conflict with a field of the same name. This is meant to make migration from proto1 easier; new code should avoid fields named "descriptor". Default: false

deprecated bool optional

Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. Default: false

map_entry bool optional

Whether the message is an automatically generated map entry type for the maps field. For maps fields: map<KeyType, ValueType> map_field = 1; The parsed descriptor looks like: message MapFieldEntry { option map_entry = true; optional KeyType key = 1; optional ValueType value = 2; } repeated MapFieldEntry map_field = 1; Implementations may choose not to generate the map_entry=true message, but use a native map in the target language to hold the keys and values. The reflection APIs in such implementations still need to work as if the field is a repeated message field. NOTE: Do not set the option in .proto files. Always use the maps syntax instead. The option should only be implicitly set by the proto compiler parser.

deprecated_legacy_json_field_conflicts bool optional

Deprecated. Enable the legacy handling of JSON field name conflicts. This lowercases and strips underscored from the fields before comparison in proto3 only. The new behavior takes `json_name` into account and applies to proto2 as well. This should only be used as a temporary measure against broken builds due to the change in behavior for JSON field name conflicts. TODO This is legacy behavior we plan to remove once downstream teams have had time to migrate.

features FeatureSet optional

Any features defined in the specific edition.

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

Fields with deprecated option

Name Option
deprecated_legacy_json_field_conflicts

true

MethodDescriptorProto

Describes a method of a service.

FieldTypeLabelDescription
name string optional

input_type string optional

Input and output type names. These are resolved in the same way as FieldDescriptorProto.type_name, but must refer to a message type.

output_type string optional

options MethodOptions optional

client_streaming bool optional

Identifies if client streams multiple client messages Default: false

server_streaming bool optional

Identifies if server streams multiple server messages Default: false

MethodOptions

FieldTypeLabelDescription
deprecated bool optional

Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. Default: false

idempotency_level MethodOptions.IdempotencyLevel optional

Default: IDEMPOTENCY_UNKNOWN

features FeatureSet optional

Any features defined in the specific edition.

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

OneofDescriptorProto

Describes a oneof.

FieldTypeLabelDescription
name string optional

options OneofOptions optional

OneofOptions

FieldTypeLabelDescription
features FeatureSet optional

Any features defined in the specific edition.

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

ServiceDescriptorProto

Describes a service.

FieldTypeLabelDescription
name string optional

method MethodDescriptorProto repeated

options ServiceOptions optional

ServiceOptions

FieldTypeLabelDescription
features FeatureSet optional

Any features defined in the specific edition.

deprecated bool optional

Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. Default: false

uninterpreted_option UninterpretedOption repeated

The parser stores options it doesn't recognize here. See above.

SourceCodeInfo

Encapsulates information about the original source file from which a

FileDescriptorProto was generated.

FieldTypeLabelDescription
location SourceCodeInfo.Location repeated

A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. This information is intended to be useful to IDEs, code indexers, documentation generators, and similar tools. For example, say we have a file like: message Foo { optional string foo = 1; } Let's look at just the field definition: optional string foo = 1; ^ ^^ ^^ ^ ^^^ a bc de f ghi We have the following locations: span path represents [a,i) [ 4, 0, 2, 0 ] The whole field definition. [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). [c,d) [ 4, 0, 2, 0, 5 ] The type (string). [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). [g,h) [ 4, 0, 2, 0, 3 ] The number (1). Notes: - A location may refer to a repeated field itself (i.e. not to any particular index within it). This is used whenever a set of elements are logically enclosed in a single code segment. For example, an entire extend block (possibly containing multiple extension definitions) will have an outer location whose path refers to the "extensions" repeated field without an index. - Multiple locations may have the same path. This happens when a single logical declaration is spread out across multiple places. The most obvious example is the "extend" block again -- there may be multiple extend blocks in the same scope, each of which will have the same path. - A location's span is not always a subset of its parent's span. For example, the "extendee" of an extension declaration appears at the beginning of the "extend" block and is shared by all extensions within the block. - Just because a location's span is a subset of some other location's span does not mean that it is a descendant. For example, a "group" defines both a type and a field in a single declaration. Thus, the locations corresponding to the type and field and their components will overlap. - Code which tries to interpret locations should probably be designed to ignore those that it doesn't understand, as more types of locations could be recorded in the future.

SourceCodeInfo.Location

FieldTypeLabelDescription
path int32 repeated

Identifies which part of the FileDescriptorProto was defined at this location. Each element is a field number or an index. They form a path from the root FileDescriptorProto to the place where the definition appears. For example, this path: [ 4, 3, 2, 7, 1 ] refers to: file.message_type(3) // 4, 3 .field(7) // 2, 7 .name() // 1 This is because FileDescriptorProto.message_type has field number 4: repeated DescriptorProto message_type = 4; and DescriptorProto.field has field number 2: repeated FieldDescriptorProto field = 2; and FieldDescriptorProto.name has field number 1: optional string name = 1; Thus, the above path gives the location of a field name. If we removed the last element: [ 4, 3, 2, 7 ] this path refers to the whole field declaration (from the beginning of the label to the terminating semicolon).

span int32 repeated

Always has exactly three or four elements: start line, start column, end line (optional, otherwise assumed same as start line), end column. These are packed into a single field for efficiency. Note that line and column numbers are zero-based -- typically you will want to add 1 to each before displaying to a user.

leading_comments string optional

If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. A series of line comments appearing on consecutive lines, with no other tokens appearing on those lines, will be treated as a single comment. leading_detached_comments will keep paragraphs of comments that appear before (but not connected to) the current element. Each paragraph, separated by empty lines, will be one comment element in the repeated field. Only the comment content is provided; comment markers (e.g. //) are stripped out. For block comments, leading whitespace and an asterisk will be stripped from the beginning of each line other than the first. Newlines are included in the output. Examples: optional int32 foo = 1; // Comment attached to foo. // Comment attached to bar. optional int32 bar = 2; optional string baz = 3; // Comment attached to baz. // Another line attached to baz. // Comment attached to moo. // // Another line attached to moo. optional double moo = 4; // Detached comment for corge. This is not leading or trailing comments // to moo or corge because there are blank lines separating it from // both. // Detached comment for corge paragraph 2. optional string corge = 5; /* Block comment attached * to corge. Leading asterisks * will be removed. */ /* Block comment attached to * grault. */ optional int32 grault = 6; // ignored detached comments.

trailing_comments string optional

leading_detached_comments string repeated

UninterpretedOption

A message representing a option the parser does not recognize. This only

appears in options protos created by the compiler::Parser class.

DescriptorPool resolves these when building Descriptor objects. Therefore,

options protos in descriptor objects (e.g. returned by Descriptor::options(),

or produced by Descriptor::CopyTo()) will never have UninterpretedOptions

in them.

FieldTypeLabelDescription
name UninterpretedOption.NamePart repeated

identifier_value string optional

The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. Exactly one of these should be set.

positive_int_value uint64 optional

negative_int_value int64 optional

double_value double optional

string_value bytes optional

aggregate_value string optional

UninterpretedOption.NamePart

The name of the uninterpreted option. Each string represents a segment in

a dot-separated name. is_extension is true iff a segment represents an

extension (denoted with parentheses in options specs in .proto files).

E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents

"foo.(bar.baz).moo".

FieldTypeLabelDescription
name_part string required

is_extension bool required

Edition

The full set of known editions.

NameNumberDescription
EDITION_UNKNOWN 0

A placeholder for an unknown edition value.

EDITION_LEGACY 900

A placeholder edition for specifying default behaviors *before* a feature was first introduced. This is effectively an "infinite past".

EDITION_PROTO2 998

Legacy syntax "editions". These pre-date editions, but behave much like distinct editions. These can't be used to specify the edition of proto files, but feature definitions must supply proto2/proto3 defaults for backwards compatibility.

EDITION_PROTO3 999

EDITION_2023 1000

Editions that have been released. The specific values are arbitrary and should not be depended on, but they will always be time-ordered for easy comparison.

EDITION_2024 1001

EDITION_1_TEST_ONLY 1

Placeholder editions for testing feature resolution. These should not be used or relied on outside of tests.

EDITION_2_TEST_ONLY 2

EDITION_99997_TEST_ONLY 99997

EDITION_99998_TEST_ONLY 99998

EDITION_99999_TEST_ONLY 99999

EDITION_MAX 2147483647

Placeholder for specifying unbounded edition support. This should only ever be used by plugins that can expect to never require any changes to support a new edition.

ExtensionRangeOptions.VerificationState

The verification state of the extension range.

NameNumberDescription
DECLARATION 0

All the extensions of the range must be declared.

UNVERIFIED 1

FeatureSet.EnumType

NameNumberDescription
ENUM_TYPE_UNKNOWN 0

OPEN 1

CLOSED 2

FeatureSet.FieldPresence

NameNumberDescription
FIELD_PRESENCE_UNKNOWN 0

EXPLICIT 1

IMPLICIT 2

LEGACY_REQUIRED 3

FeatureSet.JsonFormat

NameNumberDescription
JSON_FORMAT_UNKNOWN 0

ALLOW 1

LEGACY_BEST_EFFORT 2

FeatureSet.MessageEncoding

NameNumberDescription
MESSAGE_ENCODING_UNKNOWN 0

LENGTH_PREFIXED 1

DELIMITED 2

FeatureSet.RepeatedFieldEncoding

NameNumberDescription
REPEATED_FIELD_ENCODING_UNKNOWN 0

PACKED 1

EXPANDED 2

FeatureSet.Utf8Validation

NameNumberDescription
UTF8_VALIDATION_UNKNOWN 0

VERIFY 2

NONE 3

FieldDescriptorProto.Label

NameNumberDescription
LABEL_OPTIONAL 1

0 is reserved for errors

LABEL_REPEATED 3

LABEL_REQUIRED 2

The required label is only allowed in google.protobuf. In proto3 and Editions it's explicitly prohibited. In Editions, the `field_presence` feature can be used to get this behavior.

FieldDescriptorProto.Type

NameNumberDescription
TYPE_DOUBLE 1

0 is reserved for errors. Order is weird for historical reasons.

TYPE_FLOAT 2

TYPE_INT64 3

Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if negative values are likely.

TYPE_UINT64 4

TYPE_INT32 5

Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if negative values are likely.

TYPE_FIXED64 6

TYPE_FIXED32 7

TYPE_BOOL 8

TYPE_STRING 9

TYPE_GROUP 10

Tag-delimited aggregate. Group type is deprecated and not supported after google.protobuf. However, Proto3 implementations should still be able to parse the group wire format and treat group fields as unknown fields. In Editions, the group wire format can be enabled via the `message_encoding` feature.

TYPE_MESSAGE 11

Length-delimited aggregate.

TYPE_BYTES 12

New in version 2.

TYPE_UINT32 13

TYPE_ENUM 14

TYPE_SFIXED32 15

TYPE_SFIXED64 16

TYPE_SINT32 17

Uses ZigZag encoding.

TYPE_SINT64 18

Uses ZigZag encoding.

FieldOptions.CType

NameNumberDescription
STRING 0

Default mode.

CORD 1

The option [ctype=CORD] may be applied to a non-repeated field of type "bytes". It indicates that in C++, the data should be stored in a Cord instead of a string. For very large strings, this may reduce memory fragmentation. It may also allow better performance when parsing from a Cord, or when parsing with aliasing enabled, as the parsed Cord may then alias the original buffer.

STRING_PIECE 2

FieldOptions.JSType

NameNumberDescription
JS_NORMAL 0

Use the default type.

JS_STRING 1

Use JavaScript strings.

JS_NUMBER 2

Use JavaScript numbers.

FieldOptions.OptionRetention

If set to RETENTION_SOURCE, the option will be omitted from the binary.

NameNumberDescription
RETENTION_UNKNOWN 0

RETENTION_RUNTIME 1

RETENTION_SOURCE 2

FieldOptions.OptionTargetType

This indicates the types of entities that the field may apply to when used

as an option. If it is unset, then the field may be freely used as an

option on any kind of entity.

NameNumberDescription
TARGET_TYPE_UNKNOWN 0

TARGET_TYPE_FILE 1

TARGET_TYPE_EXTENSION_RANGE 2

TARGET_TYPE_MESSAGE 3

TARGET_TYPE_FIELD 4

TARGET_TYPE_ONEOF 5

TARGET_TYPE_ENUM 6

TARGET_TYPE_ENUM_ENTRY 7

TARGET_TYPE_SERVICE 8

TARGET_TYPE_METHOD 9

FileOptions.OptimizeMode

Generated classes can be optimized for speed or code size.

NameNumberDescription
SPEED 1

Generate complete code for parsing, serialization,

CODE_SIZE 2

etc. Use ReflectionOps to implement these methods.

LITE_RUNTIME 3

Generate code using MessageLite and the lite runtime.

GeneratedCodeInfo.Annotation.Semantic

Represents the identified object's effect on the element in the original

.proto file.

NameNumberDescription
NONE 0

There is no effect or the effect is indescribable.

SET 1

The element is set or otherwise mutated.

ALIAS 2

An alias to the element is returned.

MethodOptions.IdempotencyLevel

Is this method side-effect-free (or safe in HTTP parlance), or idempotent,

or neither? HTTP based RPC implementation may choose GET verb for safe

methods, and PUT verb for idempotent methods instead of the default POST.

NameNumberDescription
IDEMPOTENCY_UNKNOWN 0

NO_SIDE_EFFECTS 1

implies idempotent

IDEMPOTENT 2

idempotent, but may have side effects

libs/events/v1/options.proto

Top

File-level Extensions

ExtensionTypeBaseNumberDescription
event_type string .google.protobuf.MessageOptions 2123

We can define our events in Protobuf. The type of an event like "PATIENT_CREATED_v1" gets resolved via the option event_type. The field number 2123 is an arbitrary number above 1000 for custom options.

libs/events/v1/bed_events.proto

Top

BedCreatedEvent

FieldTypeLabelDescription
id string

BedDeletedEvent

FieldTypeLabelDescription
id string

BedUpdatedEvent

FieldTypeLabelDescription
id string

name string

room_id string optional

libs/events/v1/organization_events.proto

Top

OrganizationCreatedEvent

TOPIC: ORGANIZATION_CREATED

FieldTypeLabelDescription
id string

the id of the created organization

user_id string

the id of the user that created the organization

OrganizationDeletedEvent

TOPIC: ORGANIZATION_DELETED

FieldTypeLabelDescription
id string

the id of the deleted organization

libs/events/v1/room_events.proto

Top

RoomCreatedEvent

FieldTypeLabelDescription
id string

RoomDeletedEvent

FieldTypeLabelDescription
id string

RoomUpdatedEvent

FieldTypeLabelDescription
id string

name string

libs/events/v1/task_template_events.proto

Top

TaskTemplateCreatedEvent

FieldTypeLabelDescription
id string

name string

description string

subtasks TaskTemplateCreatedEvent.SubTask repeated

TaskTemplateCreatedEvent.SubTask

FieldTypeLabelDescription
name string

TaskTemplateDeletedEvent

FieldTypeLabelDescription
id string

TaskTemplateSubTaskCreatedEvent

FieldTypeLabelDescription
task_template_id string

sub_task_id string

name string

TaskTemplateSubTaskDeletedEvent

FieldTypeLabelDescription
task_template_id string

sub_task_id string

TaskTemplateSubTaskUpdatedEvent

FieldTypeLabelDescription
task_template_id string

sub_task_id string

name string

TaskTemplateUpdatedEvent

FieldTypeLabelDescription
id string

name string

description string

libs/events/v1/user_events.proto

Top

UserCreatedEvent

TOPIC: USER_CREATED

FieldTypeLabelDescription
id string

email string

nickname string

name string

UserRegisteredEvent

TOPIC: USER_REGISTERED

FieldTypeLabelDescription
id string

email string

nickname string

name string

UserUpdatedEvent

TOPIC: USER_UPDATED

FieldTypeLabelDescription
id string

email string optional

nickname string optional

name string optional

libs/events/v1/ward_events.proto

Top

WardCreatedEvent

FieldTypeLabelDescription
id string

WardDeletedEvent

FieldTypeLabelDescription
id string

WardUpdatedEvent

FieldTypeLabelDescription
id string

name string

services/auth_svc/v1/auth_svc.proto

Top

PrelimAuthRequestRequest

More in the wiki

PrelimAuthRequestResponse

FieldTypeLabelDescription
url string

The Authorization Request URL including Client ID, Scopes and so on. Start the Auth Flow by redirecting here. State and PKCE should be populated by the client

AuthService

Method NameRequest TypeResponse TypeDescription
PrelimAuthRequest PrelimAuthRequestRequest PrelimAuthRequestResponse

services/property_svc/v1/property_set_svc.proto

Top

CreatePropertySetRequest

CreatePropertySet

FieldTypeLabelDescription
name string

CreatePropertySetResponse

FieldTypeLabelDescription
id string

consistency string

GetPropertySetRequest

FieldTypeLabelDescription
id string

GetPropertySetResponse

FieldTypeLabelDescription
id string

name string

consistency string

PropertySetService

Method NameRequest TypeResponse TypeDescription
CreatePropertySet CreatePropertySetRequest CreatePropertySetResponse

GetPropertySet GetPropertySetRequest GetPropertySetResponse

google/protobuf/timestamp.proto

Top

Timestamp

A Timestamp represents a point in time independent of any time zone or local

calendar, encoded as a count of seconds and fractions of seconds at

nanosecond resolution. The count is relative to an epoch at UTC midnight on

January 1, 1970, in the proleptic Gregorian calendar which extends the

Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap

second table is needed for interpretation, using a [24-hour linear

smear](https://developers.google.com/time/smear).

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By

restricting to that range, we ensure that we can convert to and from [RFC

3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.

# Examples

Example 1: Compute Timestamp from POSIX `time()`.

Timestamp timestamp;

timestamp.set_seconds(time(NULL));

timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX `gettimeofday()`.

struct timeval tv;

gettimeofday(&tv, NULL);

Timestamp timestamp;

timestamp.set_seconds(tv.tv_sec);

timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.

FILETIME ft;

GetSystemTimeAsFileTime(&ft);

UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

// A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z

// is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.

Timestamp timestamp;

timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));

timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.

long millis = System.currentTimeMillis();

Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)

.setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java `Instant.now()`.

Instant now = Instant.now();

Timestamp timestamp =

Timestamp.newBuilder().setSeconds(now.getEpochSecond())

.setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

timestamp = Timestamp()

timestamp.GetCurrentTime()

# JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the

[RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the

format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"

where {year} is always expressed using four digits while {month}, {day},

{hour}, {min}, and {sec} are zero-padded to two digits each. The fractional

seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),

are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone

is required. A proto3 JSON serializer should always use UTC (as indicated by

"Z") when printing the Timestamp type and a proto3 JSON parser should be

able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past

01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the

standard

[toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)

method. In Python, a standard `datetime.datetime` object can be converted

to this format using

[`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with

the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use

the Joda Time's [`ISODateTimeFormat.dateTime()`](

http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()

) to obtain a formatter capable of generating timestamps in this format.

FieldTypeLabelDescription
seconds int64

Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.

nanos int32

Non-negative fractions of a second at nanosecond resolution. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be from 0 to 999,999,999 inclusive.

services/property_svc/v1/types.proto

Top

Date

FieldTypeLabelDescription
date google.protobuf.Timestamp

information more precise than date information shall be disregarded by clients @gotags: validate:"required"

FieldType

NameNumberDescription
FIELD_TYPE_UNSPECIFIED 0

FIELD_TYPE_TEXT 1

FIELD_TYPE_NUMBER 2

FIELD_TYPE_CHECKBOX 3

FIELD_TYPE_DATE 4

FIELD_TYPE_DATE_TIME 5

FIELD_TYPE_SELECT 6

FIELD_TYPE_MULTI_SELECT 7

SubjectType

NameNumberDescription
SUBJECT_TYPE_UNSPECIFIED 0

SUBJECT_TYPE_PATIENT 1

SUBJECT_TYPE_TASK 2

services/property_svc/v1/property_svc.proto

Top

CreatePropertyRequest

Creates a new Property

FieldTypeLabelDescription
subject_type SubjectType

What kind of subject does this property belong to @gotags: validate:"required"

field_type FieldType

What kind of data can be attached using this Property? @gotags: validate:"required"

name string

readable identifier for this property (should, but does not have to be unique) @gotags: validate:"required"

description string optional

Optional field for more context

set_id string optional

ID of set this Property should belong to Not implemented yet

select_data CreatePropertyRequest.SelectData

CreatePropertyRequest.SelectData

the select field type requires an (initial) set of options (possible values)

FieldTypeLabelDescription
allow_freetext bool optional

allows admins to allow or prevent users of using select fields like free-text fields, this means unknown options will be added to the option set when entered.

options CreatePropertyRequest.SelectData.SelectOption repeated

@gotags: validate:"dive"

CreatePropertyRequest.SelectData.SelectOption

FieldTypeLabelDescription
name string

@gotags: validate:"required"

description string optional

CreatePropertyResponse

FieldTypeLabelDescription
property_id string

uuid of the property

consistency string

GetPropertiesRequest

FieldTypeLabelDescription
subject_type SubjectType optional

GetPropertiesResponse

FieldTypeLabelDescription
properties GetPropertiesResponse.Property repeated

GetPropertiesResponse.Property

FieldTypeLabelDescription
id string

subject_type SubjectType

field_type FieldType

name string

description string optional

is_archived bool

set_id string optional

id of set this Property should belong to

select_data GetPropertiesResponse.Property.SelectData

consistency string

GetPropertiesResponse.Property.SelectData

FieldTypeLabelDescription
allow_freetext bool optional

options GetPropertiesResponse.Property.SelectData.SelectOption repeated

GetPropertiesResponse.Property.SelectData.SelectOption

FieldTypeLabelDescription
id string

name string

description string optional

is_custom bool

GetPropertyRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

view_source GetPropertyRequest.ViewSource optional

describes from which View (global, ward, ...) the property is accessed from The attribute "always_include_for_current_context" depends on this ViewSource

GetPropertyRequest.ViewSource

FieldTypeLabelDescription
global bool

ward_id string

@gotags: validate:"omitempty,omitnil,uuid4"

GetPropertyResponse

FieldTypeLabelDescription
id string

subject_type SubjectType

field_type FieldType

name string

description string optional

is_archived bool

set_id string optional

id of set this Property should belong to

select_data GetPropertyResponse.SelectData

always_include_for_view_source bool optional

This value is dependend on the ViewSource

consistency string

GetPropertyResponse.SelectData

FieldTypeLabelDescription
allow_freetext bool optional

options GetPropertyResponse.SelectData.SelectOption repeated

GetPropertyResponse.SelectData.SelectOption

FieldTypeLabelDescription
id string

name string

description string optional

is_custom bool

consistency string

UpdatePropertyRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

subject_type SubjectType optional

name string optional

description string optional

is_archived bool optional

set_id string optional

ID of set this Property should belong to

select_data UpdatePropertyRequest.SelectData

consistency string optional

no conflict detection, if not provided

UpdatePropertyRequest.SelectData

FieldTypeLabelDescription
allow_freetext bool optional

remove_options string repeated

@gotags: validate:"dive,uuid4"

upsert_options UpdatePropertyRequest.SelectData.SelectOption repeated

@gotags: validate:"dive"

UpdatePropertyRequest.SelectData.SelectOption

FieldTypeLabelDescription
id string

@gotags: validate:"omitempty,uuid4"

name string optional

description string optional

is_custom bool optional

UpdatePropertyResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

PropertyService

Method NameRequest TypeResponse TypeDescription
CreateProperty CreatePropertyRequest CreatePropertyResponse

GetProperty GetPropertyRequest GetPropertyResponse

UpdateProperty UpdatePropertyRequest UpdatePropertyResponse

GetProperties GetPropertiesRequest GetPropertiesResponse

services/property_svc/v1/property_value_svc.proto

Top

AttachPropertyValueRequest

AttachPropertyValueRequest

FieldTypeLabelDescription
subject_id string

@gotags: validate:"uuid4"

property_id string

@gotags: validate:"uuid4"

text_value string

@gotags: validate:"required" // FIELD_TYPE_TEXT

number_value double

FIELD_TYPE_NUMBER

bool_value bool

FIELD_TYPE_CHECKBOX

date_value Date

FIELD_TYPE_DATE

date_time_value google.protobuf.Timestamp

FIELD_TYPE_DATE_TIME

select_value string

@gotags: validate:"uuid4" // FIELD_TYPE_SELECT, id of option

multi_select_value AttachPropertyValueRequest.MultiSelectValue

FIELD_TYPE_MULTI_SELECT

consistency string optional

optional consistency of existing value (not of the property!), no conflict detection, if not provided

AttachPropertyValueRequest.MultiSelectValue

FieldTypeLabelDescription
select_values string repeated

@gotags: validate:"dive,uuid4" // ids of options to add

remove_select_values string repeated

@gotags: validate:"dive,uuid4" // in case a PV is already attached with multiple select values, you can remove them here

AttachPropertyValueResponse

FieldTypeLabelDescription
property_value_id string

conflict libs.common.v1.Conflict optional

consistency string

GetAttachedPropertyValuesRequest

FieldTypeLabelDescription
task_matcher TaskPropertyMatcher

patient_matcher PatientPropertyMatcher

GetAttachedPropertyValuesResponse

FieldTypeLabelDescription
values GetAttachedPropertyValuesResponse.Value repeated

GetAttachedPropertyValuesResponse.Value

FieldTypeLabelDescription
property_id string

field_type FieldType

name string

description string optional

is_archived bool

text_value string

FIELD_TYPE_TEXT

number_value double

FIELD_TYPE_NUMBER

bool_value bool

FIELD_TYPE_CHECKBOX

date_value Date

FIELD_TYPE_DATE

date_time_value google.protobuf.Timestamp

FIELD_TYPE_DATE_TIME

select_value SelectValueOption

FIELD_TYPE_SELECT, id of option

multi_select_value MultiSelectValue

property_consistency string

value_consistency string optional

missing, if no value available

MultiSelectValue

FieldTypeLabelDescription
select_values SelectValueOption repeated

PatientPropertyMatcher

FieldTypeLabelDescription
ward_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

patient_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

SelectValueOption

FieldTypeLabelDescription
id string

name string

description string

TaskPropertyMatcher

FieldTypeLabelDescription
ward_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

task_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

PropertyValueService

Method NameRequest TypeResponse TypeDescription
AttachPropertyValue AttachPropertyValueRequest AttachPropertyValueResponse

GetAttachedPropertyValues GetAttachedPropertyValuesRequest GetAttachedPropertyValuesResponse

services/property_svc/v1/property_views_svc.proto

Top

FilterUpdate

FieldTypeLabelDescription
append_to_always_include string repeated

append property_id to the always_include list this means the property is shown, unless a more specific rule (including itself) puts it in its dont_always_include list @gotags: validate:"dive,uuid4"

remove_from_always_include string repeated

remove property_id to the always_include list, also see append_to_always_include @gotags: validate:"dive,uuid4"

append_to_dont_always_include string repeated

append property_id to the dont_always_include list, also see append_to_always_include @gotags: validate:"dive,uuid4"

remove_from_dont_always_include string repeated

remove property_id to the dont_always_include list, also see append_to_always_include @gotags: validate:"dive,uuid4"

UpdatePropertyViewRuleRequest

FieldTypeLabelDescription
filter_update FilterUpdate

@gotags: validate:"required"

task_matcher TaskPropertyMatcher

patient_matcher PatientPropertyMatcher

UpdatePropertyViewRuleResponse

PropertyViewsService

Method NameRequest TypeResponse TypeDescription
UpdatePropertyViewRule UpdatePropertyViewRuleRequest UpdatePropertyViewRuleResponse

services/tasks_svc/v1/bed_svc.proto

Top

BulkCreateBedsRequest

FieldTypeLabelDescription
room_id string

@gotags: validate:"uuid4"

amount_of_beds uint32

@gotags: validate:"required"

BulkCreateBedsResponse

FieldTypeLabelDescription
beds BulkCreateBedsResponse.Bed repeated

BulkCreateBedsResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

CreateBedRequest

FieldTypeLabelDescription
room_id string

@gotags: validate:"uuid4"

name string

@gotags: validate:"required"

CreateBedResponse

FieldTypeLabelDescription
id string

consistency string

DeleteBedRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteBedResponse

GetBedByPatientRequest

FieldTypeLabelDescription
patient_id string

@gotags: validate:"uuid4"

GetBedByPatientResponse

FieldTypeLabelDescription
room GetBedByPatientResponse.Room optional

bed GetBedByPatientResponse.Bed optional

GetBedByPatientResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetBedByPatientResponse.Room

FieldTypeLabelDescription
id string

name string

ward_id string

consistency string

GetBedRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetBedResponse

FieldTypeLabelDescription
id string

room_id string

name string

consistency string

GetBedsByRoomRequest

FieldTypeLabelDescription
room_id string

@gotags: validate:"uuid4"

GetBedsByRoomResponse

FieldTypeLabelDescription
beds GetBedsByRoomResponse.Bed repeated

GetBedsByRoomResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetBedsRequest

FieldTypeLabelDescription
room_id string optional

@gotags: validate:"omitnil,uuid4"

GetBedsResponse

FieldTypeLabelDescription
beds GetBedsResponse.Bed repeated

GetBedsResponse.Bed

FieldTypeLabelDescription
id string

room_id string

name string

consistency string

UpdateBedRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

room_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

name string optional

consistency string optional

no conflict detection, if not provided

UpdateBedResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

BedService

Method NameRequest TypeResponse TypeDescription
CreateBed CreateBedRequest CreateBedResponse

BulkCreateBeds BulkCreateBedsRequest BulkCreateBedsResponse

GetBed GetBedRequest GetBedResponse

GetBedByPatient GetBedByPatientRequest GetBedByPatientResponse

GetBeds GetBedsRequest GetBedsResponse

GetBedsByRoom GetBedsByRoomRequest GetBedsByRoomResponse

Deprecated: Use GetBeds with optional room_id instead

UpdateBed UpdateBedRequest UpdateBedResponse

DeleteBed DeleteBedRequest DeleteBedResponse

Methods with deprecated option

Method Name Option
GetBedsByRoom

true

services/tasks_svc/v1/types.proto

Top

TaskStatus

NameNumberDescription
TASK_STATUS_UNSPECIFIED 0

TASK_STATUS_TODO 1

TASK_STATUS_IN_PROGRESS 2

TASK_STATUS_DONE 3

services/tasks_svc/v1/patient_svc.proto

Top

AssignBedRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

bed_id string

@gotags: validate:"uuid4"

consistency string optional

no conflict detection, if not provided

AssignBedResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

CreatePatientRequest

FieldTypeLabelDescription
human_readable_identifier string

@gotags: validate:"required"

notes string optional

CreatePatientResponse

FieldTypeLabelDescription
id string

consistency string

DeletePatientRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeletePatientResponse

DischargePatientRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DischargePatientResponse

FieldTypeLabelDescription
consistency string

GetPatientAssignmentByWardRequest

FieldTypeLabelDescription
ward_id string

@gotags: validate:"uuid4"

GetPatientAssignmentByWardResponse

FieldTypeLabelDescription
rooms GetPatientAssignmentByWardResponse.Room repeated

GetPatientAssignmentByWardResponse.Room

FieldTypeLabelDescription
id string

name string

beds GetPatientAssignmentByWardResponse.Room.Bed repeated

consistency string

GetPatientAssignmentByWardResponse.Room.Bed

FieldTypeLabelDescription
id string

name string

patient GetPatientAssignmentByWardResponse.Room.Bed.Patient optional

consistency string

GetPatientAssignmentByWardResponse.Room.Bed.Patient

FieldTypeLabelDescription
id string

name string

consistency string

GetPatientByBedRequest

FieldTypeLabelDescription
bed_id string

@gotags: validate:"uuid4"

GetPatientByBedResponse

FieldTypeLabelDescription
id string

human_readable_identifier string

notes string

bed_id string

consistency string

GetPatientDetailsRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetPatientDetailsResponse

FieldTypeLabelDescription
id string

human_readable_identifier string

notes string

tasks GetPatientDetailsResponse.Task repeated

room GetPatientDetailsResponse.Room optional

bed GetPatientDetailsResponse.Bed optional

is_discharged bool

consistency string

GetPatientDetailsResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetPatientDetailsResponse.Room

FieldTypeLabelDescription
id string

name string

ward_id string

consistency string

GetPatientDetailsResponse.Task

FieldTypeLabelDescription
id string

name string

description string

status TaskStatus

assigned_user_id string optional

patient_id string

public bool

subtasks GetPatientDetailsResponse.Task.SubTask repeated

consistency string

GetPatientDetailsResponse.Task.SubTask

FieldTypeLabelDescription
id string

name string

done bool

GetPatientListRequest

FieldTypeLabelDescription
ward_id string optional

GetPatientListResponse

FieldTypeLabelDescription
active GetPatientListResponse.Patient repeated

unassigned_patients GetPatientListResponse.Patient repeated

discharged_patients GetPatientListResponse.Patient repeated

GetPatientListResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetPatientListResponse.Patient

FieldTypeLabelDescription
id string

human_readable_identifier string

room GetPatientListResponse.Room

bed GetPatientListResponse.Bed

notes string

tasks GetPatientListResponse.Task repeated

consistency string

GetPatientListResponse.Room

FieldTypeLabelDescription
id string

name string

ward_id string

consistency string

GetPatientListResponse.Task

FieldTypeLabelDescription
id string

name string

description string

status TaskStatus

assigned_user_id string optional

patient_id string

public bool

subtasks GetPatientListResponse.Task.SubTask repeated

consistency string

GetPatientListResponse.Task.SubTask

FieldTypeLabelDescription
id string

name string

done bool

GetPatientRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetPatientResponse

FieldTypeLabelDescription
id string

human_readable_identifier string

notes string

room GetPatientResponse.Room optional

bed GetPatientResponse.Bed optional

consistency string

GetPatientResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetPatientResponse.Room

FieldTypeLabelDescription
id string

name string

ward_id string

consistency string

GetPatientsByWardRequest

FieldTypeLabelDescription
ward_id string

@gotags: validate:"uuid4"

GetPatientsByWardResponse

FieldTypeLabelDescription
patients GetPatientsByWardResponse.Patient repeated

GetPatientsByWardResponse.Patient

FieldTypeLabelDescription
id string

human_readable_identifier string

notes string

bed_id string optional

consistency string

GetRecentPatientsRequest

GetRecentPatientsResponse

FieldTypeLabelDescription
recent_patients GetRecentPatientsResponse.Patient repeated

GetRecentPatientsResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetRecentPatientsResponse.Patient

FieldTypeLabelDescription
id string

human_readable_identifier string

room GetRecentPatientsResponse.Room optional

bed GetRecentPatientsResponse.Bed optional

consistency string

GetRecentPatientsResponse.Room

FieldTypeLabelDescription
id string

name string

ward_id string

consistency string

ReadmitPatientRequest

FieldTypeLabelDescription
patient_id string

@gotags: validate:"uuid4"

ReadmitPatientResponse

FieldTypeLabelDescription
consistency string

UnassignBedRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

consistency string optional

no conflict detection, if not provided

UnassignBedResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

UpdatePatientRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

human_readable_identifier string optional

notes string optional

consistency string optional

no conflict detection, if not provided

UpdatePatientResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

PatientService

Method NameRequest TypeResponse TypeDescription
CreatePatient CreatePatientRequest CreatePatientResponse

GetPatient GetPatientRequest GetPatientResponse

GetPatientByBed GetPatientByBedRequest GetPatientByBedResponse

GetPatientsByWard GetPatientsByWardRequest GetPatientsByWardResponse

GetPatientAssignmentByWard GetPatientAssignmentByWardRequest GetPatientAssignmentByWardResponse

GetPatientDetails GetPatientDetailsRequest GetPatientDetailsResponse

GetPatientList GetPatientListRequest GetPatientListResponse

GetRecentPatients GetRecentPatientsRequest GetRecentPatientsResponse

UpdatePatient UpdatePatientRequest UpdatePatientResponse

AssignBed AssignBedRequest AssignBedResponse

UnassignBed UnassignBedRequest UnassignBedResponse

DischargePatient DischargePatientRequest DischargePatientResponse

ReadmitPatient ReadmitPatientRequest ReadmitPatientResponse

DeletePatient DeletePatientRequest DeletePatientResponse

services/tasks_svc/v1/room_svc.proto

Top

CreateRoomRequest

FieldTypeLabelDescription
name string

@gotags: validate:"required"

ward_id string

@gotags: validate:"required"

CreateRoomResponse

FieldTypeLabelDescription
id string

consistency string

DeleteRoomRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteRoomResponse

GetRoomOverviewsByWardRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetRoomOverviewsByWardResponse

FieldTypeLabelDescription
rooms GetRoomOverviewsByWardResponse.Room repeated

GetRoomOverviewsByWardResponse.Room

FieldTypeLabelDescription
id string

name string

beds GetRoomOverviewsByWardResponse.Room.Bed repeated

consistency string

GetRoomOverviewsByWardResponse.Room.Bed

FieldTypeLabelDescription
id string

name string

patient GetRoomOverviewsByWardResponse.Room.Bed.Patient optional

consistency string

GetRoomOverviewsByWardResponse.Room.Bed.Patient

FieldTypeLabelDescription
id string

human_readable_identifier string

tasks_unscheduled uint32

tasks_in_progress uint32

tasks_done uint32

consistency string

GetRoomRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetRoomResponse

FieldTypeLabelDescription
id string

name string

beds GetRoomResponse.Bed repeated

ward_id string

consistency string

GetRoomResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetRoomsRequest

FieldTypeLabelDescription
ward_id string optional

@gotags: validate:"omitempty,uuid4"

GetRoomsResponse

FieldTypeLabelDescription
rooms GetRoomsResponse.Room repeated

GetRoomsResponse.Room

FieldTypeLabelDescription
id string

name string

beds GetRoomsResponse.Room.Bed repeated

ward_id string

consistency string

GetRoomsResponse.Room.Bed

FieldTypeLabelDescription
id string

name string

consistency string

UpdateRoomRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

name string optional

consistency string optional

no conflict detection, if not provided

UpdateRoomResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

RoomService

Method NameRequest TypeResponse TypeDescription
CreateRoom CreateRoomRequest CreateRoomResponse

GetRoom GetRoomRequest GetRoomResponse

GetRooms GetRoomsRequest GetRoomsResponse

UpdateRoom UpdateRoomRequest UpdateRoomResponse

DeleteRoom DeleteRoomRequest DeleteRoomResponse

GetRoomOverviewsByWard GetRoomOverviewsByWardRequest GetRoomOverviewsByWardResponse

services/tasks_svc/v1/task_svc.proto

Top

AssignTaskRequest

FieldTypeLabelDescription
task_id string

@gotags: validate:"uuid4"

user_id string

@gotags: validate:"uuid4"

consistency string optional

no conflict detection, if not provided

AssignTaskResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

CreateSubtaskRequest

FieldTypeLabelDescription
task_id string

@gotags: validate:"uuid4"

subtask CreateSubtaskRequest.Subtask

@gotags: validate:"required"

CreateSubtaskRequest.Subtask

FieldTypeLabelDescription
name string

@gotags: validate:"required"

done bool optional

default: false

CreateSubtaskResponse

FieldTypeLabelDescription
subtask_id string

task_consistency string

CreateTaskRequest

FieldTypeLabelDescription
name string

@gotags: validate:"required"

description string optional

patient_id string

@gotags: validate:"uuid4"

public bool optional

due_at google.protobuf.Timestamp

initial_status TaskStatus optional

assigned_user_id string optional

@gotags: validate:"omitempty,uuid4"

subtasks CreateTaskRequest.SubTask repeated

@gotags: validate:"dive"

CreateTaskRequest.SubTask

FieldTypeLabelDescription
name string

@gotags: validate:"required"

done bool optional

default: false

CreateTaskResponse

FieldTypeLabelDescription
id string

consistency string

DeleteSubtaskRequest

FieldTypeLabelDescription
task_id string

@gotags: validate:"uuid4"

subtask_id string

@gotags: validate:"uuid4"

DeleteSubtaskResponse

DeleteTaskRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteTaskResponse

GetAssignedTasksRequest

GetAssignedTasksResponse

FieldTypeLabelDescription
tasks GetAssignedTasksResponse.Task repeated

GetAssignedTasksResponse.Task

FieldTypeLabelDescription
id string

name string

description string

status TaskStatus

assigned_user_id string

patient GetAssignedTasksResponse.Task.Patient

public bool

due_at google.protobuf.Timestamp optional

created_by string

subtasks GetAssignedTasksResponse.Task.SubTask repeated

created_at google.protobuf.Timestamp

consistency string

GetAssignedTasksResponse.Task.Patient

FieldTypeLabelDescription
id string

human_readable_identifier string

consistency string

GetAssignedTasksResponse.Task.SubTask

FieldTypeLabelDescription
id string

name string

done bool

created_by string

GetTaskRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetTaskResponse

FieldTypeLabelDescription
id string

name string

description string

assigned_user_id string optional

subtasks GetTaskResponse.SubTask repeated

status TaskStatus

created_at google.protobuf.Timestamp

public bool

due_at google.protobuf.Timestamp optional

created_by string

patient GetTaskResponse.Patient

consistency string

GetTaskResponse.Patient

FieldTypeLabelDescription
id string

human_readable_identifier string

consistency string

GetTaskResponse.SubTask

FieldTypeLabelDescription
id string

name string

done bool

created_by string

GetTasksByPatientRequest

FieldTypeLabelDescription
patient_id string

GetTasksByPatientResponse

FieldTypeLabelDescription
tasks GetTasksByPatientResponse.Task repeated

GetTasksByPatientResponse.Task

FieldTypeLabelDescription
id string

name string

description string

status TaskStatus

assigned_user_id string optional

patient_id string

public bool

due_at google.protobuf.Timestamp optional

created_by string

subtasks GetTasksByPatientResponse.Task.SubTask repeated

created_at google.protobuf.Timestamp

consistency string

GetTasksByPatientResponse.Task.SubTask

FieldTypeLabelDescription
id string

name string

done bool

created_by string

GetTasksByPatientSortedByStatusRequest

FieldTypeLabelDescription
patient_id string

@gotags: validate:"uuid4"

GetTasksByPatientSortedByStatusResponse

FieldTypeLabelDescription
todo GetTasksByPatientSortedByStatusResponse.Task repeated

in_progress GetTasksByPatientSortedByStatusResponse.Task repeated

done GetTasksByPatientSortedByStatusResponse.Task repeated

GetTasksByPatientSortedByStatusResponse.Task

FieldTypeLabelDescription
id string

name string

description string

assigned_user_id string optional

patient_id string

public bool

due_at google.protobuf.Timestamp optional

created_by string

subtasks GetTasksByPatientSortedByStatusResponse.Task.SubTask repeated

created_at google.protobuf.Timestamp

consistency string

GetTasksByPatientSortedByStatusResponse.Task.SubTask

FieldTypeLabelDescription
id string

name string

done bool

created_by string

RemoveTaskDueDateRequest

FieldTypeLabelDescription
task_id string

@gotags: validate:"uuid4"

RemoveTaskDueDateResponse

FieldTypeLabelDescription
consistency string

UnassignTaskRequest

FieldTypeLabelDescription
task_id string

@gotags: validate:"uuid4"

user_id string

@gotags: validate:"uuid4"

consistency string optional

no conflict detection, if not provided

UnassignTaskResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

UpdateSubtaskRequest

FieldTypeLabelDescription
task_id string

@gotags: validate:"uuid4"

subtask_id string

@gotags: validate:"uuid4"

subtask UpdateSubtaskRequest.Subtask

@gotags: validate:"required"

task_consistency string optional

no conflict detection, if not provided

UpdateSubtaskRequest.Subtask

FieldTypeLabelDescription
name string optional

@gotags: validate:"omitnil,min=1"

done bool optional

UpdateSubtaskResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

task_consistency string

UpdateTaskRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

name string optional

description string optional

due_at google.protobuf.Timestamp optional

status TaskStatus optional

public bool optional

consistency string optional

no conflict detection, if not provided

UpdateTaskResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

TaskService

Method NameRequest TypeResponse TypeDescription
CreateTask CreateTaskRequest CreateTaskResponse

UpdateTask UpdateTaskRequest UpdateTaskResponse

GetTask GetTaskRequest GetTaskResponse

GetTasksByPatient GetTasksByPatientRequest GetTasksByPatientResponse

GetTasksByPatientSortedByStatus GetTasksByPatientSortedByStatusRequest GetTasksByPatientSortedByStatusResponse

GetAssignedTasks GetAssignedTasksRequest GetAssignedTasksResponse

AssignTask AssignTaskRequest AssignTaskResponse

UnassignTask UnassignTaskRequest UnassignTaskResponse

CreateSubtask CreateSubtaskRequest CreateSubtaskResponse

UpdateSubtask UpdateSubtaskRequest UpdateSubtaskResponse

DeleteSubtask DeleteSubtaskRequest DeleteSubtaskResponse

RemoveTaskDueDate RemoveTaskDueDateRequest RemoveTaskDueDateResponse

DeleteTask DeleteTaskRequest DeleteTaskResponse

services/tasks_svc/v1/task_template_svc.proto

Top

CreateTaskTemplateRequest

FieldTypeLabelDescription
name string

@gotags: validate:"required"

description string optional

ward_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

subtasks CreateTaskTemplateRequest.SubTask repeated

@gotags: validate:"dive"

CreateTaskTemplateRequest.SubTask

FieldTypeLabelDescription
name string

@gotags: validate:"required"

CreateTaskTemplateResponse

FieldTypeLabelDescription
id string

consistency string

CreateTaskTemplateSubTaskRequest

FieldTypeLabelDescription
task_template_id string

@gotags: validate:"required"

name string

@gotags: validate:"required"

CreateTaskTemplateSubTaskResponse

FieldTypeLabelDescription
id string

task_template_consistency string

DeleteTaskTemplateRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteTaskTemplateResponse

DeleteTaskTemplateSubTaskRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteTaskTemplateSubTaskResponse

FieldTypeLabelDescription
task_template_consistency string

GetAllTaskTemplatesRequest

FieldTypeLabelDescription
ward_id string optional

@gotags: validate:"omitempty,omitnil,uuid4"

created_by string optional

@gotags: validate:"omitempty,omitnil,uuid4"

private_only bool

GetAllTaskTemplatesResponse

FieldTypeLabelDescription
templates GetAllTaskTemplatesResponse.TaskTemplate repeated

GetAllTaskTemplatesResponse.TaskTemplate

FieldTypeLabelDescription
id string

name string

description string

is_public bool

created_by string

subtasks GetAllTaskTemplatesResponse.TaskTemplate.SubTask repeated

consistency string

GetAllTaskTemplatesResponse.TaskTemplate.SubTask

FieldTypeLabelDescription
id string

task_template_id string

name string

GetTaskTemplateRequest

FieldTypeLabelDescription
id string

@gotags: validate:"required,uuid4"

GetTaskTemplateResponse

FieldTypeLabelDescription
id string

name string

description string

is_public bool

created_by string

subtasks GetTaskTemplateResponse.SubTask repeated

consistency string

GetTaskTemplateResponse.SubTask

FieldTypeLabelDescription
id string

task_template_id string

name string

UpdateTaskTemplateRequest

FieldTypeLabelDescription
id string

@gotags: validate:"required"

name string optional

description string optional

consistency string optional

no conflict detection, if not provided

UpdateTaskTemplateResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

UpdateTaskTemplateSubTaskRequest

FieldTypeLabelDescription
subtask_id string

@gotags: validate:"required"

name string optional

task_template_consistency string optional

no conflict detection, if not provided

UpdateTaskTemplateSubTaskResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

task_template_consistency string

TaskTemplateService

Method NameRequest TypeResponse TypeDescription
CreateTaskTemplate CreateTaskTemplateRequest CreateTaskTemplateResponse

DeleteTaskTemplate DeleteTaskTemplateRequest DeleteTaskTemplateResponse

DeleteTaskTemplateSubTask DeleteTaskTemplateSubTaskRequest DeleteTaskTemplateSubTaskResponse

UpdateTaskTemplate UpdateTaskTemplateRequest UpdateTaskTemplateResponse

UpdateTaskTemplateSubTask UpdateTaskTemplateSubTaskRequest UpdateTaskTemplateSubTaskResponse

CreateTaskTemplateSubTask CreateTaskTemplateSubTaskRequest CreateTaskTemplateSubTaskResponse

GetAllTaskTemplates GetAllTaskTemplatesRequest GetAllTaskTemplatesResponse

GetTaskTemplate GetTaskTemplateRequest GetTaskTemplateResponse

services/tasks_svc/v1/ward_svc.proto

Top

CreateWardRequest

FieldTypeLabelDescription
name string

@gotags: validate:"required"

CreateWardResponse

FieldTypeLabelDescription
id string

consistency string

DeleteWardRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteWardResponse

GetRecentWardsRequest

GetRecentWardsResponse

FieldTypeLabelDescription
wards GetRecentWardsResponse.Ward repeated

GetRecentWardsResponse.Ward

FieldTypeLabelDescription
id string

name string

bed_count uint32

tasks_todo uint32

tasks_in_progress uint32

tasks_done uint32

consistency string

GetWardDetailsRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetWardDetailsResponse

FieldTypeLabelDescription
id string

name string

rooms GetWardDetailsResponse.Room repeated

task_templates GetWardDetailsResponse.TaskTemplate repeated

consistency string

GetWardDetailsResponse.Bed

FieldTypeLabelDescription
id string

name string

consistency string

GetWardDetailsResponse.Room

FieldTypeLabelDescription
id string

name string

beds GetWardDetailsResponse.Bed repeated

consistency string

GetWardDetailsResponse.Subtask

FieldTypeLabelDescription
id string

name string

GetWardDetailsResponse.TaskTemplate

FieldTypeLabelDescription
id string

name string

subtasks GetWardDetailsResponse.Subtask repeated

consistency string

GetWardOverviewsRequest

GetWardOverviewsResponse

FieldTypeLabelDescription
wards GetWardOverviewsResponse.Ward repeated

GetWardOverviewsResponse.Ward

FieldTypeLabelDescription
id string

name string

bed_count uint32

tasks_todo uint32

tasks_in_progress uint32

tasks_done uint32

consistency string

GetWardRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetWardResponse

FieldTypeLabelDescription
id string

name string

consistency string

GetWardsRequest

GetWardsResponse

FieldTypeLabelDescription
wards GetWardsResponse.Ward repeated

GetWardsResponse.Ward

FieldTypeLabelDescription
id string

name string

consistency string

UpdateWardRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

name string optional

consistency string optional

no conflict detection, if not provided

UpdateWardResponse

FieldTypeLabelDescription
conflict libs.common.v1.Conflict optional

consistency string

WardService

Method NameRequest TypeResponse TypeDescription
CreateWard CreateWardRequest CreateWardResponse

GetWard GetWardRequest GetWardResponse

GetWards GetWardsRequest GetWardsResponse

GetRecentWards GetRecentWardsRequest GetRecentWardsResponse

UpdateWard UpdateWardRequest UpdateWardResponse

DeleteWard DeleteWardRequest DeleteWardResponse

GetWardDetails GetWardDetailsRequest GetWardDetailsResponse

GetWardOverviews GetWardOverviewsRequest GetWardOverviewsResponse

services/updates_svc/v1/updates_svc.proto

Top

Event

A reduced event from our event store

FieldTypeLabelDescription
event_id string

event_type string

aggregate_id string

aggregate_type string

ReceiveUpdatesRequest

FieldTypeLabelDescription
revision uint64 optional

If your stream gets interrupted, you can pass your last received revision to start receiving events at this revision.

ReceiveUpdatesResponse

FieldTypeLabelDescription
revision uint64

event Event

UpdatesService

Method NameRequest TypeResponse TypeDescription
ReceiveUpdates ReceiveUpdatesRequest ReceiveUpdatesResponse stream

This endpoint directly exposes all enables our clients to hook into our event stream

services/user_svc/v1/organization_svc.proto

Top

AcceptInvitationRequest

AcceptInvite

FieldTypeLabelDescription
invitation_id string

@gotags: validate:"uuid4"

AcceptInvitationResponse

CreateOrganizationRequest

FieldTypeLabelDescription
long_name string

@gotags: validate:"required,gte=4,lte=64"

short_name string

@gotags: validate:"omitempty,gte=2,lte=16"

contact_email string

@gotags: validate:"required,email"

is_personal bool optional

default: false

CreateOrganizationResponse

FieldTypeLabelDescription
id string

CreatePersonalOrganizationRequest

CreatePersonalOrganizationResponse

FieldTypeLabelDescription
id string

DeclineInvitationRequest

FieldTypeLabelDescription
invitation_id string

@gotags: validate:"uuid4"

DeclineInvitationResponse

DeleteOrganizationRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

DeleteOrganizationResponse

GetInvitationsByOrganizationRequest

FieldTypeLabelDescription
organization_id string

@gotags: validate:"uuid4"

state InvitationState optional

GetInvitationsByOrganizationResponse

FieldTypeLabelDescription
invitations GetInvitationsByOrganizationResponse.Invitation repeated

GetInvitationsByOrganizationResponse.Invitation

FieldTypeLabelDescription
id string

email string

organization_id string

state InvitationState

GetInvitationsByUserRequest

FieldTypeLabelDescription
state InvitationState optional

GetInvitationsByUserResponse

FieldTypeLabelDescription
invitations GetInvitationsByUserResponse.Invitation repeated

GetInvitationsByUserResponse.Invitation

FieldTypeLabelDescription
id string

email string

organization GetInvitationsByUserResponse.Invitation.Organization

state InvitationState

GetInvitationsByUserResponse.Invitation.Organization

FieldTypeLabelDescription
id string

long_name string

avatar_url string optional

GetMembersByOrganizationRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetMembersByOrganizationResponse

FieldTypeLabelDescription
members GetMembersByOrganizationResponse.Member repeated

GetMembersByOrganizationResponse.Member

FieldTypeLabelDescription
user_id string

email string

nickname string

avatar_url string optional

GetOrganizationMember

FieldTypeLabelDescription
user_id string

GetOrganizationRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

GetOrganizationResponse

FieldTypeLabelDescription
id string

long_name string

short_name string

contact_email string

avatar_url string optional

is_personal bool

members GetOrganizationMember repeated

GetOrganizationsByUserRequest

FieldTypeLabelDescription
user_id string

@gotags: validate:"uuid4"

GetOrganizationsByUserResponse

FieldTypeLabelDescription
organizations GetOrganizationsByUserResponse.Organization repeated

GetOrganizationsByUserResponse.Organization

FieldTypeLabelDescription
id string

long_name string

short_name string

contact_email string

avatar_url string optional

is_personal bool

members GetOrganizationsByUserResponse.Organization.Member repeated

GetOrganizationsByUserResponse.Organization.Member

FieldTypeLabelDescription
user_id string

email string

nickname string

avatar_url string optional

GetOrganizationsForUserRequest

GetOrganizationsForUserResponse

FieldTypeLabelDescription
organizations GetOrganizationsForUserResponse.Organization repeated

GetOrganizationsForUserResponse.Organization

FieldTypeLabelDescription
id string

long_name string

short_name string

contact_email string

avatar_url string optional

is_personal bool

members GetOrganizationsForUserResponse.Organization.Member repeated

GetOrganizationsForUserResponse.Organization.Member

FieldTypeLabelDescription
user_id string

email string

nickname string

avatar_url string optional

InviteMemberRequest

FieldTypeLabelDescription
organization_id string

@gotags: validate:"uuid4"

email string

@gotags: validate:"required,email"

InviteMemberResponse

FieldTypeLabelDescription
id string

RemoveMemberRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

user_id string

@gotags: validate:"uuid4"

RemoveMemberResponse

RevokeInvitationRequest

FieldTypeLabelDescription
invitation_id string

@gotags: validate:"uuid4"

RevokeInvitationResponse

UpdateOrganizationRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

long_name string optional

@gotags: validate:"omitempty,gte=4,lte=64"

short_name string optional

@gotags: validate:"omitempty,gte=2,lte=16"

contact_email string optional

@gotags: validate:"omitempty,email"

avatar_url string optional

is_personal bool optional

UpdateOrganizationResponse

InvitationState

NameNumberDescription
INVITATION_STATE_UNSPECIFIED 0

INVITATION_STATE_PENDING 1

INVITATION_STATE_ACCEPTED 2

INVITATION_STATE_REJECTED 3

INVITATION_STATE_REVOKED 4

OrganizationService

Method NameRequest TypeResponse TypeDescription
CreateOrganization CreateOrganizationRequest CreateOrganizationResponse

GetOrganization GetOrganizationRequest GetOrganizationResponse

GetOrganizationsByUser GetOrganizationsByUserRequest GetOrganizationsByUserResponse

GetOrganizationsForUser GetOrganizationsForUserRequest GetOrganizationsForUserResponse

UpdateOrganization UpdateOrganizationRequest UpdateOrganizationResponse

DeleteOrganization DeleteOrganizationRequest DeleteOrganizationResponse

GetMembersByOrganization GetMembersByOrganizationRequest GetMembersByOrganizationResponse

RemoveMember RemoveMemberRequest RemoveMemberResponse

InviteMember InviteMemberRequest InviteMemberResponse

GetInvitationsByOrganization GetInvitationsByOrganizationRequest GetInvitationsByOrganizationResponse

GetInvitationsByUser GetInvitationsByUserRequest GetInvitationsByUserResponse

AcceptInvitation AcceptInvitationRequest AcceptInvitationResponse

DeclineInvitation DeclineInvitationRequest DeclineInvitationResponse

RevokeInvitation RevokeInvitationRequest RevokeInvitationResponse

CreatePersonalOrganization CreatePersonalOrganizationRequest CreatePersonalOrganizationResponse

CreatePersonalOrganization creates or returns the personal organization of the user Based on the "Accept-Language" metadata, the localized prefix "Personal organization ..." gets selected

Methods with idempotency_level option

Method Name Option
CreatePersonalOrganization

IDEMPOTENT

services/user_svc/v1/user_svc.proto

Top

ReadPublicProfileRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

ReadPublicProfileResponse

FieldTypeLabelDescription
id string

name string

nickname string

avatar_url string optional

ReadSelfOrganization

FieldTypeLabelDescription
id string

ReadSelfRequest

User gets resolved from current authentication context

ReadSelfResponse

FieldTypeLabelDescription
id string

name string

nickname string

avatar_url string optional

organizations ReadSelfOrganization repeated

UpdateUserRequest

FieldTypeLabelDescription
id string

@gotags: validate:"uuid4"

UpdateUserResponse

UserService

Method NameRequest TypeResponse TypeDescription
ReadSelf ReadSelfRequest ReadSelfResponse

ReadPublicProfile ReadPublicProfileRequest ReadPublicProfileResponse

UpdateUser UpdateUserRequest UpdateUserResponse

Scalar Value Types

.proto TypeNotesC++JavaPythonGoC#PHPRuby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)