diff --git a/gen/dart/lib/libs/common/v1/types.pb.dart b/gen/dart/lib/libs/common/v1/types.pb.dart index fb4331174..55df81de0 100644 --- a/gen/dart/lib/libs/common/v1/types.pb.dart +++ b/gen/dart/lib/libs/common/v1/types.pb.dart @@ -13,24 +13,26 @@ import 'dart:core' as $core; import 'package:protobuf/protobuf.dart' as $pb; -import '../../../google/protobuf/wrappers.pb.dart' as $21; +import '../../../google/protobuf/timestamp.pb.dart' as $15; -class StringArray extends $pb.GeneratedMessage { - factory StringArray({ - $core.Iterable<$21.StringValue>? strings, +export 'types.pbenum.dart'; + +class Date extends $pb.GeneratedMessage { + factory Date({ + $15.Timestamp? date, }) { final $result = create(); - if (strings != null) { - $result.strings.addAll(strings); + if (date != null) { + $result.date = date; } return $result; } - StringArray._() : super(); - factory StringArray.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); - factory StringArray.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); + Date._() : super(); + factory Date.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory Date.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); - static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'StringArray', package: const $pb.PackageName(_omitMessageNames ? '' : 'libs.common.v1'), createEmptyInstance: create) - ..pc<$21.StringValue>(1, _omitFieldNames ? '' : 'strings', $pb.PbFieldType.PM, subBuilder: $21.StringValue.create) + static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'Date', package: const $pb.PackageName(_omitMessageNames ? '' : 'libs.common.v1'), createEmptyInstance: create) + ..aOM<$15.Timestamp>(1, _omitFieldNames ? '' : 'date', subBuilder: $15.Timestamp.create) ..hasRequiredFields = false ; @@ -38,25 +40,34 @@ class StringArray extends $pb.GeneratedMessage { 'Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' 'Will be removed in next major version') - StringArray clone() => StringArray()..mergeFromMessage(this); + Date clone() => Date()..mergeFromMessage(this); @$core.Deprecated( 'Using this can add significant overhead to your binary. ' 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' 'Will be removed in next major version') - StringArray copyWith(void Function(StringArray) updates) => super.copyWith((message) => updates(message as StringArray)) as StringArray; + Date copyWith(void Function(Date) updates) => super.copyWith((message) => updates(message as Date)) as Date; $pb.BuilderInfo get info_ => _i; @$core.pragma('dart2js:noInline') - static StringArray create() => StringArray._(); - StringArray createEmptyInstance() => create(); - static $pb.PbList createRepeated() => $pb.PbList(); + static Date create() => Date._(); + Date createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); @$core.pragma('dart2js:noInline') - static StringArray getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); - static StringArray? _defaultInstance; + static Date getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static Date? _defaultInstance; + /// information more precise than date information shall be disregarded by clients + @$pb.TagNumber(1) + $15.Timestamp get date => $_getN(0); + @$pb.TagNumber(1) + set date($15.Timestamp v) { setField(1, v); } + @$pb.TagNumber(1) + $core.bool hasDate() => $_has(0); + @$pb.TagNumber(1) + void clearDate() => clearField(1); @$pb.TagNumber(1) - $core.List<$21.StringValue> get strings => $_getList(0); + $15.Timestamp ensureDate() => $_ensure(0); } diff --git a/gen/dart/lib/libs/common/v1/types.pbenum.dart b/gen/dart/lib/libs/common/v1/types.pbenum.dart index 8dd68ba7c..bdfca602b 100644 --- a/gen/dart/lib/libs/common/v1/types.pbenum.dart +++ b/gen/dart/lib/libs/common/v1/types.pbenum.dart @@ -9,3 +9,28 @@ // ignore_for_file: non_constant_identifier_names, prefer_final_fields // ignore_for_file: unnecessary_import, unnecessary_this, unused_import +import 'dart:core' as $core; + +import 'package:protobuf/protobuf.dart' as $pb; + +class Sex extends $pb.ProtobufEnum { + static const Sex SEX_UNSPECIFIED = Sex._(0, _omitEnumNames ? '' : 'SEX_UNSPECIFIED'); + static const Sex SEX_FEMALE = Sex._(1, _omitEnumNames ? '' : 'SEX_FEMALE'); + static const Sex SEX_MALE = Sex._(2, _omitEnumNames ? '' : 'SEX_MALE'); + static const Sex SEX_DIVERSE = Sex._(3, _omitEnumNames ? '' : 'SEX_DIVERSE'); + + static const $core.List values = [ + SEX_UNSPECIFIED, + SEX_FEMALE, + SEX_MALE, + SEX_DIVERSE, + ]; + + static final $core.Map<$core.int, Sex> _byValue = $pb.ProtobufEnum.initByValue(values); + static Sex? valueOf($core.int value) => _byValue[value]; + + const Sex._($core.int v, $core.String n) : super(v, n); +} + + +const _omitEnumNames = $core.bool.fromEnvironment('protobuf.omit_enum_names'); diff --git a/gen/dart/lib/libs/common/v1/types.pbjson.dart b/gen/dart/lib/libs/common/v1/types.pbjson.dart index 221786f3d..a0344a50c 100644 --- a/gen/dart/lib/libs/common/v1/types.pbjson.dart +++ b/gen/dart/lib/libs/common/v1/types.pbjson.dart @@ -13,16 +13,31 @@ import 'dart:convert' as $convert; import 'dart:core' as $core; import 'dart:typed_data' as $typed_data; -@$core.Deprecated('Use stringArrayDescriptor instead') -const StringArray$json = { - '1': 'StringArray', +@$core.Deprecated('Use sexDescriptor instead') +const Sex$json = { + '1': 'Sex', '2': [ - {'1': 'strings', '3': 1, '4': 3, '5': 11, '6': '.google.protobuf.StringValue', '10': 'strings'}, + {'1': 'SEX_UNSPECIFIED', '2': 0}, + {'1': 'SEX_FEMALE', '2': 1}, + {'1': 'SEX_MALE', '2': 2}, + {'1': 'SEX_DIVERSE', '2': 3}, ], }; -/// Descriptor for `StringArray`. Decode as a `google.protobuf.DescriptorProto`. -final $typed_data.Uint8List stringArrayDescriptor = $convert.base64Decode( - 'CgtTdHJpbmdBcnJheRI2CgdzdHJpbmdzGAEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1' - 'ZhbHVlUgdzdHJpbmdz'); +/// Descriptor for `Sex`. Decode as a `google.protobuf.EnumDescriptorProto`. +final $typed_data.Uint8List sexDescriptor = $convert.base64Decode( + 'CgNTZXgSEwoPU0VYX1VOU1BFQ0lGSUVEEAASDgoKU0VYX0ZFTUFMRRABEgwKCFNFWF9NQUxFEA' + 'ISDwoLU0VYX0RJVkVSU0UQAw=='); + +@$core.Deprecated('Use dateDescriptor instead') +const Date$json = { + '1': 'Date', + '2': [ + {'1': 'date', '3': 1, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '10': 'date'}, + ], +}; + +/// Descriptor for `Date`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List dateDescriptor = $convert.base64Decode( + 'CgREYXRlEi4KBGRhdGUYASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgRkYXRl'); diff --git a/gen/dart/lib/services/property_svc/v1/property_value_svc.pb.dart b/gen/dart/lib/services/property_svc/v1/property_value_svc.pb.dart index 09c152558..cef9a94a3 100644 --- a/gen/dart/lib/services/property_svc/v1/property_value_svc.pb.dart +++ b/gen/dart/lib/services/property_svc/v1/property_value_svc.pb.dart @@ -15,7 +15,7 @@ import 'package:protobuf/protobuf.dart' as $pb; import '../../../google/protobuf/timestamp.pb.dart' as $15; import '../../../libs/common/v1/conflict.pb.dart' as $16; -import 'types.pb.dart' as $17; +import '../../../libs/common/v1/types.pb.dart' as $18; import 'types.pbenum.dart' as $17; class SelectValueOption extends $pb.GeneratedMessage { @@ -212,7 +212,7 @@ class AttachPropertyValueRequest extends $pb.GeneratedMessage { $core.String? textValue, $core.double? numberValue, $core.bool? boolValue, - $17.Date? dateValue, + $18.Date? dateValue, $15.Timestamp? dateTimeValue, $core.String? selectValue, AttachPropertyValueRequest_MultiSelectValue? multiSelectValue, @@ -272,7 +272,7 @@ class AttachPropertyValueRequest extends $pb.GeneratedMessage { ..aOS(3, _omitFieldNames ? '' : 'textValue') ..a<$core.double>(4, _omitFieldNames ? '' : 'numberValue', $pb.PbFieldType.OD) ..aOB(5, _omitFieldNames ? '' : 'boolValue') - ..aOM<$17.Date>(6, _omitFieldNames ? '' : 'dateValue', subBuilder: $17.Date.create) + ..aOM<$18.Date>(6, _omitFieldNames ? '' : 'dateValue', subBuilder: $18.Date.create) ..aOM<$15.Timestamp>(7, _omitFieldNames ? '' : 'dateTimeValue', subBuilder: $15.Timestamp.create) ..aOS(8, _omitFieldNames ? '' : 'selectValue') ..aOM(9, _omitFieldNames ? '' : 'multiSelectValue', subBuilder: AttachPropertyValueRequest_MultiSelectValue.create) @@ -350,15 +350,15 @@ class AttachPropertyValueRequest extends $pb.GeneratedMessage { void clearBoolValue() => clearField(5); @$pb.TagNumber(6) - $17.Date get dateValue => $_getN(5); + $18.Date get dateValue => $_getN(5); @$pb.TagNumber(6) - set dateValue($17.Date v) { setField(6, v); } + set dateValue($18.Date v) { setField(6, v); } @$pb.TagNumber(6) $core.bool hasDateValue() => $_has(5); @$pb.TagNumber(6) void clearDateValue() => clearField(6); @$pb.TagNumber(6) - $17.Date ensureDateValue() => $_ensure(5); + $18.Date ensureDateValue() => $_ensure(5); @$pb.TagNumber(7) $15.Timestamp get dateTimeValue => $_getN(6); @@ -714,7 +714,7 @@ class GetAttachedPropertyValuesResponse_Value extends $pb.GeneratedMessage { $core.String? textValue, $core.double? numberValue, $core.bool? boolValue, - $17.Date? dateValue, + $18.Date? dateValue, $15.Timestamp? dateTimeValue, SelectValueOption? selectValue, MultiSelectValue? multiSelectValue, @@ -790,7 +790,7 @@ class GetAttachedPropertyValuesResponse_Value extends $pb.GeneratedMessage { ..aOS(6, _omitFieldNames ? '' : 'textValue') ..a<$core.double>(7, _omitFieldNames ? '' : 'numberValue', $pb.PbFieldType.OD) ..aOB(8, _omitFieldNames ? '' : 'boolValue') - ..aOM<$17.Date>(9, _omitFieldNames ? '' : 'dateValue', subBuilder: $17.Date.create) + ..aOM<$18.Date>(9, _omitFieldNames ? '' : 'dateValue', subBuilder: $18.Date.create) ..aOM<$15.Timestamp>(10, _omitFieldNames ? '' : 'dateTimeValue', subBuilder: $15.Timestamp.create) ..aOM(11, _omitFieldNames ? '' : 'selectValue', subBuilder: SelectValueOption.create) ..aOM(12, _omitFieldNames ? '' : 'multiSelectValue', subBuilder: MultiSelectValue.create) @@ -896,15 +896,15 @@ class GetAttachedPropertyValuesResponse_Value extends $pb.GeneratedMessage { void clearBoolValue() => clearField(8); @$pb.TagNumber(9) - $17.Date get dateValue => $_getN(8); + $18.Date get dateValue => $_getN(8); @$pb.TagNumber(9) - set dateValue($17.Date v) { setField(9, v); } + set dateValue($18.Date v) { setField(9, v); } @$pb.TagNumber(9) $core.bool hasDateValue() => $_has(8); @$pb.TagNumber(9) void clearDateValue() => clearField(9); @$pb.TagNumber(9) - $17.Date ensureDateValue() => $_ensure(8); + $18.Date ensureDateValue() => $_ensure(8); @$pb.TagNumber(10) $15.Timestamp get dateTimeValue => $_getN(9); diff --git a/gen/dart/lib/services/property_svc/v1/property_value_svc.pbjson.dart b/gen/dart/lib/services/property_svc/v1/property_value_svc.pbjson.dart index ba906d696..c47b74681 100644 --- a/gen/dart/lib/services/property_svc/v1/property_value_svc.pbjson.dart +++ b/gen/dart/lib/services/property_svc/v1/property_value_svc.pbjson.dart @@ -50,7 +50,7 @@ const AttachPropertyValueRequest$json = { {'1': 'text_value', '3': 3, '4': 1, '5': 9, '9': 0, '10': 'textValue'}, {'1': 'number_value', '3': 4, '4': 1, '5': 1, '9': 0, '10': 'numberValue'}, {'1': 'bool_value', '3': 5, '4': 1, '5': 8, '9': 0, '10': 'boolValue'}, - {'1': 'date_value', '3': 6, '4': 1, '5': 11, '6': '.services.property_svc.v1.Date', '9': 0, '10': 'dateValue'}, + {'1': 'date_value', '3': 6, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateValue'}, {'1': 'date_time_value', '3': 7, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '9': 0, '10': 'dateTimeValue'}, {'1': 'select_value', '3': 8, '4': 1, '5': 9, '9': 0, '10': 'selectValue'}, {'1': 'multi_select_value', '3': 9, '4': 1, '5': 11, '6': '.services.property_svc.v1.AttachPropertyValueRequest.MultiSelectValue', '9': 0, '10': 'multiSelectValue'}, @@ -77,15 +77,15 @@ final $typed_data.Uint8List attachPropertyValueRequestDescriptor = $convert.base 'ChpBdHRhY2hQcm9wZXJ0eVZhbHVlUmVxdWVzdBIdCgpzdWJqZWN0X2lkGAEgASgJUglzdWJqZW' 'N0SWQSHwoLcHJvcGVydHlfaWQYAiABKAlSCnByb3BlcnR5SWQSHwoKdGV4dF92YWx1ZRgDIAEo' 'CUgAUgl0ZXh0VmFsdWUSIwoMbnVtYmVyX3ZhbHVlGAQgASgBSABSC251bWJlclZhbHVlEh8KCm' - 'Jvb2xfdmFsdWUYBSABKAhIAFIJYm9vbFZhbHVlEj8KCmRhdGVfdmFsdWUYBiABKAsyHi5zZXJ2' - 'aWNlcy5wcm9wZXJ0eV9zdmMudjEuRGF0ZUgAUglkYXRlVmFsdWUSRAoPZGF0ZV90aW1lX3ZhbH' - 'VlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg1kYXRlVGltZVZhbHVlEiMK' - 'DHNlbGVjdF92YWx1ZRgIIAEoCUgAUgtzZWxlY3RWYWx1ZRJ1ChJtdWx0aV9zZWxlY3RfdmFsdW' - 'UYCSABKAsyRS5zZXJ2aWNlcy5wcm9wZXJ0eV9zdmMudjEuQXR0YWNoUHJvcGVydHlWYWx1ZVJl' - 'cXVlc3QuTXVsdGlTZWxlY3RWYWx1ZUgAUhBtdWx0aVNlbGVjdFZhbHVlEiUKC2NvbnNpc3Rlbm' - 'N5GAogASgJSAFSC2NvbnNpc3RlbmN5iAEBGmkKEE11bHRpU2VsZWN0VmFsdWUSIwoNc2VsZWN0' - 'X3ZhbHVlcxgBIAMoCVIMc2VsZWN0VmFsdWVzEjAKFHJlbW92ZV9zZWxlY3RfdmFsdWVzGAIgAy' - 'gJUhJyZW1vdmVTZWxlY3RWYWx1ZXNCBwoFdmFsdWVCDgoMX2NvbnNpc3RlbmN5'); + 'Jvb2xfdmFsdWUYBSABKAhIAFIJYm9vbFZhbHVlEjUKCmRhdGVfdmFsdWUYBiABKAsyFC5saWJz' + 'LmNvbW1vbi52MS5EYXRlSABSCWRhdGVWYWx1ZRJECg9kYXRlX3RpbWVfdmFsdWUYByABKAsyGi' + '5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSABSDWRhdGVUaW1lVmFsdWUSIwoMc2VsZWN0X3Zh' + 'bHVlGAggASgJSABSC3NlbGVjdFZhbHVlEnUKEm11bHRpX3NlbGVjdF92YWx1ZRgJIAEoCzJFLn' + 'NlcnZpY2VzLnByb3BlcnR5X3N2Yy52MS5BdHRhY2hQcm9wZXJ0eVZhbHVlUmVxdWVzdC5NdWx0' + 'aVNlbGVjdFZhbHVlSABSEG11bHRpU2VsZWN0VmFsdWUSJQoLY29uc2lzdGVuY3kYCiABKAlIAV' + 'ILY29uc2lzdGVuY3mIAQEaaQoQTXVsdGlTZWxlY3RWYWx1ZRIjCg1zZWxlY3RfdmFsdWVzGAEg' + 'AygJUgxzZWxlY3RWYWx1ZXMSMAoUcmVtb3ZlX3NlbGVjdF92YWx1ZXMYAiADKAlSEnJlbW92ZV' + 'NlbGVjdFZhbHVlc0IHCgV2YWx1ZUIOCgxfY29uc2lzdGVuY3k='); @$core.Deprecated('Use attachPropertyValueResponseDescriptor instead') const AttachPropertyValueResponse$json = { @@ -184,7 +184,7 @@ const GetAttachedPropertyValuesResponse_Value$json = { {'1': 'text_value', '3': 6, '4': 1, '5': 9, '9': 0, '10': 'textValue'}, {'1': 'number_value', '3': 7, '4': 1, '5': 1, '9': 0, '10': 'numberValue'}, {'1': 'bool_value', '3': 8, '4': 1, '5': 8, '9': 0, '10': 'boolValue'}, - {'1': 'date_value', '3': 9, '4': 1, '5': 11, '6': '.services.property_svc.v1.Date', '9': 0, '10': 'dateValue'}, + {'1': 'date_value', '3': 9, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateValue'}, {'1': 'date_time_value', '3': 10, '4': 1, '5': 11, '6': '.google.protobuf.Timestamp', '9': 0, '10': 'dateTimeValue'}, {'1': 'select_value', '3': 11, '4': 1, '5': 11, '6': '.services.property_svc.v1.SelectValueOption', '9': 0, '10': 'selectValue'}, {'1': 'multi_select_value', '3': 12, '4': 1, '5': 11, '6': '.services.property_svc.v1.MultiSelectValue', '9': 0, '10': 'multiSelectValue'}, @@ -202,19 +202,18 @@ const GetAttachedPropertyValuesResponse_Value$json = { final $typed_data.Uint8List getAttachedPropertyValuesResponseDescriptor = $convert.base64Decode( 'CiFHZXRBdHRhY2hlZFByb3BlcnR5VmFsdWVzUmVzcG9uc2USWQoGdmFsdWVzGAEgAygLMkEuc2' 'VydmljZXMucHJvcGVydHlfc3ZjLnYxLkdldEF0dGFjaGVkUHJvcGVydHlWYWx1ZXNSZXNwb25z' - 'ZS5WYWx1ZVIGdmFsdWVzGvgFCgVWYWx1ZRIfCgtwcm9wZXJ0eV9pZBgBIAEoCVIKcHJvcGVydH' + 'ZS5WYWx1ZVIGdmFsdWVzGu4FCgVWYWx1ZRIfCgtwcm9wZXJ0eV9pZBgBIAEoCVIKcHJvcGVydH' 'lJZBJCCgpmaWVsZF90eXBlGAIgASgOMiMuc2VydmljZXMucHJvcGVydHlfc3ZjLnYxLkZpZWxk' 'VHlwZVIJZmllbGRUeXBlEhIKBG5hbWUYAyABKAlSBG5hbWUSJQoLZGVzY3JpcHRpb24YBCABKA' 'lIAVILZGVzY3JpcHRpb26IAQESHwoLaXNfYXJjaGl2ZWQYBSABKAhSCmlzQXJjaGl2ZWQSHwoK' 'dGV4dF92YWx1ZRgGIAEoCUgAUgl0ZXh0VmFsdWUSIwoMbnVtYmVyX3ZhbHVlGAcgASgBSABSC2' - '51bWJlclZhbHVlEh8KCmJvb2xfdmFsdWUYCCABKAhIAFIJYm9vbFZhbHVlEj8KCmRhdGVfdmFs' - 'dWUYCSABKAsyHi5zZXJ2aWNlcy5wcm9wZXJ0eV9zdmMudjEuRGF0ZUgAUglkYXRlVmFsdWUSRA' - 'oPZGF0ZV90aW1lX3ZhbHVlGAogASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg1k' - 'YXRlVGltZVZhbHVlElAKDHNlbGVjdF92YWx1ZRgLIAEoCzIrLnNlcnZpY2VzLnByb3BlcnR5X3' - 'N2Yy52MS5TZWxlY3RWYWx1ZU9wdGlvbkgAUgtzZWxlY3RWYWx1ZRJaChJtdWx0aV9zZWxlY3Rf' - 'dmFsdWUYDCABKAsyKi5zZXJ2aWNlcy5wcm9wZXJ0eV9zdmMudjEuTXVsdGlTZWxlY3RWYWx1ZU' - 'gAUhBtdWx0aVNlbGVjdFZhbHVlEjEKFHByb3BlcnR5X2NvbnNpc3RlbmN5GA0gASgJUhNwcm9w' - 'ZXJ0eUNvbnNpc3RlbmN5EjAKEXZhbHVlX2NvbnNpc3RlbmN5GA4gASgJSAJSEHZhbHVlQ29uc2' - 'lzdGVuY3mIAQFCBwoFdmFsdWVCDgoMX2Rlc2NyaXB0aW9uQhQKEl92YWx1ZV9jb25zaXN0ZW5j' - 'eQ=='); + '51bWJlclZhbHVlEh8KCmJvb2xfdmFsdWUYCCABKAhIAFIJYm9vbFZhbHVlEjUKCmRhdGVfdmFs' + 'dWUYCSABKAsyFC5saWJzLmNvbW1vbi52MS5EYXRlSABSCWRhdGVWYWx1ZRJECg9kYXRlX3RpbW' + 'VfdmFsdWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSABSDWRhdGVUaW1lVmFs' + 'dWUSUAoMc2VsZWN0X3ZhbHVlGAsgASgLMisuc2VydmljZXMucHJvcGVydHlfc3ZjLnYxLlNlbG' + 'VjdFZhbHVlT3B0aW9uSABSC3NlbGVjdFZhbHVlEloKEm11bHRpX3NlbGVjdF92YWx1ZRgMIAEo' + 'CzIqLnNlcnZpY2VzLnByb3BlcnR5X3N2Yy52MS5NdWx0aVNlbGVjdFZhbHVlSABSEG11bHRpU2' + 'VsZWN0VmFsdWUSMQoUcHJvcGVydHlfY29uc2lzdGVuY3kYDSABKAlSE3Byb3BlcnR5Q29uc2lz' + 'dGVuY3kSMAoRdmFsdWVfY29uc2lzdGVuY3kYDiABKAlIAlIQdmFsdWVDb25zaXN0ZW5jeYgBAU' + 'IHCgV2YWx1ZUIOCgxfZGVzY3JpcHRpb25CFAoSX3ZhbHVlX2NvbnNpc3RlbmN5'); diff --git a/gen/dart/lib/services/tasks_svc/v1/patient_svc.pb.dart b/gen/dart/lib/services/tasks_svc/v1/patient_svc.pb.dart index cf240d200..6307bc3c2 100644 --- a/gen/dart/lib/services/tasks_svc/v1/patient_svc.pb.dart +++ b/gen/dart/lib/services/tasks_svc/v1/patient_svc.pb.dart @@ -14,12 +14,16 @@ import 'dart:core' as $core; import 'package:protobuf/protobuf.dart' as $pb; import '../../../libs/common/v1/conflict.pb.dart' as $16; -import 'types.pbenum.dart' as $18; +import '../../../libs/common/v1/types.pb.dart' as $18; +import '../../../libs/common/v1/types.pbenum.dart' as $18; +import 'types.pbenum.dart' as $19; class CreatePatientRequest extends $pb.GeneratedMessage { factory CreatePatientRequest({ $core.String? humanReadableIdentifier, $core.String? notes, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (humanReadableIdentifier != null) { @@ -28,6 +32,12 @@ class CreatePatientRequest extends $pb.GeneratedMessage { if (notes != null) { $result.notes = notes; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } CreatePatientRequest._() : super(); @@ -37,6 +47,8 @@ class CreatePatientRequest extends $pb.GeneratedMessage { static final $pb.BuilderInfo _i = $pb.BuilderInfo(_omitMessageNames ? '' : 'CreatePatientRequest', package: const $pb.PackageName(_omitMessageNames ? '' : 'services.tasks_svc.v1'), createEmptyInstance: create) ..aOS(1, _omitFieldNames ? '' : 'humanReadableIdentifier') ..aOS(2, _omitFieldNames ? '' : 'notes') + ..e<$18.Sex>(3, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(4, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -78,6 +90,26 @@ class CreatePatientRequest extends $pb.GeneratedMessage { $core.bool hasNotes() => $_has(1); @$pb.TagNumber(2) void clearNotes() => clearField(2); + + @$pb.TagNumber(3) + $18.Sex get sex => $_getN(2); + @$pb.TagNumber(3) + set sex($18.Sex v) { setField(3, v); } + @$pb.TagNumber(3) + $core.bool hasSex() => $_has(2); + @$pb.TagNumber(3) + void clearSex() => clearField(3); + + @$pb.TagNumber(4) + $18.Date get dateOfBirth => $_getN(3); + @$pb.TagNumber(4) + set dateOfBirth($18.Date v) { setField(4, v); } + @$pb.TagNumber(4) + $core.bool hasDateOfBirth() => $_has(3); + @$pb.TagNumber(4) + void clearDateOfBirth() => clearField(4); + @$pb.TagNumber(4) + $18.Date ensureDateOfBirth() => $_ensure(3); } class CreatePatientResponse extends $pb.GeneratedMessage { @@ -372,6 +404,8 @@ class GetPatientResponse extends $pb.GeneratedMessage { GetPatientResponse_Room? room, GetPatientResponse_Bed? bed, $core.String? consistency, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (id != null) { @@ -392,6 +426,12 @@ class GetPatientResponse extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } GetPatientResponse._() : super(); @@ -405,6 +445,8 @@ class GetPatientResponse extends $pb.GeneratedMessage { ..aOM(7, _omitFieldNames ? '' : 'room', subBuilder: GetPatientResponse_Room.create) ..aOM(8, _omitFieldNames ? '' : 'bed', subBuilder: GetPatientResponse_Bed.create) ..aOS(9, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(10, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(11, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -486,6 +528,26 @@ class GetPatientResponse extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(5); @$pb.TagNumber(9) void clearConsistency() => clearField(9); + + @$pb.TagNumber(10) + $18.Sex get sex => $_getN(6); + @$pb.TagNumber(10) + set sex($18.Sex v) { setField(10, v); } + @$pb.TagNumber(10) + $core.bool hasSex() => $_has(6); + @$pb.TagNumber(10) + void clearSex() => clearField(10); + + @$pb.TagNumber(11) + $18.Date get dateOfBirth => $_getN(7); + @$pb.TagNumber(11) + set dateOfBirth($18.Date v) { setField(11, v); } + @$pb.TagNumber(11) + $core.bool hasDateOfBirth() => $_has(7); + @$pb.TagNumber(11) + void clearDateOfBirth() => clearField(11); + @$pb.TagNumber(11) + $18.Date ensureDateOfBirth() => $_ensure(7); } class GetPatientByBedRequest extends $pb.GeneratedMessage { @@ -545,6 +607,8 @@ class GetPatientByBedResponse extends $pb.GeneratedMessage { $core.String? notes, $core.String? bedId, $core.String? consistency, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (id != null) { @@ -562,6 +626,12 @@ class GetPatientByBedResponse extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } GetPatientByBedResponse._() : super(); @@ -574,6 +644,8 @@ class GetPatientByBedResponse extends $pb.GeneratedMessage { ..aOS(3, _omitFieldNames ? '' : 'notes') ..aOS(4, _omitFieldNames ? '' : 'bedId') ..aOS(5, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(6, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(7, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -642,6 +714,26 @@ class GetPatientByBedResponse extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(4); @$pb.TagNumber(5) void clearConsistency() => clearField(5); + + @$pb.TagNumber(6) + $18.Sex get sex => $_getN(5); + @$pb.TagNumber(6) + set sex($18.Sex v) { setField(6, v); } + @$pb.TagNumber(6) + $core.bool hasSex() => $_has(5); + @$pb.TagNumber(6) + void clearSex() => clearField(6); + + @$pb.TagNumber(7) + $18.Date get dateOfBirth => $_getN(6); + @$pb.TagNumber(7) + set dateOfBirth($18.Date v) { setField(7, v); } + @$pb.TagNumber(7) + $core.bool hasDateOfBirth() => $_has(6); + @$pb.TagNumber(7) + void clearDateOfBirth() => clearField(7); + @$pb.TagNumber(7) + $18.Date ensureDateOfBirth() => $_ensure(6); } class GetPatientsByWardRequest extends $pb.GeneratedMessage { @@ -701,6 +793,8 @@ class GetPatientsByWardResponse_Patient extends $pb.GeneratedMessage { $core.String? notes, $core.String? bedId, $core.String? consistency, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (id != null) { @@ -718,6 +812,12 @@ class GetPatientsByWardResponse_Patient extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } GetPatientsByWardResponse_Patient._() : super(); @@ -730,6 +830,8 @@ class GetPatientsByWardResponse_Patient extends $pb.GeneratedMessage { ..aOS(3, _omitFieldNames ? '' : 'notes') ..aOS(4, _omitFieldNames ? '' : 'bedId') ..aOS(5, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(6, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(7, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -798,6 +900,26 @@ class GetPatientsByWardResponse_Patient extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(4); @$pb.TagNumber(5) void clearConsistency() => clearField(5); + + @$pb.TagNumber(6) + $18.Sex get sex => $_getN(5); + @$pb.TagNumber(6) + set sex($18.Sex v) { setField(6, v); } + @$pb.TagNumber(6) + $core.bool hasSex() => $_has(5); + @$pb.TagNumber(6) + void clearSex() => clearField(6); + + @$pb.TagNumber(7) + $18.Date get dateOfBirth => $_getN(6); + @$pb.TagNumber(7) + set dateOfBirth($18.Date v) { setField(7, v); } + @$pb.TagNumber(7) + $core.bool hasDateOfBirth() => $_has(6); + @$pb.TagNumber(7) + void clearDateOfBirth() => clearField(7); + @$pb.TagNumber(7) + $18.Date ensureDateOfBirth() => $_ensure(6); } class GetPatientsByWardResponse extends $pb.GeneratedMessage { @@ -899,6 +1021,7 @@ class GetPatientAssignmentByWardResponse_Room_Bed_Patient extends $pb.GeneratedM $core.String? id, $core.String? name, $core.String? consistency, + $18.Sex? sex, }) { final $result = create(); if (id != null) { @@ -910,6 +1033,9 @@ class GetPatientAssignmentByWardResponse_Room_Bed_Patient extends $pb.GeneratedM if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } return $result; } GetPatientAssignmentByWardResponse_Room_Bed_Patient._() : super(); @@ -920,6 +1046,7 @@ class GetPatientAssignmentByWardResponse_Room_Bed_Patient extends $pb.GeneratedM ..aOS(1, _omitFieldNames ? '' : 'id') ..aOS(2, _omitFieldNames ? '' : 'name') ..aOS(3, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(4, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) ..hasRequiredFields = false ; @@ -970,6 +1097,15 @@ class GetPatientAssignmentByWardResponse_Room_Bed_Patient extends $pb.GeneratedM $core.bool hasConsistency() => $_has(2); @$pb.TagNumber(3) void clearConsistency() => clearField(3); + + @$pb.TagNumber(4) + $18.Sex get sex => $_getN(3); + @$pb.TagNumber(4) + set sex($18.Sex v) { setField(4, v); } + @$pb.TagNumber(4) + $core.bool hasSex() => $_has(3); + @$pb.TagNumber(4) + void clearSex() => clearField(4); } class GetPatientAssignmentByWardResponse_Room_Bed extends $pb.GeneratedMessage { @@ -1499,7 +1635,7 @@ class GetPatientDetailsResponse_Task extends $pb.GeneratedMessage { $core.String? id, $core.String? name, $core.String? description, - $18.TaskStatus? status, + $19.TaskStatus? status, $core.String? assignedUserId, $core.String? patientId, $core.bool? public, @@ -1544,7 +1680,7 @@ class GetPatientDetailsResponse_Task extends $pb.GeneratedMessage { ..aOS(1, _omitFieldNames ? '' : 'id') ..aOS(2, _omitFieldNames ? '' : 'name') ..aOS(3, _omitFieldNames ? '' : 'description') - ..e<$18.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOS(5, _omitFieldNames ? '' : 'assignedUserId') ..aOS(6, _omitFieldNames ? '' : 'patientId') ..aOB(7, _omitFieldNames ? '' : 'public') @@ -1602,9 +1738,9 @@ class GetPatientDetailsResponse_Task extends $pb.GeneratedMessage { void clearDescription() => clearField(3); @$pb.TagNumber(4) - $18.TaskStatus get status => $_getN(3); + $19.TaskStatus get status => $_getN(3); @$pb.TagNumber(4) - set status($18.TaskStatus v) { setField(4, v); } + set status($19.TaskStatus v) { setField(4, v); } @$pb.TagNumber(4) $core.bool hasStatus() => $_has(3); @$pb.TagNumber(4) @@ -1660,6 +1796,8 @@ class GetPatientDetailsResponse extends $pb.GeneratedMessage { GetPatientDetailsResponse_Bed? bed, $core.bool? isDischarged, $core.String? consistency, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (id != null) { @@ -1686,6 +1824,12 @@ class GetPatientDetailsResponse extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } GetPatientDetailsResponse._() : super(); @@ -1701,6 +1845,8 @@ class GetPatientDetailsResponse extends $pb.GeneratedMessage { ..aOM(6, _omitFieldNames ? '' : 'bed', subBuilder: GetPatientDetailsResponse_Bed.create) ..aOB(7, _omitFieldNames ? '' : 'isDischarged') ..aOS(8, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(9, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(10, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -1794,6 +1940,26 @@ class GetPatientDetailsResponse extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(7); @$pb.TagNumber(8) void clearConsistency() => clearField(8); + + @$pb.TagNumber(9) + $18.Sex get sex => $_getN(8); + @$pb.TagNumber(9) + set sex($18.Sex v) { setField(9, v); } + @$pb.TagNumber(9) + $core.bool hasSex() => $_has(8); + @$pb.TagNumber(9) + void clearSex() => clearField(9); + + @$pb.TagNumber(10) + $18.Date get dateOfBirth => $_getN(9); + @$pb.TagNumber(10) + set dateOfBirth($18.Date v) { setField(10, v); } + @$pb.TagNumber(10) + $core.bool hasDateOfBirth() => $_has(9); + @$pb.TagNumber(10) + void clearDateOfBirth() => clearField(10); + @$pb.TagNumber(10) + $18.Date ensureDateOfBirth() => $_ensure(9); } class GetPatientListRequest extends $pb.GeneratedMessage { @@ -2025,6 +2191,8 @@ class GetPatientListResponse_Patient extends $pb.GeneratedMessage { $core.String? notes, $core.Iterable? tasks, $core.String? consistency, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (id != null) { @@ -2048,6 +2216,12 @@ class GetPatientListResponse_Patient extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } GetPatientListResponse_Patient._() : super(); @@ -2062,6 +2236,8 @@ class GetPatientListResponse_Patient extends $pb.GeneratedMessage { ..aOS(5, _omitFieldNames ? '' : 'notes') ..pc(6, _omitFieldNames ? '' : 'tasks', $pb.PbFieldType.PM, subBuilder: GetPatientListResponse_Task.create) ..aOS(7, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(8, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(9, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -2146,6 +2322,26 @@ class GetPatientListResponse_Patient extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(6); @$pb.TagNumber(7) void clearConsistency() => clearField(7); + + @$pb.TagNumber(8) + $18.Sex get sex => $_getN(7); + @$pb.TagNumber(8) + set sex($18.Sex v) { setField(8, v); } + @$pb.TagNumber(8) + $core.bool hasSex() => $_has(7); + @$pb.TagNumber(8) + void clearSex() => clearField(8); + + @$pb.TagNumber(9) + $18.Date get dateOfBirth => $_getN(8); + @$pb.TagNumber(9) + set dateOfBirth($18.Date v) { setField(9, v); } + @$pb.TagNumber(9) + $core.bool hasDateOfBirth() => $_has(8); + @$pb.TagNumber(9) + void clearDateOfBirth() => clearField(9); + @$pb.TagNumber(9) + $18.Date ensureDateOfBirth() => $_ensure(8); } class GetPatientListResponse_Task_SubTask extends $pb.GeneratedMessage { @@ -2231,7 +2427,7 @@ class GetPatientListResponse_Task extends $pb.GeneratedMessage { $core.String? id, $core.String? name, $core.String? description, - $18.TaskStatus? status, + $19.TaskStatus? status, $core.String? assignedUserId, $core.String? patientId, $core.bool? public, @@ -2276,7 +2472,7 @@ class GetPatientListResponse_Task extends $pb.GeneratedMessage { ..aOS(1, _omitFieldNames ? '' : 'id') ..aOS(2, _omitFieldNames ? '' : 'name') ..aOS(3, _omitFieldNames ? '' : 'description') - ..e<$18.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOS(5, _omitFieldNames ? '' : 'assignedUserId') ..aOS(6, _omitFieldNames ? '' : 'patientId') ..aOB(7, _omitFieldNames ? '' : 'public') @@ -2334,9 +2530,9 @@ class GetPatientListResponse_Task extends $pb.GeneratedMessage { void clearDescription() => clearField(3); @$pb.TagNumber(4) - $18.TaskStatus get status => $_getN(3); + $19.TaskStatus get status => $_getN(3); @$pb.TagNumber(4) - set status($18.TaskStatus v) { setField(4, v); } + set status($19.TaskStatus v) { setField(4, v); } @$pb.TagNumber(4) $core.bool hasStatus() => $_has(3); @$pb.TagNumber(4) @@ -2651,6 +2847,7 @@ class GetRecentPatientsResponse_Patient extends $pb.GeneratedMessage { GetRecentPatientsResponse_Room? room, GetRecentPatientsResponse_Bed? bed, $core.String? consistency, + $18.Sex? sex, }) { final $result = create(); if (id != null) { @@ -2668,6 +2865,9 @@ class GetRecentPatientsResponse_Patient extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } return $result; } GetRecentPatientsResponse_Patient._() : super(); @@ -2680,6 +2880,7 @@ class GetRecentPatientsResponse_Patient extends $pb.GeneratedMessage { ..aOM(3, _omitFieldNames ? '' : 'room', subBuilder: GetRecentPatientsResponse_Room.create) ..aOM(4, _omitFieldNames ? '' : 'bed', subBuilder: GetRecentPatientsResponse_Bed.create) ..aOS(5, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(6, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) ..hasRequiredFields = false ; @@ -2752,6 +2953,15 @@ class GetRecentPatientsResponse_Patient extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(4); @$pb.TagNumber(5) void clearConsistency() => clearField(5); + + @$pb.TagNumber(6) + $18.Sex get sex => $_getN(5); + @$pb.TagNumber(6) + set sex($18.Sex v) { setField(6, v); } + @$pb.TagNumber(6) + $core.bool hasSex() => $_has(5); + @$pb.TagNumber(6) + void clearSex() => clearField(6); } class GetRecentPatientsResponse extends $pb.GeneratedMessage { @@ -2804,6 +3014,8 @@ class UpdatePatientRequest extends $pb.GeneratedMessage { $core.String? humanReadableIdentifier, $core.String? notes, $core.String? consistency, + $18.Sex? sex, + $18.Date? dateOfBirth, }) { final $result = create(); if (id != null) { @@ -2818,6 +3030,12 @@ class UpdatePatientRequest extends $pb.GeneratedMessage { if (consistency != null) { $result.consistency = consistency; } + if (sex != null) { + $result.sex = sex; + } + if (dateOfBirth != null) { + $result.dateOfBirth = dateOfBirth; + } return $result; } UpdatePatientRequest._() : super(); @@ -2829,6 +3047,8 @@ class UpdatePatientRequest extends $pb.GeneratedMessage { ..aOS(2, _omitFieldNames ? '' : 'humanReadableIdentifier') ..aOS(3, _omitFieldNames ? '' : 'notes') ..aOS(4, _omitFieldNames ? '' : 'consistency') + ..e<$18.Sex>(5, _omitFieldNames ? '' : 'sex', $pb.PbFieldType.OE, defaultOrMaker: $18.Sex.SEX_UNSPECIFIED, valueOf: $18.Sex.valueOf, enumValues: $18.Sex.values) + ..aOM<$18.Date>(6, _omitFieldNames ? '' : 'dateOfBirth', subBuilder: $18.Date.create) ..hasRequiredFields = false ; @@ -2888,6 +3108,26 @@ class UpdatePatientRequest extends $pb.GeneratedMessage { $core.bool hasConsistency() => $_has(3); @$pb.TagNumber(4) void clearConsistency() => clearField(4); + + @$pb.TagNumber(5) + $18.Sex get sex => $_getN(4); + @$pb.TagNumber(5) + set sex($18.Sex v) { setField(5, v); } + @$pb.TagNumber(5) + $core.bool hasSex() => $_has(4); + @$pb.TagNumber(5) + void clearSex() => clearField(5); + + @$pb.TagNumber(6) + $18.Date get dateOfBirth => $_getN(5); + @$pb.TagNumber(6) + set dateOfBirth($18.Date v) { setField(6, v); } + @$pb.TagNumber(6) + $core.bool hasDateOfBirth() => $_has(5); + @$pb.TagNumber(6) + void clearDateOfBirth() => clearField(6); + @$pb.TagNumber(6) + $18.Date ensureDateOfBirth() => $_ensure(5); } class UpdatePatientResponse extends $pb.GeneratedMessage { diff --git a/gen/dart/lib/services/tasks_svc/v1/patient_svc.pbjson.dart b/gen/dart/lib/services/tasks_svc/v1/patient_svc.pbjson.dart index 6cd2bc537..89b02ee13 100644 --- a/gen/dart/lib/services/tasks_svc/v1/patient_svc.pbjson.dart +++ b/gen/dart/lib/services/tasks_svc/v1/patient_svc.pbjson.dart @@ -19,17 +19,23 @@ const CreatePatientRequest$json = { '2': [ {'1': 'human_readable_identifier', '3': 1, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, {'1': 'notes', '3': 2, '4': 1, '5': 9, '9': 0, '10': 'notes', '17': true}, + {'1': 'sex', '3': 3, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '9': 1, '10': 'sex', '17': true}, + {'1': 'date_of_birth', '3': 4, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 2, '10': 'dateOfBirth', '17': true}, ], '8': [ {'1': '_notes'}, + {'1': '_sex'}, + {'1': '_date_of_birth'}, ], }; /// Descriptor for `CreatePatientRequest`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List createPatientRequestDescriptor = $convert.base64Decode( 'ChRDcmVhdGVQYXRpZW50UmVxdWVzdBI6ChlodW1hbl9yZWFkYWJsZV9pZGVudGlmaWVyGAEgAS' - 'gJUhdodW1hblJlYWRhYmxlSWRlbnRpZmllchIZCgVub3RlcxgCIAEoCUgAUgVub3Rlc4gBAUII' - 'CgZfbm90ZXM='); + 'gJUhdodW1hblJlYWRhYmxlSWRlbnRpZmllchIZCgVub3RlcxgCIAEoCUgAUgVub3Rlc4gBARIq' + 'CgNzZXgYAyABKA4yEy5saWJzLmNvbW1vbi52MS5TZXhIAVIDc2V4iAEBEj0KDWRhdGVfb2ZfYm' + 'lydGgYBCABKAsyFC5saWJzLmNvbW1vbi52MS5EYXRlSAJSC2RhdGVPZkJpcnRoiAEBQggKBl9u' + 'b3Rlc0IGCgRfc2V4QhAKDl9kYXRlX29mX2JpcnRo'); @$core.Deprecated('Use createPatientResponseDescriptor instead') const CreatePatientResponse$json = { @@ -64,12 +70,15 @@ const GetPatientResponse$json = { {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, {'1': 'notes', '3': 3, '4': 1, '5': 9, '10': 'notes'}, - {'1': 'room', '3': 7, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientResponse.Room', '9': 0, '10': 'room', '17': true}, - {'1': 'bed', '3': 8, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientResponse.Bed', '9': 1, '10': 'bed', '17': true}, + {'1': 'sex', '3': 10, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, + {'1': 'date_of_birth', '3': 11, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateOfBirth', '17': true}, + {'1': 'room', '3': 7, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientResponse.Room', '9': 1, '10': 'room', '17': true}, + {'1': 'bed', '3': 8, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientResponse.Bed', '9': 2, '10': 'bed', '17': true}, {'1': 'consistency', '3': 9, '4': 1, '5': 9, '10': 'consistency'}, ], '3': [GetPatientResponse_Room$json, GetPatientResponse_Bed$json], '8': [ + {'1': '_date_of_birth'}, {'1': '_room'}, {'1': '_bed'}, ], @@ -100,13 +109,16 @@ const GetPatientResponse_Bed$json = { final $typed_data.Uint8List getPatientResponseDescriptor = $convert.base64Decode( 'ChJHZXRQYXRpZW50UmVzcG9uc2USDgoCaWQYASABKAlSAmlkEjoKGWh1bWFuX3JlYWRhYmxlX2' 'lkZW50aWZpZXIYAiABKAlSF2h1bWFuUmVhZGFibGVJZGVudGlmaWVyEhQKBW5vdGVzGAMgASgJ' - 'UgVub3RlcxJHCgRyb29tGAcgASgLMi4uc2VydmljZXMudGFza3Nfc3ZjLnYxLkdldFBhdGllbn' - 'RSZXNwb25zZS5Sb29tSABSBHJvb22IAQESRAoDYmVkGAggASgLMi0uc2VydmljZXMudGFza3Nf' - 'c3ZjLnYxLkdldFBhdGllbnRSZXNwb25zZS5CZWRIAVIDYmVkiAEBEiAKC2NvbnNpc3RlbmN5GA' - 'kgASgJUgtjb25zaXN0ZW5jeRplCgRSb29tEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJ' - 'UgRuYW1lEhcKB3dhcmRfaWQYAyABKAlSBndhcmRJZBIgCgtjb25zaXN0ZW5jeRgEIAEoCVILY2' - '9uc2lzdGVuY3kaSwoDQmVkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEiAK' - 'C2NvbnNpc3RlbmN5GAMgASgJUgtjb25zaXN0ZW5jeUIHCgVfcm9vbUIGCgRfYmVk'); + 'UgVub3RlcxIlCgNzZXgYCiABKA4yEy5saWJzLmNvbW1vbi52MS5TZXhSA3NleBI9Cg1kYXRlX2' + '9mX2JpcnRoGAsgASgLMhQubGlicy5jb21tb24udjEuRGF0ZUgAUgtkYXRlT2ZCaXJ0aIgBARJH' + 'CgRyb29tGAcgASgLMi4uc2VydmljZXMudGFza3Nfc3ZjLnYxLkdldFBhdGllbnRSZXNwb25zZS' + '5Sb29tSAFSBHJvb22IAQESRAoDYmVkGAggASgLMi0uc2VydmljZXMudGFza3Nfc3ZjLnYxLkdl' + 'dFBhdGllbnRSZXNwb25zZS5CZWRIAlIDYmVkiAEBEiAKC2NvbnNpc3RlbmN5GAkgASgJUgtjb2' + '5zaXN0ZW5jeRplCgRSb29tEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhcK' + 'B3dhcmRfaWQYAyABKAlSBndhcmRJZBIgCgtjb25zaXN0ZW5jeRgEIAEoCVILY29uc2lzdGVuY3' + 'kaSwoDQmVkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEiAKC2NvbnNpc3Rl' + 'bmN5GAMgASgJUgtjb25zaXN0ZW5jeUIQCg5fZGF0ZV9vZl9iaXJ0aEIHCgVfcm9vbUIGCgRfYm' + 'Vk'); @$core.Deprecated('Use getPatientByBedRequestDescriptor instead') const GetPatientByBedRequest$json = { @@ -127,17 +139,24 @@ const GetPatientByBedResponse$json = { {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, {'1': 'notes', '3': 3, '4': 1, '5': 9, '10': 'notes'}, + {'1': 'sex', '3': 6, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, + {'1': 'date_of_birth', '3': 7, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateOfBirth', '17': true}, {'1': 'bed_id', '3': 4, '4': 1, '5': 9, '10': 'bedId'}, {'1': 'consistency', '3': 5, '4': 1, '5': 9, '10': 'consistency'}, ], + '8': [ + {'1': '_date_of_birth'}, + ], }; /// Descriptor for `GetPatientByBedResponse`. Decode as a `google.protobuf.DescriptorProto`. final $typed_data.Uint8List getPatientByBedResponseDescriptor = $convert.base64Decode( 'ChdHZXRQYXRpZW50QnlCZWRSZXNwb25zZRIOCgJpZBgBIAEoCVICaWQSOgoZaHVtYW5fcmVhZG' 'FibGVfaWRlbnRpZmllchgCIAEoCVIXaHVtYW5SZWFkYWJsZUlkZW50aWZpZXISFAoFbm90ZXMY' - 'AyABKAlSBW5vdGVzEhUKBmJlZF9pZBgEIAEoCVIFYmVkSWQSIAoLY29uc2lzdGVuY3kYBSABKA' - 'lSC2NvbnNpc3RlbmN5'); + 'AyABKAlSBW5vdGVzEiUKA3NleBgGIAEoDjITLmxpYnMuY29tbW9uLnYxLlNleFIDc2V4Ej0KDW' + 'RhdGVfb2ZfYmlydGgYByABKAsyFC5saWJzLmNvbW1vbi52MS5EYXRlSABSC2RhdGVPZkJpcnRo' + 'iAEBEhUKBmJlZF9pZBgEIAEoCVIFYmVkSWQSIAoLY29uc2lzdGVuY3kYBSABKAlSC2NvbnNpc3' + 'RlbmN5QhAKDl9kYXRlX29mX2JpcnRo'); @$core.Deprecated('Use getPatientsByWardRequestDescriptor instead') const GetPatientsByWardRequest$json = { @@ -167,10 +186,13 @@ const GetPatientsByWardResponse_Patient$json = { {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, {'1': 'notes', '3': 3, '4': 1, '5': 9, '10': 'notes'}, - {'1': 'bed_id', '3': 4, '4': 1, '5': 9, '9': 0, '10': 'bedId', '17': true}, + {'1': 'sex', '3': 6, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, + {'1': 'date_of_birth', '3': 7, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateOfBirth', '17': true}, + {'1': 'bed_id', '3': 4, '4': 1, '5': 9, '9': 1, '10': 'bedId', '17': true}, {'1': 'consistency', '3': 5, '4': 1, '5': 9, '10': 'consistency'}, ], '8': [ + {'1': '_date_of_birth'}, {'1': '_bed_id'}, ], }; @@ -179,10 +201,12 @@ const GetPatientsByWardResponse_Patient$json = { final $typed_data.Uint8List getPatientsByWardResponseDescriptor = $convert.base64Decode( 'ChlHZXRQYXRpZW50c0J5V2FyZFJlc3BvbnNlElQKCHBhdGllbnRzGAEgAygLMjguc2VydmljZX' 'MudGFza3Nfc3ZjLnYxLkdldFBhdGllbnRzQnlXYXJkUmVzcG9uc2UuUGF0aWVudFIIcGF0aWVu' - 'dHMatAEKB1BhdGllbnQSDgoCaWQYASABKAlSAmlkEjoKGWh1bWFuX3JlYWRhYmxlX2lkZW50aW' + 'dHMarAIKB1BhdGllbnQSDgoCaWQYASABKAlSAmlkEjoKGWh1bWFuX3JlYWRhYmxlX2lkZW50aW' 'ZpZXIYAiABKAlSF2h1bWFuUmVhZGFibGVJZGVudGlmaWVyEhQKBW5vdGVzGAMgASgJUgVub3Rl' - 'cxIaCgZiZWRfaWQYBCABKAlIAFIFYmVkSWSIAQESIAoLY29uc2lzdGVuY3kYBSABKAlSC2Nvbn' - 'Npc3RlbmN5QgkKB19iZWRfaWQ='); + 'cxIlCgNzZXgYBiABKA4yEy5saWJzLmNvbW1vbi52MS5TZXhSA3NleBI9Cg1kYXRlX29mX2Jpcn' + 'RoGAcgASgLMhQubGlicy5jb21tb24udjEuRGF0ZUgAUgtkYXRlT2ZCaXJ0aIgBARIaCgZiZWRf' + 'aWQYBCABKAlIAVIFYmVkSWSIAQESIAoLY29uc2lzdGVuY3kYBSABKAlSC2NvbnNpc3RlbmN5Qh' + 'AKDl9kYXRlX29mX2JpcnRoQgkKB19iZWRfaWQ='); @$core.Deprecated('Use getPatientAssignmentByWardRequestDescriptor instead') const GetPatientAssignmentByWardRequest$json = { @@ -239,6 +263,7 @@ const GetPatientAssignmentByWardResponse_Room_Bed_Patient$json = { '2': [ {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'name', '3': 2, '4': 1, '5': 9, '10': 'name'}, + {'1': 'sex', '3': 4, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, {'1': 'consistency', '3': 3, '4': 1, '5': 9, '10': 'consistency'}, ], }; @@ -247,15 +272,15 @@ const GetPatientAssignmentByWardResponse_Room_Bed_Patient$json = { final $typed_data.Uint8List getPatientAssignmentByWardResponseDescriptor = $convert.base64Decode( 'CiJHZXRQYXRpZW50QXNzaWdubWVudEJ5V2FyZFJlc3BvbnNlElQKBXJvb21zGAEgAygLMj4uc2' 'VydmljZXMudGFza3Nfc3ZjLnYxLkdldFBhdGllbnRBc3NpZ25tZW50QnlXYXJkUmVzcG9uc2Uu' - 'Um9vbVIFcm9vbXMaugMKBFJvb20SDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbW' + 'Um9vbVIFcm9vbXMa4QMKBFJvb20SDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbW' 'USVgoEYmVkcxgDIAMoCzJCLnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQYXRpZW50QXNzaWdu' 'bWVudEJ5V2FyZFJlc3BvbnNlLlJvb20uQmVkUgRiZWRzEiAKC2NvbnNpc3RlbmN5GAQgASgJUg' - 'tjb25zaXN0ZW5jeRqTAgoDQmVkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1l' + 'tjb25zaXN0ZW5jeRq6AgoDQmVkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1l' 'EmkKB3BhdGllbnQYAyABKAsySi5zZXJ2aWNlcy50YXNrc19zdmMudjEuR2V0UGF0aWVudEFzc2' 'lnbm1lbnRCeVdhcmRSZXNwb25zZS5Sb29tLkJlZC5QYXRpZW50SABSB3BhdGllbnSIAQESIAoL' - 'Y29uc2lzdGVuY3kYBCABKAlSC2NvbnNpc3RlbmN5Gk8KB1BhdGllbnQSDgoCaWQYASABKAlSAm' - 'lkEhIKBG5hbWUYAiABKAlSBG5hbWUSIAoLY29uc2lzdGVuY3kYAyABKAlSC2NvbnNpc3RlbmN5' - 'QgoKCF9wYXRpZW50'); + 'Y29uc2lzdGVuY3kYBCABKAlSC2NvbnNpc3RlbmN5GnYKB1BhdGllbnQSDgoCaWQYASABKAlSAm' + 'lkEhIKBG5hbWUYAiABKAlSBG5hbWUSJQoDc2V4GAQgASgOMhMubGlicy5jb21tb24udjEuU2V4' + 'UgNzZXgSIAoLY29uc2lzdGVuY3kYAyABKAlSC2NvbnNpc3RlbmN5QgoKCF9wYXRpZW50'); @$core.Deprecated('Use getPatientDetailsRequestDescriptor instead') const GetPatientDetailsRequest$json = { @@ -276,14 +301,17 @@ const GetPatientDetailsResponse$json = { {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, {'1': 'notes', '3': 3, '4': 1, '5': 9, '10': 'notes'}, + {'1': 'sex', '3': 9, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, + {'1': 'date_of_birth', '3': 10, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateOfBirth', '17': true}, {'1': 'tasks', '3': 4, '4': 3, '5': 11, '6': '.services.tasks_svc.v1.GetPatientDetailsResponse.Task', '10': 'tasks'}, - {'1': 'room', '3': 5, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientDetailsResponse.Room', '9': 0, '10': 'room', '17': true}, - {'1': 'bed', '3': 6, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientDetailsResponse.Bed', '9': 1, '10': 'bed', '17': true}, + {'1': 'room', '3': 5, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientDetailsResponse.Room', '9': 1, '10': 'room', '17': true}, + {'1': 'bed', '3': 6, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientDetailsResponse.Bed', '9': 2, '10': 'bed', '17': true}, {'1': 'is_discharged', '3': 7, '4': 1, '5': 8, '10': 'isDischarged'}, {'1': 'consistency', '3': 8, '4': 1, '5': 9, '10': 'consistency'}, ], '3': [GetPatientDetailsResponse_Room$json, GetPatientDetailsResponse_Bed$json, GetPatientDetailsResponse_Task$json], '8': [ + {'1': '_date_of_birth'}, {'1': '_room'}, {'1': '_bed'}, ], @@ -344,24 +372,26 @@ const GetPatientDetailsResponse_Task_SubTask$json = { final $typed_data.Uint8List getPatientDetailsResponseDescriptor = $convert.base64Decode( 'ChlHZXRQYXRpZW50RGV0YWlsc1Jlc3BvbnNlEg4KAmlkGAEgASgJUgJpZBI6ChlodW1hbl9yZW' 'FkYWJsZV9pZGVudGlmaWVyGAIgASgJUhdodW1hblJlYWRhYmxlSWRlbnRpZmllchIUCgVub3Rl' - 'cxgDIAEoCVIFbm90ZXMSSwoFdGFza3MYBCADKAsyNS5zZXJ2aWNlcy50YXNrc19zdmMudjEuR2' - 'V0UGF0aWVudERldGFpbHNSZXNwb25zZS5UYXNrUgV0YXNrcxJOCgRyb29tGAUgASgLMjUuc2Vy' - 'dmljZXMudGFza3Nfc3ZjLnYxLkdldFBhdGllbnREZXRhaWxzUmVzcG9uc2UuUm9vbUgAUgRyb2' - '9tiAEBEksKA2JlZBgGIAEoCzI0LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQYXRpZW50RGV0' - 'YWlsc1Jlc3BvbnNlLkJlZEgBUgNiZWSIAQESIwoNaXNfZGlzY2hhcmdlZBgHIAEoCFIMaXNEaX' - 'NjaGFyZ2VkEiAKC2NvbnNpc3RlbmN5GAggASgJUgtjb25zaXN0ZW5jeRplCgRSb29tEg4KAmlk' - 'GAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhcKB3dhcmRfaWQYAyABKAlSBndhcmRJZB' - 'IgCgtjb25zaXN0ZW5jeRgEIAEoCVILY29uc2lzdGVuY3kaSwoDQmVkEg4KAmlkGAEgASgJUgJp' - 'ZBISCgRuYW1lGAIgASgJUgRuYW1lEiAKC2NvbnNpc3RlbmN5GAMgASgJUgtjb25zaXN0ZW5jeR' - 'rCAwoEVGFzaxIOCgJpZBgBIAEoCVICaWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIgCgtkZXNjcmlw' - 'dGlvbhgDIAEoCVILZGVzY3JpcHRpb24SOQoGc3RhdHVzGAQgASgOMiEuc2VydmljZXMudGFza3' - 'Nfc3ZjLnYxLlRhc2tTdGF0dXNSBnN0YXR1cxItChBhc3NpZ25lZF91c2VyX2lkGAUgASgJSABS' - 'DmFzc2lnbmVkVXNlcklkiAEBEh0KCnBhdGllbnRfaWQYBiABKAlSCXBhdGllbnRJZBIWCgZwdW' - 'JsaWMYByABKAhSBnB1YmxpYxJZCghzdWJ0YXNrcxgIIAMoCzI9LnNlcnZpY2VzLnRhc2tzX3N2' - 'Yy52MS5HZXRQYXRpZW50RGV0YWlsc1Jlc3BvbnNlLlRhc2suU3ViVGFza1IIc3VidGFza3MSIA' - 'oLY29uc2lzdGVuY3kYCSABKAlSC2NvbnNpc3RlbmN5GkEKB1N1YlRhc2sSDgoCaWQYASABKAlS' - 'AmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEgoEZG9uZRgDIAEoCFIEZG9uZUITChFfYXNzaWduZW' - 'RfdXNlcl9pZEIHCgVfcm9vbUIGCgRfYmVk'); + 'cxgDIAEoCVIFbm90ZXMSJQoDc2V4GAkgASgOMhMubGlicy5jb21tb24udjEuU2V4UgNzZXgSPQ' + 'oNZGF0ZV9vZl9iaXJ0aBgKIAEoCzIULmxpYnMuY29tbW9uLnYxLkRhdGVIAFILZGF0ZU9mQmly' + 'dGiIAQESSwoFdGFza3MYBCADKAsyNS5zZXJ2aWNlcy50YXNrc19zdmMudjEuR2V0UGF0aWVudE' + 'RldGFpbHNSZXNwb25zZS5UYXNrUgV0YXNrcxJOCgRyb29tGAUgASgLMjUuc2VydmljZXMudGFz' + 'a3Nfc3ZjLnYxLkdldFBhdGllbnREZXRhaWxzUmVzcG9uc2UuUm9vbUgBUgRyb29tiAEBEksKA2' + 'JlZBgGIAEoCzI0LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQYXRpZW50RGV0YWlsc1Jlc3Bv' + 'bnNlLkJlZEgCUgNiZWSIAQESIwoNaXNfZGlzY2hhcmdlZBgHIAEoCFIMaXNEaXNjaGFyZ2VkEi' + 'AKC2NvbnNpc3RlbmN5GAggASgJUgtjb25zaXN0ZW5jeRplCgRSb29tEg4KAmlkGAEgASgJUgJp' + 'ZBISCgRuYW1lGAIgASgJUgRuYW1lEhcKB3dhcmRfaWQYAyABKAlSBndhcmRJZBIgCgtjb25zaX' + 'N0ZW5jeRgEIAEoCVILY29uc2lzdGVuY3kaSwoDQmVkEg4KAmlkGAEgASgJUgJpZBISCgRuYW1l' + 'GAIgASgJUgRuYW1lEiAKC2NvbnNpc3RlbmN5GAMgASgJUgtjb25zaXN0ZW5jeRrCAwoEVGFzax' + 'IOCgJpZBgBIAEoCVICaWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgDIAEo' + 'CVILZGVzY3JpcHRpb24SOQoGc3RhdHVzGAQgASgOMiEuc2VydmljZXMudGFza3Nfc3ZjLnYxLl' + 'Rhc2tTdGF0dXNSBnN0YXR1cxItChBhc3NpZ25lZF91c2VyX2lkGAUgASgJSABSDmFzc2lnbmVk' + 'VXNlcklkiAEBEh0KCnBhdGllbnRfaWQYBiABKAlSCXBhdGllbnRJZBIWCgZwdWJsaWMYByABKA' + 'hSBnB1YmxpYxJZCghzdWJ0YXNrcxgIIAMoCzI9LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQ' + 'YXRpZW50RGV0YWlsc1Jlc3BvbnNlLlRhc2suU3ViVGFza1IIc3VidGFza3MSIAoLY29uc2lzdG' + 'VuY3kYCSABKAlSC2NvbnNpc3RlbmN5GkEKB1N1YlRhc2sSDgoCaWQYASABKAlSAmlkEhIKBG5h' + 'bWUYAiABKAlSBG5hbWUSEgoEZG9uZRgDIAEoCFIEZG9uZUITChFfYXNzaWduZWRfdXNlcl9pZE' + 'IQCg5fZGF0ZV9vZl9iaXJ0aEIHCgVfcm9vbUIGCgRfYmVk'); @$core.Deprecated('Use getPatientListRequestDescriptor instead') const GetPatientListRequest$json = { @@ -417,12 +447,17 @@ const GetPatientListResponse_Patient$json = { '2': [ {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, + {'1': 'notes', '3': 5, '4': 1, '5': 9, '10': 'notes'}, + {'1': 'sex', '3': 8, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, + {'1': 'date_of_birth', '3': 9, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 0, '10': 'dateOfBirth', '17': true}, {'1': 'room', '3': 3, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientListResponse.Room', '10': 'room'}, {'1': 'bed', '3': 4, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetPatientListResponse.Bed', '10': 'bed'}, - {'1': 'notes', '3': 5, '4': 1, '5': 9, '10': 'notes'}, {'1': 'tasks', '3': 6, '4': 3, '5': 11, '6': '.services.tasks_svc.v1.GetPatientListResponse.Task', '10': 'tasks'}, {'1': 'consistency', '3': 7, '4': 1, '5': 9, '10': 'consistency'}, ], + '8': [ + {'1': '_date_of_birth'}, + ], }; @$core.Deprecated('Use getPatientListResponseDescriptor instead') @@ -465,22 +500,24 @@ final $typed_data.Uint8List getPatientListResponseDescriptor = $convert.base64De 'Nwb25zZS5QYXRpZW50UhJkaXNjaGFyZ2VkUGF0aWVudHMaSwoDQmVkEg4KAmlkGAEgASgJUgJp' 'ZBISCgRuYW1lGAIgASgJUgRuYW1lEiAKC2NvbnNpc3RlbmN5GAMgASgJUgtjb25zaXN0ZW5jeR' 'plCgRSb29tEg4KAmlkGAEgASgJUgJpZBISCgRuYW1lGAIgASgJUgRuYW1lEhcKB3dhcmRfaWQY' - 'AyABKAlSBndhcmRJZBIgCgtjb25zaXN0ZW5jeRgEIAEoCVILY29uc2lzdGVuY3ka5AIKB1BhdG' + 'AyABKAlSBndhcmRJZBIgCgtjb25zaXN0ZW5jeRgEIAEoCVILY29uc2lzdGVuY3ka3AMKB1BhdG' 'llbnQSDgoCaWQYASABKAlSAmlkEjoKGWh1bWFuX3JlYWRhYmxlX2lkZW50aWZpZXIYAiABKAlS' - 'F2h1bWFuUmVhZGFibGVJZGVudGlmaWVyEkYKBHJvb20YAyABKAsyMi5zZXJ2aWNlcy50YXNrc1' - '9zdmMudjEuR2V0UGF0aWVudExpc3RSZXNwb25zZS5Sb29tUgRyb29tEkMKA2JlZBgEIAEoCzIx' - 'LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQYXRpZW50TGlzdFJlc3BvbnNlLkJlZFIDYmVkEh' - 'QKBW5vdGVzGAUgASgJUgVub3RlcxJICgV0YXNrcxgGIAMoCzIyLnNlcnZpY2VzLnRhc2tzX3N2' - 'Yy52MS5HZXRQYXRpZW50TGlzdFJlc3BvbnNlLlRhc2tSBXRhc2tzEiAKC2NvbnNpc3RlbmN5GA' - 'cgASgJUgtjb25zaXN0ZW5jeRq/AwoEVGFzaxIOCgJpZBgBIAEoCVICaWQSEgoEbmFtZRgCIAEo' - 'CVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgDIAEoCVILZGVzY3JpcHRpb24SOQoGc3RhdHVzGAQgAS' - 'gOMiEuc2VydmljZXMudGFza3Nfc3ZjLnYxLlRhc2tTdGF0dXNSBnN0YXR1cxItChBhc3NpZ25l' - 'ZF91c2VyX2lkGAUgASgJSABSDmFzc2lnbmVkVXNlcklkiAEBEh0KCnBhdGllbnRfaWQYBiABKA' - 'lSCXBhdGllbnRJZBIWCgZwdWJsaWMYByABKAhSBnB1YmxpYxJWCghzdWJ0YXNrcxgIIAMoCzI6' - 'LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQYXRpZW50TGlzdFJlc3BvbnNlLlRhc2suU3ViVG' - 'Fza1IIc3VidGFza3MSIAoLY29uc2lzdGVuY3kYCSABKAlSC2NvbnNpc3RlbmN5GkEKB1N1YlRh' - 'c2sSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEgoEZG9uZRgDIAEoCFIEZG' - '9uZUITChFfYXNzaWduZWRfdXNlcl9pZA=='); + 'F2h1bWFuUmVhZGFibGVJZGVudGlmaWVyEhQKBW5vdGVzGAUgASgJUgVub3RlcxIlCgNzZXgYCC' + 'ABKA4yEy5saWJzLmNvbW1vbi52MS5TZXhSA3NleBI9Cg1kYXRlX29mX2JpcnRoGAkgASgLMhQu' + 'bGlicy5jb21tb24udjEuRGF0ZUgAUgtkYXRlT2ZCaXJ0aIgBARJGCgRyb29tGAMgASgLMjIuc2' + 'VydmljZXMudGFza3Nfc3ZjLnYxLkdldFBhdGllbnRMaXN0UmVzcG9uc2UuUm9vbVIEcm9vbRJD' + 'CgNiZWQYBCABKAsyMS5zZXJ2aWNlcy50YXNrc19zdmMudjEuR2V0UGF0aWVudExpc3RSZXNwb2' + '5zZS5CZWRSA2JlZBJICgV0YXNrcxgGIAMoCzIyLnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQ' + 'YXRpZW50TGlzdFJlc3BvbnNlLlRhc2tSBXRhc2tzEiAKC2NvbnNpc3RlbmN5GAcgASgJUgtjb2' + '5zaXN0ZW5jeUIQCg5fZGF0ZV9vZl9iaXJ0aBq/AwoEVGFzaxIOCgJpZBgBIAEoCVICaWQSEgoE' + 'bmFtZRgCIAEoCVIEbmFtZRIgCgtkZXNjcmlwdGlvbhgDIAEoCVILZGVzY3JpcHRpb24SOQoGc3' + 'RhdHVzGAQgASgOMiEuc2VydmljZXMudGFza3Nfc3ZjLnYxLlRhc2tTdGF0dXNSBnN0YXR1cxIt' + 'ChBhc3NpZ25lZF91c2VyX2lkGAUgASgJSABSDmFzc2lnbmVkVXNlcklkiAEBEh0KCnBhdGllbn' + 'RfaWQYBiABKAlSCXBhdGllbnRJZBIWCgZwdWJsaWMYByABKAhSBnB1YmxpYxJWCghzdWJ0YXNr' + 'cxgIIAMoCzI6LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRQYXRpZW50TGlzdFJlc3BvbnNlLl' + 'Rhc2suU3ViVGFza1IIc3VidGFza3MSIAoLY29uc2lzdGVuY3kYCSABKAlSC2NvbnNpc3RlbmN5' + 'GkEKB1N1YlRhc2sSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEgoEZG9uZR' + 'gDIAEoCFIEZG9uZUITChFfYXNzaWduZWRfdXNlcl9pZA=='); @$core.Deprecated('Use getRecentPatientsRequestDescriptor instead') const GetRecentPatientsRequest$json = { @@ -527,6 +564,7 @@ const GetRecentPatientsResponse_Patient$json = { '2': [ {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '10': 'humanReadableIdentifier'}, + {'1': 'sex', '3': 6, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '10': 'sex'}, {'1': 'room', '3': 3, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetRecentPatientsResponse.Room', '9': 0, '10': 'room', '17': true}, {'1': 'bed', '3': 4, '4': 1, '5': 11, '6': '.services.tasks_svc.v1.GetRecentPatientsResponse.Bed', '9': 1, '10': 'bed', '17': true}, {'1': 'consistency', '3': 5, '4': 1, '5': 9, '10': 'consistency'}, @@ -544,12 +582,13 @@ final $typed_data.Uint8List getRecentPatientsResponseDescriptor = $convert.base6 'DnJlY2VudFBhdGllbnRzGksKA0JlZBIOCgJpZBgBIAEoCVICaWQSEgoEbmFtZRgCIAEoCVIEbm' 'FtZRIgCgtjb25zaXN0ZW5jeRgDIAEoCVILY29uc2lzdGVuY3kaZQoEUm9vbRIOCgJpZBgBIAEo' 'CVICaWQSEgoEbmFtZRgCIAEoCVIEbmFtZRIXCgd3YXJkX2lkGAMgASgJUgZ3YXJkSWQSIAoLY2' - '9uc2lzdGVuY3kYBCABKAlSC2NvbnNpc3RlbmN5GqUCCgdQYXRpZW50Eg4KAmlkGAEgASgJUgJp' + '9uc2lzdGVuY3kYBCABKAlSC2NvbnNpc3RlbmN5GswCCgdQYXRpZW50Eg4KAmlkGAEgASgJUgJp' 'ZBI6ChlodW1hbl9yZWFkYWJsZV9pZGVudGlmaWVyGAIgASgJUhdodW1hblJlYWRhYmxlSWRlbn' - 'RpZmllchJOCgRyb29tGAMgASgLMjUuc2VydmljZXMudGFza3Nfc3ZjLnYxLkdldFJlY2VudFBh' - 'dGllbnRzUmVzcG9uc2UuUm9vbUgAUgRyb29tiAEBEksKA2JlZBgEIAEoCzI0LnNlcnZpY2VzLn' - 'Rhc2tzX3N2Yy52MS5HZXRSZWNlbnRQYXRpZW50c1Jlc3BvbnNlLkJlZEgBUgNiZWSIAQESIAoL' - 'Y29uc2lzdGVuY3kYBSABKAlSC2NvbnNpc3RlbmN5QgcKBV9yb29tQgYKBF9iZWQ='); + 'RpZmllchIlCgNzZXgYBiABKA4yEy5saWJzLmNvbW1vbi52MS5TZXhSA3NleBJOCgRyb29tGAMg' + 'ASgLMjUuc2VydmljZXMudGFza3Nfc3ZjLnYxLkdldFJlY2VudFBhdGllbnRzUmVzcG9uc2UuUm' + '9vbUgAUgRyb29tiAEBEksKA2JlZBgEIAEoCzI0LnNlcnZpY2VzLnRhc2tzX3N2Yy52MS5HZXRS' + 'ZWNlbnRQYXRpZW50c1Jlc3BvbnNlLkJlZEgBUgNiZWSIAQESIAoLY29uc2lzdGVuY3kYBSABKA' + 'lSC2NvbnNpc3RlbmN5QgcKBV9yb29tQgYKBF9iZWQ='); @$core.Deprecated('Use updatePatientRequestDescriptor instead') const UpdatePatientRequest$json = { @@ -558,11 +597,15 @@ const UpdatePatientRequest$json = { {'1': 'id', '3': 1, '4': 1, '5': 9, '10': 'id'}, {'1': 'human_readable_identifier', '3': 2, '4': 1, '5': 9, '9': 0, '10': 'humanReadableIdentifier', '17': true}, {'1': 'notes', '3': 3, '4': 1, '5': 9, '9': 1, '10': 'notes', '17': true}, - {'1': 'consistency', '3': 4, '4': 1, '5': 9, '9': 2, '10': 'consistency', '17': true}, + {'1': 'sex', '3': 5, '4': 1, '5': 14, '6': '.libs.common.v1.Sex', '9': 2, '10': 'sex', '17': true}, + {'1': 'date_of_birth', '3': 6, '4': 1, '5': 11, '6': '.libs.common.v1.Date', '9': 3, '10': 'dateOfBirth', '17': true}, + {'1': 'consistency', '3': 4, '4': 1, '5': 9, '9': 4, '10': 'consistency', '17': true}, ], '8': [ {'1': '_human_readable_identifier'}, {'1': '_notes'}, + {'1': '_sex'}, + {'1': '_date_of_birth'}, {'1': '_consistency'}, ], }; @@ -571,9 +614,11 @@ const UpdatePatientRequest$json = { final $typed_data.Uint8List updatePatientRequestDescriptor = $convert.base64Decode( 'ChRVcGRhdGVQYXRpZW50UmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSPwoZaHVtYW5fcmVhZGFibG' 'VfaWRlbnRpZmllchgCIAEoCUgAUhdodW1hblJlYWRhYmxlSWRlbnRpZmllcogBARIZCgVub3Rl' - 'cxgDIAEoCUgBUgVub3Rlc4gBARIlCgtjb25zaXN0ZW5jeRgEIAEoCUgCUgtjb25zaXN0ZW5jeY' - 'gBAUIcChpfaHVtYW5fcmVhZGFibGVfaWRlbnRpZmllckIICgZfbm90ZXNCDgoMX2NvbnNpc3Rl' - 'bmN5'); + 'cxgDIAEoCUgBUgVub3Rlc4gBARIqCgNzZXgYBSABKA4yEy5saWJzLmNvbW1vbi52MS5TZXhIAl' + 'IDc2V4iAEBEj0KDWRhdGVfb2ZfYmlydGgYBiABKAsyFC5saWJzLmNvbW1vbi52MS5EYXRlSANS' + 'C2RhdGVPZkJpcnRoiAEBEiUKC2NvbnNpc3RlbmN5GAQgASgJSARSC2NvbnNpc3RlbmN5iAEBQh' + 'wKGl9odW1hbl9yZWFkYWJsZV9pZGVudGlmaWVyQggKBl9ub3Rlc0IGCgRfc2V4QhAKDl9kYXRl' + 'X29mX2JpcnRoQg4KDF9jb25zaXN0ZW5jeQ=='); @$core.Deprecated('Use updatePatientResponseDescriptor instead') const UpdatePatientResponse$json = { diff --git a/gen/dart/lib/services/tasks_svc/v1/task_svc.pb.dart b/gen/dart/lib/services/tasks_svc/v1/task_svc.pb.dart index f8b3868f1..232fd3b6e 100644 --- a/gen/dart/lib/services/tasks_svc/v1/task_svc.pb.dart +++ b/gen/dart/lib/services/tasks_svc/v1/task_svc.pb.dart @@ -15,7 +15,7 @@ import 'package:protobuf/protobuf.dart' as $pb; import '../../../google/protobuf/timestamp.pb.dart' as $15; import '../../../libs/common/v1/conflict.pb.dart' as $16; -import 'types.pbenum.dart' as $18; +import 'types.pbenum.dart' as $19; class CreateTaskRequest_SubTask extends $pb.GeneratedMessage { factory CreateTaskRequest_SubTask({ @@ -88,7 +88,7 @@ class CreateTaskRequest extends $pb.GeneratedMessage { $core.String? patientId, $core.bool? public, $15.Timestamp? dueAt, - $18.TaskStatus? initialStatus, + $19.TaskStatus? initialStatus, $core.String? assignedUserId, $core.Iterable? subtasks, }) { @@ -129,7 +129,7 @@ class CreateTaskRequest extends $pb.GeneratedMessage { ..aOS(3, _omitFieldNames ? '' : 'patientId') ..aOB(4, _omitFieldNames ? '' : 'public') ..aOM<$15.Timestamp>(5, _omitFieldNames ? '' : 'dueAt', subBuilder: $15.Timestamp.create) - ..e<$18.TaskStatus>(6, _omitFieldNames ? '' : 'initialStatus', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(6, _omitFieldNames ? '' : 'initialStatus', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOS(7, _omitFieldNames ? '' : 'assignedUserId') ..pc(8, _omitFieldNames ? '' : 'subtasks', $pb.PbFieldType.PM, subBuilder: CreateTaskRequest_SubTask.create) ..hasRequiredFields = false @@ -204,9 +204,9 @@ class CreateTaskRequest extends $pb.GeneratedMessage { $15.Timestamp ensureDueAt() => $_ensure(4); @$pb.TagNumber(6) - $18.TaskStatus get initialStatus => $_getN(5); + $19.TaskStatus get initialStatus => $_getN(5); @$pb.TagNumber(6) - set initialStatus($18.TaskStatus v) { setField(6, v); } + set initialStatus($19.TaskStatus v) { setField(6, v); } @$pb.TagNumber(6) $core.bool hasInitialStatus() => $_has(5); @$pb.TagNumber(6) @@ -295,7 +295,7 @@ class UpdateTaskRequest extends $pb.GeneratedMessage { $core.String? name, $core.String? description, $15.Timestamp? dueAt, - $18.TaskStatus? status, + $19.TaskStatus? status, $core.bool? public, $core.String? consistency, }) { @@ -332,7 +332,7 @@ class UpdateTaskRequest extends $pb.GeneratedMessage { ..aOS(2, _omitFieldNames ? '' : 'name') ..aOS(3, _omitFieldNames ? '' : 'description') ..aOM<$15.Timestamp>(4, _omitFieldNames ? '' : 'dueAt', subBuilder: $15.Timestamp.create) - ..e<$18.TaskStatus>(5, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(5, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOB(6, _omitFieldNames ? '' : 'public') ..aOS(7, _omitFieldNames ? '' : 'consistency') ..hasRequiredFields = false @@ -398,9 +398,9 @@ class UpdateTaskRequest extends $pb.GeneratedMessage { $15.Timestamp ensureDueAt() => $_ensure(3); @$pb.TagNumber(5) - $18.TaskStatus get status => $_getN(4); + $19.TaskStatus get status => $_getN(4); @$pb.TagNumber(5) - set status($18.TaskStatus v) { setField(5, v); } + set status($19.TaskStatus v) { setField(5, v); } @$pb.TagNumber(5) $core.bool hasStatus() => $_has(4); @$pb.TagNumber(5) @@ -718,7 +718,7 @@ class GetTaskResponse extends $pb.GeneratedMessage { $core.String? description, $core.String? assignedUserId, $core.Iterable? subtasks, - $18.TaskStatus? status, + $19.TaskStatus? status, $15.Timestamp? createdAt, $core.bool? public, $15.Timestamp? dueAt, @@ -775,7 +775,7 @@ class GetTaskResponse extends $pb.GeneratedMessage { ..aOS(3, _omitFieldNames ? '' : 'description') ..aOS(4, _omitFieldNames ? '' : 'assignedUserId') ..pc(5, _omitFieldNames ? '' : 'subtasks', $pb.PbFieldType.PM, subBuilder: GetTaskResponse_SubTask.create) - ..e<$18.TaskStatus>(6, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(6, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOM<$15.Timestamp>(7, _omitFieldNames ? '' : 'createdAt', subBuilder: $15.Timestamp.create) ..aOB(8, _omitFieldNames ? '' : 'public') ..aOM<$15.Timestamp>(9, _omitFieldNames ? '' : 'dueAt', subBuilder: $15.Timestamp.create) @@ -846,9 +846,9 @@ class GetTaskResponse extends $pb.GeneratedMessage { $core.List get subtasks => $_getList(4); @$pb.TagNumber(6) - $18.TaskStatus get status => $_getN(5); + $19.TaskStatus get status => $_getN(5); @$pb.TagNumber(6) - set status($18.TaskStatus v) { setField(6, v); } + set status($19.TaskStatus v) { setField(6, v); } @$pb.TagNumber(6) $core.bool hasStatus() => $_has(5); @$pb.TagNumber(6) @@ -1062,7 +1062,7 @@ class GetTasksByPatientResponse_Task extends $pb.GeneratedMessage { $core.String? id, $core.String? name, $core.String? description, - $18.TaskStatus? status, + $19.TaskStatus? status, $core.String? assignedUserId, $core.String? patientId, $core.bool? public, @@ -1119,7 +1119,7 @@ class GetTasksByPatientResponse_Task extends $pb.GeneratedMessage { ..aOS(1, _omitFieldNames ? '' : 'id') ..aOS(2, _omitFieldNames ? '' : 'name') ..aOS(3, _omitFieldNames ? '' : 'description') - ..e<$18.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOS(5, _omitFieldNames ? '' : 'assignedUserId') ..aOS(6, _omitFieldNames ? '' : 'patientId') ..aOB(7, _omitFieldNames ? '' : 'public') @@ -1180,9 +1180,9 @@ class GetTasksByPatientResponse_Task extends $pb.GeneratedMessage { void clearDescription() => clearField(3); @$pb.TagNumber(4) - $18.TaskStatus get status => $_getN(3); + $19.TaskStatus get status => $_getN(3); @$pb.TagNumber(4) - set status($18.TaskStatus v) { setField(4, v); } + set status($19.TaskStatus v) { setField(4, v); } @$pb.TagNumber(4) $core.bool hasStatus() => $_has(3); @$pb.TagNumber(4) @@ -1900,7 +1900,7 @@ class GetAssignedTasksResponse_Task extends $pb.GeneratedMessage { $core.String? id, $core.String? name, $core.String? description, - $18.TaskStatus? status, + $19.TaskStatus? status, $core.String? assignedUserId, GetAssignedTasksResponse_Task_Patient? patient, $core.bool? public, @@ -1957,7 +1957,7 @@ class GetAssignedTasksResponse_Task extends $pb.GeneratedMessage { ..aOS(1, _omitFieldNames ? '' : 'id') ..aOS(2, _omitFieldNames ? '' : 'name') ..aOS(3, _omitFieldNames ? '' : 'description') - ..e<$18.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $18.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $18.TaskStatus.valueOf, enumValues: $18.TaskStatus.values) + ..e<$19.TaskStatus>(4, _omitFieldNames ? '' : 'status', $pb.PbFieldType.OE, defaultOrMaker: $19.TaskStatus.TASK_STATUS_UNSPECIFIED, valueOf: $19.TaskStatus.valueOf, enumValues: $19.TaskStatus.values) ..aOS(5, _omitFieldNames ? '' : 'assignedUserId') ..aOM(6, _omitFieldNames ? '' : 'patient', subBuilder: GetAssignedTasksResponse_Task_Patient.create) ..aOB(7, _omitFieldNames ? '' : 'public') @@ -2018,9 +2018,9 @@ class GetAssignedTasksResponse_Task extends $pb.GeneratedMessage { void clearDescription() => clearField(3); @$pb.TagNumber(4) - $18.TaskStatus get status => $_getN(3); + $19.TaskStatus get status => $_getN(3); @$pb.TagNumber(4) - set status($18.TaskStatus v) { setField(4, v); } + set status($19.TaskStatus v) { setField(4, v); } @$pb.TagNumber(4) $core.bool hasStatus() => $_has(3); @$pb.TagNumber(4) diff --git a/gen/go/libs/common/v1/types.pb.go b/gen/go/libs/common/v1/types.pb.go index 107c1b7c8..1d7b4b8d3 100644 --- a/gen/go/libs/common/v1/types.pb.go +++ b/gen/go/libs/common/v1/types.pb.go @@ -9,7 +9,7 @@ package v1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -21,16 +21,69 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type StringArray struct { +type Sex int32 + +const ( + Sex_SEX_UNSPECIFIED Sex = 0 + Sex_SEX_FEMALE Sex = 1 + Sex_SEX_MALE Sex = 2 + Sex_SEX_DIVERSE Sex = 3 +) + +// Enum value maps for Sex. +var ( + Sex_name = map[int32]string{ + 0: "SEX_UNSPECIFIED", + 1: "SEX_FEMALE", + 2: "SEX_MALE", + 3: "SEX_DIVERSE", + } + Sex_value = map[string]int32{ + "SEX_UNSPECIFIED": 0, + "SEX_FEMALE": 1, + "SEX_MALE": 2, + "SEX_DIVERSE": 3, + } +) + +func (x Sex) Enum() *Sex { + p := new(Sex) + *p = x + return p +} + +func (x Sex) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Sex) Descriptor() protoreflect.EnumDescriptor { + return file_libs_common_v1_types_proto_enumTypes[0].Descriptor() +} + +func (Sex) Type() protoreflect.EnumType { + return &file_libs_common_v1_types_proto_enumTypes[0] +} + +func (x Sex) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Sex.Descriptor instead. +func (Sex) EnumDescriptor() ([]byte, []int) { + return file_libs_common_v1_types_proto_rawDescGZIP(), []int{0} +} + +type Date struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Strings []*wrapperspb.StringValue `protobuf:"bytes,1,rep,name=strings,proto3" json:"strings,omitempty"` + // information more precise than date information shall be disregarded by clients + Date *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=date,proto3" json:"date,omitempty"` } -func (x *StringArray) Reset() { - *x = StringArray{} +func (x *Date) Reset() { + *x = Date{} if protoimpl.UnsafeEnabled { mi := &file_libs_common_v1_types_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -38,13 +91,13 @@ func (x *StringArray) Reset() { } } -func (x *StringArray) String() string { +func (x *Date) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StringArray) ProtoMessage() {} +func (*Date) ProtoMessage() {} -func (x *StringArray) ProtoReflect() protoreflect.Message { +func (x *Date) ProtoReflect() protoreflect.Message { mi := &file_libs_common_v1_types_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56,14 +109,14 @@ func (x *StringArray) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StringArray.ProtoReflect.Descriptor instead. -func (*StringArray) Descriptor() ([]byte, []int) { +// Deprecated: Use Date.ProtoReflect.Descriptor instead. +func (*Date) Descriptor() ([]byte, []int) { return file_libs_common_v1_types_proto_rawDescGZIP(), []int{0} } -func (x *StringArray) GetStrings() []*wrapperspb.StringValue { +func (x *Date) GetDate() *timestamppb.Timestamp { if x != nil { - return x.Strings + return x.Date } return nil } @@ -73,23 +126,27 @@ var File_libs_common_v1_types_proto protoreflect.FileDescriptor var file_libs_common_v1_types_proto_rawDesc = []byte{ 0x0a, 0x1a, 0x6c, 0x69, 0x62, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x6c, 0x69, - 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, - 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x45, 0x0a, 0x0b, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x36, 0x0a, 0x07, 0x73, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x73, 0x42, 0x8e, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x6c, 0x69, 0x62, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x6c, 0x69, - 0x62, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4c, - 0x43, 0x58, 0xaa, 0x02, 0x0e, 0x4c, 0x69, 0x62, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0e, 0x4c, 0x69, 0x62, 0x73, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1a, 0x4c, 0x69, 0x62, 0x73, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x10, 0x4c, 0x69, 0x62, 0x73, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x36, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x65, 0x2a, 0x49, 0x0a, 0x03, 0x53, 0x65, 0x78, 0x12, 0x13, 0x0a, 0x0f, + 0x53, 0x45, 0x58, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x58, 0x5f, 0x46, 0x45, 0x4d, 0x41, 0x4c, 0x45, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x45, 0x58, 0x5f, 0x4d, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, + 0x0f, 0x0a, 0x0b, 0x53, 0x45, 0x58, 0x5f, 0x44, 0x49, 0x56, 0x45, 0x52, 0x53, 0x45, 0x10, 0x03, + 0x42, 0x8e, 0x01, 0x0a, 0x12, 0x63, 0x6f, 0x6d, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x54, 0x79, 0x70, 0x65, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x6c, 0x69, 0x62, 0x73, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4c, 0x43, 0x58, 0xaa, + 0x02, 0x0e, 0x4c, 0x69, 0x62, 0x73, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x0e, 0x4c, 0x69, 0x62, 0x73, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x1a, 0x4c, 0x69, 0x62, 0x73, 0x5c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x10, 0x4c, 0x69, 0x62, 0x73, 0x3a, 0x3a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -104,13 +161,15 @@ func file_libs_common_v1_types_proto_rawDescGZIP() []byte { return file_libs_common_v1_types_proto_rawDescData } +var file_libs_common_v1_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_libs_common_v1_types_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_libs_common_v1_types_proto_goTypes = []interface{}{ - (*StringArray)(nil), // 0: libs.common.v1.StringArray - (*wrapperspb.StringValue)(nil), // 1: google.protobuf.StringValue + (Sex)(0), // 0: libs.common.v1.Sex + (*Date)(nil), // 1: libs.common.v1.Date + (*timestamppb.Timestamp)(nil), // 2: google.protobuf.Timestamp } var file_libs_common_v1_types_proto_depIdxs = []int32{ - 1, // 0: libs.common.v1.StringArray.strings:type_name -> google.protobuf.StringValue + 2, // 0: libs.common.v1.Date.date:type_name -> google.protobuf.Timestamp 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name @@ -125,7 +184,7 @@ func file_libs_common_v1_types_proto_init() { } if !protoimpl.UnsafeEnabled { file_libs_common_v1_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StringArray); i { + switch v := v.(*Date); i { case 0: return &v.state case 1: @@ -142,13 +201,14 @@ func file_libs_common_v1_types_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_libs_common_v1_types_proto_rawDesc, - NumEnums: 0, + NumEnums: 1, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_libs_common_v1_types_proto_goTypes, DependencyIndexes: file_libs_common_v1_types_proto_depIdxs, + EnumInfos: file_libs_common_v1_types_proto_enumTypes, MessageInfos: file_libs_common_v1_types_proto_msgTypes, }.Build() File_libs_common_v1_types_proto = out.File diff --git a/gen/go/services/property_svc/v1/property_value_svc.pb.go b/gen/go/services/property_svc/v1/property_value_svc.pb.go index c588b03b8..e8b9f0357 100644 --- a/gen/go/services/property_svc/v1/property_value_svc.pb.go +++ b/gen/go/services/property_svc/v1/property_value_svc.pb.go @@ -228,7 +228,7 @@ func (x *AttachPropertyValueRequest) GetBoolValue() bool { return false } -func (x *AttachPropertyValueRequest) GetDateValue() *Date { +func (x *AttachPropertyValueRequest) GetDateValue() *v1.Date { if x, ok := x.GetValue().(*AttachPropertyValueRequest_DateValue); ok { return x.DateValue } @@ -280,7 +280,7 @@ type AttachPropertyValueRequest_BoolValue struct { } type AttachPropertyValueRequest_DateValue struct { - DateValue *Date `protobuf:"bytes,6,opt,name=date_value,json=dateValue,proto3,oneof"` // FIELD_TYPE_DATE + DateValue *v1.Date `protobuf:"bytes,6,opt,name=date_value,json=dateValue,proto3,oneof"` // FIELD_TYPE_DATE } type AttachPropertyValueRequest_DateTimeValue struct { @@ -785,7 +785,7 @@ func (x *GetAttachedPropertyValuesResponse_Value) GetBoolValue() bool { return false } -func (x *GetAttachedPropertyValuesResponse_Value) GetDateValue() *Date { +func (x *GetAttachedPropertyValuesResponse_Value) GetDateValue() *v1.Date { if x, ok := x.GetValue().(*GetAttachedPropertyValuesResponse_Value_DateValue); ok { return x.DateValue } @@ -844,7 +844,7 @@ type GetAttachedPropertyValuesResponse_Value_BoolValue struct { } type GetAttachedPropertyValuesResponse_Value_DateValue struct { - DateValue *Date `protobuf:"bytes,9,opt,name=date_value,json=dateValue,proto3,oneof"` // FIELD_TYPE_DATE + DateValue *v1.Date `protobuf:"bytes,9,opt,name=date_value,json=dateValue,proto3,oneof"` // FIELD_TYPE_DATE } type GetAttachedPropertyValuesResponse_Value_DateTimeValue struct { @@ -894,189 +894,189 @@ var file_services_property_svc_v1_property_value_svc_proto_rawDesc = []byte{ 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6c, 0x69, 0x62, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x59, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x64, - 0x0a, 0x10, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x50, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x22, 0x91, 0x05, 0x0a, 0x1a, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, - 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, - 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x75, 0x6c, - 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x10, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x30, 0x0a, - 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, - 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x41, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x70, - 0x65, 0x72, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, - 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x69, - 0x0a, 0x13, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, + 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x6c, 0x69, 0x62, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x59, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x10, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, + 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x22, 0x87, 0x05, 0x0a, 0x1a, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x64, 0x12, + 0x1f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, + 0x0f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x75, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x10, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x10, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x30, 0x0a, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x1b, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, + 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, + 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, + 0x22, 0x69, 0x0a, 0x13, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x22, 0x75, 0x0a, 0x16, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x22, 0x75, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, - 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x22, 0xde, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x77, 0x61, 0x72, 0x64, + 0x5f, 0x69, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x22, 0xde, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, + 0x74, 0x61, 0x73, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0f, 0x70, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x72, 0x22, 0xef, 0x06, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x61, - 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, - 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x61, - 0x73, 0x6b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x12, 0x5b, 0x0a, 0x0f, 0x70, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0e, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, - 0x72, 0x22, 0xf9, 0x06, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, - 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x1a, 0xf8, 0x05, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x64, 0x12, 0x42, 0x0a, - 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x0b, - 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, 0x1f, 0x0a, - 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, - 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5a, 0x0a, - 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x1a, 0xee, 0x05, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x64, 0x12, + 0x42, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x64, 0x12, + 0x1f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x23, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x35, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x09, 0x64, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, + 0x0f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x11, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x32, 0xb6, 0x02, - 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x61, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, - 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xd1, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x73, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5a, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, + 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x32, 0xb6, 0x02, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x84, + 0x01, 0x0a, 0x13, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x76, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x1c, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x70, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2d, 0x73, 0x76, 0x63, 0x2f, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x53, 0x50, 0x58, 0xaa, 0x02, 0x17, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x76, 0x63, 0x2e, 0x56, 0x31, 0xca, 0x02, - 0x17, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x79, 0x53, 0x76, 0x63, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x5c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x76, 0x63, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x53, 0x76, 0x63, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x72, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x96, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xd1, + 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x42, + 0x15, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x76, + 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x1c, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2d, + 0x73, 0x76, 0x63, 0x2f, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x50, 0x58, 0xaa, 0x02, 0x17, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x53, 0x76, 0x63, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x5c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x76, 0x63, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x23, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5c, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x53, 0x76, 0x63, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x76, 0x63, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1103,14 +1103,14 @@ var file_services_property_svc_v1_property_value_svc_proto_goTypes = []interface (*GetAttachedPropertyValuesResponse)(nil), // 7: services.property_svc.v1.GetAttachedPropertyValuesResponse (*AttachPropertyValueRequest_MultiSelectValue)(nil), // 8: services.property_svc.v1.AttachPropertyValueRequest.MultiSelectValue (*GetAttachedPropertyValuesResponse_Value)(nil), // 9: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value - (*Date)(nil), // 10: services.property_svc.v1.Date - (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp - (*v1.Conflict)(nil), // 12: libs.common.v1.Conflict - (FieldType)(0), // 13: services.property_svc.v1.FieldType + (*v1.Date)(nil), // 10: libs.common.v1.Date + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (*v1.Conflict)(nil), // 12: libs.common.v1.Conflict + (FieldType)(0), // 13: services.property_svc.v1.FieldType } var file_services_property_svc_v1_property_value_svc_proto_depIdxs = []int32{ 0, // 0: services.property_svc.v1.MultiSelectValue.select_values:type_name -> services.property_svc.v1.SelectValueOption - 10, // 1: services.property_svc.v1.AttachPropertyValueRequest.date_value:type_name -> services.property_svc.v1.Date + 10, // 1: services.property_svc.v1.AttachPropertyValueRequest.date_value:type_name -> libs.common.v1.Date 11, // 2: services.property_svc.v1.AttachPropertyValueRequest.date_time_value:type_name -> google.protobuf.Timestamp 8, // 3: services.property_svc.v1.AttachPropertyValueRequest.multi_select_value:type_name -> services.property_svc.v1.AttachPropertyValueRequest.MultiSelectValue 12, // 4: services.property_svc.v1.AttachPropertyValueResponse.conflict:type_name -> libs.common.v1.Conflict @@ -1118,7 +1118,7 @@ var file_services_property_svc_v1_property_value_svc_proto_depIdxs = []int32{ 5, // 6: services.property_svc.v1.GetAttachedPropertyValuesRequest.patient_matcher:type_name -> services.property_svc.v1.PatientPropertyMatcher 9, // 7: services.property_svc.v1.GetAttachedPropertyValuesResponse.values:type_name -> services.property_svc.v1.GetAttachedPropertyValuesResponse.Value 13, // 8: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.field_type:type_name -> services.property_svc.v1.FieldType - 10, // 9: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.date_value:type_name -> services.property_svc.v1.Date + 10, // 9: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.date_value:type_name -> libs.common.v1.Date 11, // 10: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.date_time_value:type_name -> google.protobuf.Timestamp 0, // 11: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.select_value:type_name -> services.property_svc.v1.SelectValueOption 1, // 12: services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.multi_select_value:type_name -> services.property_svc.v1.MultiSelectValue diff --git a/gen/go/services/tasks_svc/v1/patient_svc.pb.go b/gen/go/services/tasks_svc/v1/patient_svc.pb.go index 639751a40..66b7f6f99 100644 --- a/gen/go/services/tasks_svc/v1/patient_svc.pb.go +++ b/gen/go/services/tasks_svc/v1/patient_svc.pb.go @@ -26,8 +26,10 @@ type CreatePatientRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HumanReadableIdentifier string `protobuf:"bytes,1,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty" validate:"required"` // @gotags: validate:"required" - Notes *string `protobuf:"bytes,2,opt,name=notes,proto3,oneof" json:"notes,omitempty"` + HumanReadableIdentifier string `protobuf:"bytes,1,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty" validate:"required"` // @gotags: validate:"required" + Notes *string `protobuf:"bytes,2,opt,name=notes,proto3,oneof" json:"notes,omitempty"` + Sex *v1.Sex `protobuf:"varint,3,opt,name=sex,proto3,enum=libs.common.v1.Sex,oneof" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,4,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` } func (x *CreatePatientRequest) Reset() { @@ -76,6 +78,20 @@ func (x *CreatePatientRequest) GetNotes() string { return "" } +func (x *CreatePatientRequest) GetSex() v1.Sex { + if x != nil && x.Sex != nil { + return *x.Sex + } + return v1.Sex(0) +} + +func (x *CreatePatientRequest) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth + } + return nil +} + type CreatePatientResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -186,6 +202,8 @@ type GetPatientResponse struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` + Sex v1.Sex `protobuf:"varint,10,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,11,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` Room *GetPatientResponse_Room `protobuf:"bytes,7,opt,name=room,proto3,oneof" json:"room,omitempty"` Bed *GetPatientResponse_Bed `protobuf:"bytes,8,opt,name=bed,proto3,oneof" json:"bed,omitempty"` Consistency string `protobuf:"bytes,9,opt,name=consistency,proto3" json:"consistency,omitempty"` @@ -244,6 +262,20 @@ func (x *GetPatientResponse) GetNotes() string { return "" } +func (x *GetPatientResponse) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + +func (x *GetPatientResponse) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth + } + return nil +} + func (x *GetPatientResponse) GetRoom() *GetPatientResponse_Room { if x != nil { return x.Room @@ -317,11 +349,13 @@ type GetPatientByBedResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` - Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` - BedId string `protobuf:"bytes,4,opt,name=bed_id,json=bedId,proto3" json:"bed_id,omitempty"` - Consistency string `protobuf:"bytes,5,opt,name=consistency,proto3" json:"consistency,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` + Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` + Sex v1.Sex `protobuf:"varint,6,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,7,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` + BedId string `protobuf:"bytes,4,opt,name=bed_id,json=bedId,proto3" json:"bed_id,omitempty"` + Consistency string `protobuf:"bytes,5,opt,name=consistency,proto3" json:"consistency,omitempty"` } func (x *GetPatientByBedResponse) Reset() { @@ -377,6 +411,20 @@ func (x *GetPatientByBedResponse) GetNotes() string { return "" } +func (x *GetPatientByBedResponse) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + +func (x *GetPatientByBedResponse) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth + } + return nil +} + func (x *GetPatientByBedResponse) GetBedId() string { if x != nil { return x.BedId @@ -634,6 +682,8 @@ type GetPatientDetailsResponse struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` + Sex v1.Sex `protobuf:"varint,9,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,10,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` Tasks []*GetPatientDetailsResponse_Task `protobuf:"bytes,4,rep,name=tasks,proto3" json:"tasks,omitempty"` Room *GetPatientDetailsResponse_Room `protobuf:"bytes,5,opt,name=room,proto3,oneof" json:"room,omitempty"` Bed *GetPatientDetailsResponse_Bed `protobuf:"bytes,6,opt,name=bed,proto3,oneof" json:"bed,omitempty"` @@ -694,6 +744,20 @@ func (x *GetPatientDetailsResponse) GetNotes() string { return "" } +func (x *GetPatientDetailsResponse) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + +func (x *GetPatientDetailsResponse) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth + } + return nil +} + func (x *GetPatientDetailsResponse) GetTasks() []*GetPatientDetailsResponse_Task { if x != nil { return x.Tasks @@ -929,10 +993,12 @@ type UpdatePatientRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" validate:"uuid4"` // @gotags: validate:"uuid4" - HumanReadableIdentifier *string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3,oneof" json:"human_readable_identifier,omitempty"` - Notes *string `protobuf:"bytes,3,opt,name=notes,proto3,oneof" json:"notes,omitempty"` - Consistency *string `protobuf:"bytes,4,opt,name=consistency,proto3,oneof" json:"consistency,omitempty"` // no conflict detection, if not provided + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty" validate:"uuid4"` // @gotags: validate:"uuid4" + HumanReadableIdentifier *string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3,oneof" json:"human_readable_identifier,omitempty"` + Notes *string `protobuf:"bytes,3,opt,name=notes,proto3,oneof" json:"notes,omitempty"` + Sex *v1.Sex `protobuf:"varint,5,opt,name=sex,proto3,enum=libs.common.v1.Sex,oneof" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,6,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` + Consistency *string `protobuf:"bytes,4,opt,name=consistency,proto3,oneof" json:"consistency,omitempty"` // no conflict detection, if not provided } func (x *UpdatePatientRequest) Reset() { @@ -988,6 +1054,20 @@ func (x *UpdatePatientRequest) GetNotes() string { return "" } +func (x *UpdatePatientRequest) GetSex() v1.Sex { + if x != nil && x.Sex != nil { + return *x.Sex + } + return v1.Sex(0) +} + +func (x *UpdatePatientRequest) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth + } + return nil +} + func (x *UpdatePatientRequest) GetConsistency() string { if x != nil && x.Consistency != nil { return *x.Consistency @@ -1690,11 +1770,13 @@ type GetPatientsByWardResponse_Patient struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` - Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` - BedId *string `protobuf:"bytes,4,opt,name=bed_id,json=bedId,proto3,oneof" json:"bed_id,omitempty"` - Consistency string `protobuf:"bytes,5,opt,name=consistency,proto3" json:"consistency,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` + Notes string `protobuf:"bytes,3,opt,name=notes,proto3" json:"notes,omitempty"` + Sex v1.Sex `protobuf:"varint,6,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,7,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` + BedId *string `protobuf:"bytes,4,opt,name=bed_id,json=bedId,proto3,oneof" json:"bed_id,omitempty"` + Consistency string `protobuf:"bytes,5,opt,name=consistency,proto3" json:"consistency,omitempty"` } func (x *GetPatientsByWardResponse_Patient) Reset() { @@ -1750,6 +1832,20 @@ func (x *GetPatientsByWardResponse_Patient) GetNotes() string { return "" } +func (x *GetPatientsByWardResponse_Patient) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + +func (x *GetPatientsByWardResponse_Patient) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth + } + return nil +} + func (x *GetPatientsByWardResponse_Patient) GetBedId() string { if x != nil && x.BedId != nil { return *x.BedId @@ -1913,6 +2009,7 @@ type GetPatientAssignmentByWardResponse_Room_Bed_Patient struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Sex v1.Sex `protobuf:"varint,4,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` Consistency string `protobuf:"bytes,3,opt,name=consistency,proto3" json:"consistency,omitempty"` } @@ -1962,6 +2059,13 @@ func (x *GetPatientAssignmentByWardResponse_Room_Bed_Patient) GetName() string { return "" } +func (x *GetPatientAssignmentByWardResponse_Room_Bed_Patient) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + func (x *GetPatientAssignmentByWardResponse_Room_Bed_Patient) GetConsistency() string { if x != nil { return x.Consistency @@ -2418,9 +2522,11 @@ type GetPatientListResponse_Patient struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` + Notes string `protobuf:"bytes,5,opt,name=notes,proto3" json:"notes,omitempty"` + Sex v1.Sex `protobuf:"varint,8,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` + DateOfBirth *v1.Date `protobuf:"bytes,9,opt,name=date_of_birth,json=dateOfBirth,proto3,oneof" json:"date_of_birth,omitempty"` Room *GetPatientListResponse_Room `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` Bed *GetPatientListResponse_Bed `protobuf:"bytes,4,opt,name=bed,proto3" json:"bed,omitempty"` - Notes string `protobuf:"bytes,5,opt,name=notes,proto3" json:"notes,omitempty"` Tasks []*GetPatientListResponse_Task `protobuf:"bytes,6,rep,name=tasks,proto3" json:"tasks,omitempty"` Consistency string `protobuf:"bytes,7,opt,name=consistency,proto3" json:"consistency,omitempty"` } @@ -2471,25 +2577,39 @@ func (x *GetPatientListResponse_Patient) GetHumanReadableIdentifier() string { return "" } -func (x *GetPatientListResponse_Patient) GetRoom() *GetPatientListResponse_Room { +func (x *GetPatientListResponse_Patient) GetNotes() string { if x != nil { - return x.Room + return x.Notes + } + return "" +} + +func (x *GetPatientListResponse_Patient) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + +func (x *GetPatientListResponse_Patient) GetDateOfBirth() *v1.Date { + if x != nil { + return x.DateOfBirth } return nil } -func (x *GetPatientListResponse_Patient) GetBed() *GetPatientListResponse_Bed { +func (x *GetPatientListResponse_Patient) GetRoom() *GetPatientListResponse_Room { if x != nil { - return x.Bed + return x.Room } return nil } -func (x *GetPatientListResponse_Patient) GetNotes() string { +func (x *GetPatientListResponse_Patient) GetBed() *GetPatientListResponse_Bed { if x != nil { - return x.Notes + return x.Bed } - return "" + return nil } func (x *GetPatientListResponse_Patient) GetTasks() []*GetPatientListResponse_Task { @@ -2821,6 +2941,7 @@ type GetRecentPatientsResponse_Patient struct { Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` HumanReadableIdentifier string `protobuf:"bytes,2,opt,name=human_readable_identifier,json=humanReadableIdentifier,proto3" json:"human_readable_identifier,omitempty"` + Sex v1.Sex `protobuf:"varint,6,opt,name=sex,proto3,enum=libs.common.v1.Sex" json:"sex,omitempty"` Room *GetRecentPatientsResponse_Room `protobuf:"bytes,3,opt,name=room,proto3,oneof" json:"room,omitempty"` Bed *GetRecentPatientsResponse_Bed `protobuf:"bytes,4,opt,name=bed,proto3,oneof" json:"bed,omitempty"` Consistency string `protobuf:"bytes,5,opt,name=consistency,proto3" json:"consistency,omitempty"` @@ -2872,6 +2993,13 @@ func (x *GetRecentPatientsResponse_Patient) GetHumanReadableIdentifier() string return "" } +func (x *GetRecentPatientsResponse_Patient) GetSex() v1.Sex { + if x != nil { + return x.Sex + } + return v1.Sex(0) +} + func (x *GetRecentPatientsResponse_Patient) GetRoom() *GetRecentPatientsResponse_Room { if x != nil { return x.Room @@ -2904,507 +3032,568 @@ var file_services_tasks_svc_v1_patient_svc_proto_rawDesc = []byte{ 0x5f, 0x73, 0x76, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6c, 0x69, 0x62, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0x77, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, - 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, - 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x49, 0x0a, 0x15, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x74, 0x6f, 0x1a, 0x1a, 0x6c, 0x69, 0x62, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, + 0x76, 0x31, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfc, + 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, + 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, + 0x48, 0x01, 0x52, 0x03, 0x73, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x0d, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6e, 0x6f, + 0x74, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x65, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x22, 0x49, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x23, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xe4, 0x04, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x23, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xec, 0x03, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, - 0x6f, 0x74, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, - 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x03, 0x62, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x65, 0x72, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, + 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, + 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x3d, 0x0a, + 0x0d, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x04, + 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x65, 0x64, 0x48, 0x01, 0x52, 0x03, 0x62, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x4b, 0x0a, 0x03, - 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, - 0x6f, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x65, 0x64, 0x22, 0x2f, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x65, 0x64, 0x49, 0x64, 0x22, 0xb4, 0x01, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, - 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x65, 0x64, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x04, 0x72, 0x6f, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x03, 0x62, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x65, + 0x64, 0x48, 0x02, 0x52, 0x03, 0x62, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, + 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x4b, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x62, 0x65, 0x64, 0x22, 0x2f, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, + 0x0a, 0x06, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x62, 0x65, 0x64, 0x49, 0x64, 0x22, 0xac, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, + 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, + 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x0d, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x4f, + 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x65, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x22, 0x33, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0xa8, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, - 0x74, 0x52, 0x08, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xb4, 0x01, 0x0a, 0x07, - 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, - 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, - 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x62, 0x65, 0x64, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x62, 0x65, 0x64, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x65, 0x64, 0x5f, - 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x22, 0xb7, 0x04, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x63, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x22, 0x33, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0xa0, 0x03, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x08, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0xac, 0x02, + 0x0a, 0x07, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, + 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, + 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x73, + 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, + 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, + 0x00, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x62, 0x65, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x21, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0xde, 0x04, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x1a, 0xba, 0x03, + 0x65, 0x12, 0x54, 0x0a, 0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, + 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, + 0x52, 0x05, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x1a, 0xe1, 0x03, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x04, 0x62, 0x65, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, + 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, + 0x6f, 0x6d, 0x2e, 0x42, 0x65, 0x64, 0x52, 0x04, 0x62, 0x65, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xba, + 0x02, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x69, 0x0a, 0x07, 0x70, 0x61, + 0x74, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x2e, 0x42, 0x65, 0x64, 0x2e, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x76, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x2a, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb0, 0x09, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, + 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x3d, + 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, + 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x4e, 0x0a, 0x04, 0x72, 0x6f, + 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x48, + 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x03, 0x62, 0x65, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x65, 0x64, 0x48, 0x02, 0x52, + 0x03, 0x62, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x64, 0x69, + 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x69, 0x73, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x56, 0x0a, 0x04, 0x62, 0x65, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, + 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, + 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x4b, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x1a, 0xc2, 0x03, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x10, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x12, 0x59, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x75, 0x62, 0x54, + 0x61, 0x73, 0x6b, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, + 0x41, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, + 0x6e, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, + 0x6f, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x65, 0x64, 0x22, 0x41, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x22, 0x8c, 0x0b, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x2e, 0x42, 0x65, 0x64, 0x52, 0x04, 0x62, 0x65, - 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x93, 0x02, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x66, 0x0a, 0x13, 0x75, 0x6e, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x75, 0x6e, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x66, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4b, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x69, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x4a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, - 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, - 0x6d, 0x2e, 0x42, 0x65, 0x64, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x07, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x4f, 0x0a, - 0x07, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x2a, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb8, 0x08, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, - 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, - 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, - 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x12, 0x4e, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x03, 0x62, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, - 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x42, 0x65, 0x64, 0x48, 0x01, 0x52, 0x03, 0x62, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x69, 0x73, 0x63, 0x68, - 0x61, 0x72, 0x67, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x4b, - 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xc2, 0x03, 0x0a, 0x04, - 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x59, 0x0a, 0x08, 0x73, - 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, + 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xdc, 0x03, 0x0a, 0x07, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x78, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, 0x65, 0x78, + 0x12, 0x3d, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x0b, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, + 0x46, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x73, 0x75, - 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x41, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, - 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x65, - 0x64, 0x22, 0x41, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x77, 0x61, - 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x77, - 0x61, 0x72, 0x64, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x77, 0x61, 0x72, - 0x64, 0x5f, 0x69, 0x64, 0x22, 0x94, 0x0a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, - 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, - 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x66, - 0x0a, 0x13, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, + 0x6d, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x03, 0x62, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x65, 0x64, 0x52, 0x03, 0x62, 0x65, 0x64, 0x12, 0x48, 0x0a, 0x05, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x52, 0x12, 0x75, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x66, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x64, 0x69, 0x73, 0x63, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4b, - 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, - 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, + 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x1a, 0xbf, 0x03, 0x0a, 0x04, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x1a, 0xe4, 0x02, 0x0a, 0x07, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, - 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x04, 0x72, 0x6f, - 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x04, 0x72, 0x6f, - 0x6f, 0x6d, 0x12, 0x43, 0x0a, 0x03, 0x62, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, - 0x65, 0x64, 0x52, 0x03, 0x62, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x48, 0x0a, - 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x73, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x56, 0x0a, 0x08, 0x73, 0x75, + 0x62, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xbf, 0x03, 0x0a, 0x04, 0x54, 0x61, - 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x56, 0x0a, 0x08, 0x73, 0x75, 0x62, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x2e, - 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x1a, 0x41, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xda, 0x04, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x5f, - 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, - 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4b, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, + 0x2e, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x41, 0x0a, 0x07, 0x53, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, - 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xa5, 0x02, 0x0a, - 0x07, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, - 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, 0x6d, - 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, - 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x03, 0x62, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, - 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x65, 0x64, 0x48, 0x01, 0x52, 0x03, 0x62, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x62, 0x65, 0x64, 0x22, 0xe1, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, - 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, - 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, - 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x70, 0x0a, 0x10, - 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0x1a, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x81, 0x05, 0x0a, 0x19, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, + 0x5f, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x6e, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x4b, 0x0a, 0x03, 0x42, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x15, 0x0a, 0x06, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x62, 0x65, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x7d, - 0x0a, 0x11, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, - 0x00, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x5b, 0x0a, - 0x12, 0x55, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x7f, 0x0a, 0x13, 0x55, 0x6e, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, 0x52, - 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x29, 0x0a, 0x17, 0x44, - 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x22, 0x36, 0x0a, 0x15, 0x52, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, - 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x16, - 0x52, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x26, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0x65, 0x0a, 0x04, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x1a, 0xcc, 0x02, + 0x0a, 0x07, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x75, 0x6d, + 0x61, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x68, 0x75, + 0x6d, 0x61, 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x78, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x4e, 0x0a, 0x04, + 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, + 0x6d, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x03, + 0x62, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x65, 0x64, 0x48, + 0x01, 0x52, 0x03, 0x62, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x65, 0x64, 0x22, 0xe6, 0x02, 0x0a, + 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3f, 0x0a, 0x19, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, + 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x17, 0x68, 0x75, 0x6d, 0x61, + 0x6e, 0x52, 0x65, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x2a, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, + 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x78, 0x48, 0x02, 0x52, 0x03, 0x73, 0x65, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, + 0x0d, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x48, 0x03, 0x52, 0x0b, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x66, 0x42, 0x69, 0x72, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x68, 0x75, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x65, + 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x73, 0x65, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, + 0x62, 0x69, 0x72, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, + 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x70, 0x0a, 0x10, 0x41, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x15, 0x0a, + 0x06, 0x62, 0x65, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, + 0x65, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x7d, 0x0a, 0x11, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x39, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, + 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x5b, 0x0a, 0x12, 0x55, 0x6e, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xda, 0x0c, 0x0a, 0x0e, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x0d, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, - 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, + 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x6f, 0x6e, 0x73, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x7f, 0x0a, 0x13, 0x55, 0x6e, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, + 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x62, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, + 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x22, 0x29, 0x0a, 0x17, 0x44, 0x69, 0x73, 0x63, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x22, 0x3c, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x22, 0x36, 0x0a, 0x15, 0x52, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x74, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x3a, 0x0a, 0x16, 0x52, 0x65, 0x61, + 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x26, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x17, 0x0a, + 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xda, 0x0c, 0x0a, 0x0e, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x0d, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x72, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, - 0x65, 0x64, 0x12, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, - 0x74, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, - 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, - 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x12, 0x38, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x63, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x61, + 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x72, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x12, + 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, + 0x6e, 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, + 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, + 0x74, 0x42, 0x79, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, + 0x79, 0x57, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x93, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, - 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x12, 0x38, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, - 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x42, 0x65, 0x64, 0x12, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x57, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x12, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, - 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x75, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, - 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, - 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, - 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x6d, - 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x78, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, + 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, + 0x65, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x60, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, + 0x12, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, + 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, + 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0b, 0x55, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x42, 0x65, 0x64, 0x12, 0x29, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x42, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, + 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x42, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, + 0x10, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x2e, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0e, 0x52, 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x61, 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, + 0x64, 0x6d, 0x69, 0x74, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xb9, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, - 0x63, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x76, 0x63, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x19, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2d, 0x73, 0x76, 0x63, 0x2f, - 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x54, 0x58, 0xaa, 0x02, 0x14, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x14, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5c, 0x54, 0x61, 0x73, 0x6b, 0x73, - 0x53, 0x76, 0x63, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x5c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x3a, 0x3a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, + 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x42, 0xb9, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x73, 0x2e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x73, 0x76, 0x63, 0x2e, 0x76, + 0x31, 0x42, 0x0f, 0x50, 0x61, 0x74, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x76, 0x63, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x19, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x2d, 0x73, 0x76, 0x63, 0x2f, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x53, 0x54, 0x58, 0xaa, 0x02, 0x14, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5c, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5c, 0x54, + 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x3a, 0x3a, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x53, 0x76, 0x63, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3467,68 +3656,86 @@ var file_services_tasks_svc_v1_patient_svc_proto_goTypes = []interface{}{ (*GetRecentPatientsResponse_Bed)(nil), // 43: services.tasks_svc.v1.GetRecentPatientsResponse.Bed (*GetRecentPatientsResponse_Room)(nil), // 44: services.tasks_svc.v1.GetRecentPatientsResponse.Room (*GetRecentPatientsResponse_Patient)(nil), // 45: services.tasks_svc.v1.GetRecentPatientsResponse.Patient - (*v1.Conflict)(nil), // 46: libs.common.v1.Conflict - (TaskStatus)(0), // 47: services.tasks_svc.v1.TaskStatus + (v1.Sex)(0), // 46: libs.common.v1.Sex + (*v1.Date)(nil), // 47: libs.common.v1.Date + (*v1.Conflict)(nil), // 48: libs.common.v1.Conflict + (TaskStatus)(0), // 49: services.tasks_svc.v1.TaskStatus } var file_services_tasks_svc_v1_patient_svc_proto_depIdxs = []int32{ - 28, // 0: services.tasks_svc.v1.GetPatientResponse.room:type_name -> services.tasks_svc.v1.GetPatientResponse.Room - 29, // 1: services.tasks_svc.v1.GetPatientResponse.bed:type_name -> services.tasks_svc.v1.GetPatientResponse.Bed - 30, // 2: services.tasks_svc.v1.GetPatientsByWardResponse.patients:type_name -> services.tasks_svc.v1.GetPatientsByWardResponse.Patient - 31, // 3: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.rooms:type_name -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room - 36, // 4: services.tasks_svc.v1.GetPatientDetailsResponse.tasks:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Task - 34, // 5: services.tasks_svc.v1.GetPatientDetailsResponse.room:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Room - 35, // 6: services.tasks_svc.v1.GetPatientDetailsResponse.bed:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Bed - 40, // 7: services.tasks_svc.v1.GetPatientListResponse.active:type_name -> services.tasks_svc.v1.GetPatientListResponse.Patient - 40, // 8: services.tasks_svc.v1.GetPatientListResponse.unassigned_patients:type_name -> services.tasks_svc.v1.GetPatientListResponse.Patient - 40, // 9: services.tasks_svc.v1.GetPatientListResponse.discharged_patients:type_name -> services.tasks_svc.v1.GetPatientListResponse.Patient - 45, // 10: services.tasks_svc.v1.GetRecentPatientsResponse.recent_patients:type_name -> services.tasks_svc.v1.GetRecentPatientsResponse.Patient - 46, // 11: services.tasks_svc.v1.UpdatePatientResponse.conflict:type_name -> libs.common.v1.Conflict - 46, // 12: services.tasks_svc.v1.AssignBedResponse.conflict:type_name -> libs.common.v1.Conflict - 46, // 13: services.tasks_svc.v1.UnassignBedResponse.conflict:type_name -> libs.common.v1.Conflict - 32, // 14: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.beds:type_name -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed - 33, // 15: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.patient:type_name -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient - 47, // 16: services.tasks_svc.v1.GetPatientDetailsResponse.Task.status:type_name -> services.tasks_svc.v1.TaskStatus - 37, // 17: services.tasks_svc.v1.GetPatientDetailsResponse.Task.subtasks:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Task.SubTask - 39, // 18: services.tasks_svc.v1.GetPatientListResponse.Patient.room:type_name -> services.tasks_svc.v1.GetPatientListResponse.Room - 38, // 19: services.tasks_svc.v1.GetPatientListResponse.Patient.bed:type_name -> services.tasks_svc.v1.GetPatientListResponse.Bed - 41, // 20: services.tasks_svc.v1.GetPatientListResponse.Patient.tasks:type_name -> services.tasks_svc.v1.GetPatientListResponse.Task - 47, // 21: services.tasks_svc.v1.GetPatientListResponse.Task.status:type_name -> services.tasks_svc.v1.TaskStatus - 42, // 22: services.tasks_svc.v1.GetPatientListResponse.Task.subtasks:type_name -> services.tasks_svc.v1.GetPatientListResponse.Task.SubTask - 44, // 23: services.tasks_svc.v1.GetRecentPatientsResponse.Patient.room:type_name -> services.tasks_svc.v1.GetRecentPatientsResponse.Room - 43, // 24: services.tasks_svc.v1.GetRecentPatientsResponse.Patient.bed:type_name -> services.tasks_svc.v1.GetRecentPatientsResponse.Bed - 0, // 25: services.tasks_svc.v1.PatientService.CreatePatient:input_type -> services.tasks_svc.v1.CreatePatientRequest - 2, // 26: services.tasks_svc.v1.PatientService.GetPatient:input_type -> services.tasks_svc.v1.GetPatientRequest - 4, // 27: services.tasks_svc.v1.PatientService.GetPatientByBed:input_type -> services.tasks_svc.v1.GetPatientByBedRequest - 6, // 28: services.tasks_svc.v1.PatientService.GetPatientsByWard:input_type -> services.tasks_svc.v1.GetPatientsByWardRequest - 8, // 29: services.tasks_svc.v1.PatientService.GetPatientAssignmentByWard:input_type -> services.tasks_svc.v1.GetPatientAssignmentByWardRequest - 10, // 30: services.tasks_svc.v1.PatientService.GetPatientDetails:input_type -> services.tasks_svc.v1.GetPatientDetailsRequest - 12, // 31: services.tasks_svc.v1.PatientService.GetPatientList:input_type -> services.tasks_svc.v1.GetPatientListRequest - 14, // 32: services.tasks_svc.v1.PatientService.GetRecentPatients:input_type -> services.tasks_svc.v1.GetRecentPatientsRequest - 16, // 33: services.tasks_svc.v1.PatientService.UpdatePatient:input_type -> services.tasks_svc.v1.UpdatePatientRequest - 18, // 34: services.tasks_svc.v1.PatientService.AssignBed:input_type -> services.tasks_svc.v1.AssignBedRequest - 20, // 35: services.tasks_svc.v1.PatientService.UnassignBed:input_type -> services.tasks_svc.v1.UnassignBedRequest - 22, // 36: services.tasks_svc.v1.PatientService.DischargePatient:input_type -> services.tasks_svc.v1.DischargePatientRequest - 24, // 37: services.tasks_svc.v1.PatientService.ReadmitPatient:input_type -> services.tasks_svc.v1.ReadmitPatientRequest - 26, // 38: services.tasks_svc.v1.PatientService.DeletePatient:input_type -> services.tasks_svc.v1.DeletePatientRequest - 1, // 39: services.tasks_svc.v1.PatientService.CreatePatient:output_type -> services.tasks_svc.v1.CreatePatientResponse - 3, // 40: services.tasks_svc.v1.PatientService.GetPatient:output_type -> services.tasks_svc.v1.GetPatientResponse - 5, // 41: services.tasks_svc.v1.PatientService.GetPatientByBed:output_type -> services.tasks_svc.v1.GetPatientByBedResponse - 7, // 42: services.tasks_svc.v1.PatientService.GetPatientsByWard:output_type -> services.tasks_svc.v1.GetPatientsByWardResponse - 9, // 43: services.tasks_svc.v1.PatientService.GetPatientAssignmentByWard:output_type -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse - 11, // 44: services.tasks_svc.v1.PatientService.GetPatientDetails:output_type -> services.tasks_svc.v1.GetPatientDetailsResponse - 13, // 45: services.tasks_svc.v1.PatientService.GetPatientList:output_type -> services.tasks_svc.v1.GetPatientListResponse - 15, // 46: services.tasks_svc.v1.PatientService.GetRecentPatients:output_type -> services.tasks_svc.v1.GetRecentPatientsResponse - 17, // 47: services.tasks_svc.v1.PatientService.UpdatePatient:output_type -> services.tasks_svc.v1.UpdatePatientResponse - 19, // 48: services.tasks_svc.v1.PatientService.AssignBed:output_type -> services.tasks_svc.v1.AssignBedResponse - 21, // 49: services.tasks_svc.v1.PatientService.UnassignBed:output_type -> services.tasks_svc.v1.UnassignBedResponse - 23, // 50: services.tasks_svc.v1.PatientService.DischargePatient:output_type -> services.tasks_svc.v1.DischargePatientResponse - 25, // 51: services.tasks_svc.v1.PatientService.ReadmitPatient:output_type -> services.tasks_svc.v1.ReadmitPatientResponse - 27, // 52: services.tasks_svc.v1.PatientService.DeletePatient:output_type -> services.tasks_svc.v1.DeletePatientResponse - 39, // [39:53] is the sub-list for method output_type - 25, // [25:39] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 46, // 0: services.tasks_svc.v1.CreatePatientRequest.sex:type_name -> libs.common.v1.Sex + 47, // 1: services.tasks_svc.v1.CreatePatientRequest.date_of_birth:type_name -> libs.common.v1.Date + 46, // 2: services.tasks_svc.v1.GetPatientResponse.sex:type_name -> libs.common.v1.Sex + 47, // 3: services.tasks_svc.v1.GetPatientResponse.date_of_birth:type_name -> libs.common.v1.Date + 28, // 4: services.tasks_svc.v1.GetPatientResponse.room:type_name -> services.tasks_svc.v1.GetPatientResponse.Room + 29, // 5: services.tasks_svc.v1.GetPatientResponse.bed:type_name -> services.tasks_svc.v1.GetPatientResponse.Bed + 46, // 6: services.tasks_svc.v1.GetPatientByBedResponse.sex:type_name -> libs.common.v1.Sex + 47, // 7: services.tasks_svc.v1.GetPatientByBedResponse.date_of_birth:type_name -> libs.common.v1.Date + 30, // 8: services.tasks_svc.v1.GetPatientsByWardResponse.patients:type_name -> services.tasks_svc.v1.GetPatientsByWardResponse.Patient + 31, // 9: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.rooms:type_name -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room + 46, // 10: services.tasks_svc.v1.GetPatientDetailsResponse.sex:type_name -> libs.common.v1.Sex + 47, // 11: services.tasks_svc.v1.GetPatientDetailsResponse.date_of_birth:type_name -> libs.common.v1.Date + 36, // 12: services.tasks_svc.v1.GetPatientDetailsResponse.tasks:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Task + 34, // 13: services.tasks_svc.v1.GetPatientDetailsResponse.room:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Room + 35, // 14: services.tasks_svc.v1.GetPatientDetailsResponse.bed:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Bed + 40, // 15: services.tasks_svc.v1.GetPatientListResponse.active:type_name -> services.tasks_svc.v1.GetPatientListResponse.Patient + 40, // 16: services.tasks_svc.v1.GetPatientListResponse.unassigned_patients:type_name -> services.tasks_svc.v1.GetPatientListResponse.Patient + 40, // 17: services.tasks_svc.v1.GetPatientListResponse.discharged_patients:type_name -> services.tasks_svc.v1.GetPatientListResponse.Patient + 45, // 18: services.tasks_svc.v1.GetRecentPatientsResponse.recent_patients:type_name -> services.tasks_svc.v1.GetRecentPatientsResponse.Patient + 46, // 19: services.tasks_svc.v1.UpdatePatientRequest.sex:type_name -> libs.common.v1.Sex + 47, // 20: services.tasks_svc.v1.UpdatePatientRequest.date_of_birth:type_name -> libs.common.v1.Date + 48, // 21: services.tasks_svc.v1.UpdatePatientResponse.conflict:type_name -> libs.common.v1.Conflict + 48, // 22: services.tasks_svc.v1.AssignBedResponse.conflict:type_name -> libs.common.v1.Conflict + 48, // 23: services.tasks_svc.v1.UnassignBedResponse.conflict:type_name -> libs.common.v1.Conflict + 46, // 24: services.tasks_svc.v1.GetPatientsByWardResponse.Patient.sex:type_name -> libs.common.v1.Sex + 47, // 25: services.tasks_svc.v1.GetPatientsByWardResponse.Patient.date_of_birth:type_name -> libs.common.v1.Date + 32, // 26: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.beds:type_name -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed + 33, // 27: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.patient:type_name -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient + 46, // 28: services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient.sex:type_name -> libs.common.v1.Sex + 49, // 29: services.tasks_svc.v1.GetPatientDetailsResponse.Task.status:type_name -> services.tasks_svc.v1.TaskStatus + 37, // 30: services.tasks_svc.v1.GetPatientDetailsResponse.Task.subtasks:type_name -> services.tasks_svc.v1.GetPatientDetailsResponse.Task.SubTask + 46, // 31: services.tasks_svc.v1.GetPatientListResponse.Patient.sex:type_name -> libs.common.v1.Sex + 47, // 32: services.tasks_svc.v1.GetPatientListResponse.Patient.date_of_birth:type_name -> libs.common.v1.Date + 39, // 33: services.tasks_svc.v1.GetPatientListResponse.Patient.room:type_name -> services.tasks_svc.v1.GetPatientListResponse.Room + 38, // 34: services.tasks_svc.v1.GetPatientListResponse.Patient.bed:type_name -> services.tasks_svc.v1.GetPatientListResponse.Bed + 41, // 35: services.tasks_svc.v1.GetPatientListResponse.Patient.tasks:type_name -> services.tasks_svc.v1.GetPatientListResponse.Task + 49, // 36: services.tasks_svc.v1.GetPatientListResponse.Task.status:type_name -> services.tasks_svc.v1.TaskStatus + 42, // 37: services.tasks_svc.v1.GetPatientListResponse.Task.subtasks:type_name -> services.tasks_svc.v1.GetPatientListResponse.Task.SubTask + 46, // 38: services.tasks_svc.v1.GetRecentPatientsResponse.Patient.sex:type_name -> libs.common.v1.Sex + 44, // 39: services.tasks_svc.v1.GetRecentPatientsResponse.Patient.room:type_name -> services.tasks_svc.v1.GetRecentPatientsResponse.Room + 43, // 40: services.tasks_svc.v1.GetRecentPatientsResponse.Patient.bed:type_name -> services.tasks_svc.v1.GetRecentPatientsResponse.Bed + 0, // 41: services.tasks_svc.v1.PatientService.CreatePatient:input_type -> services.tasks_svc.v1.CreatePatientRequest + 2, // 42: services.tasks_svc.v1.PatientService.GetPatient:input_type -> services.tasks_svc.v1.GetPatientRequest + 4, // 43: services.tasks_svc.v1.PatientService.GetPatientByBed:input_type -> services.tasks_svc.v1.GetPatientByBedRequest + 6, // 44: services.tasks_svc.v1.PatientService.GetPatientsByWard:input_type -> services.tasks_svc.v1.GetPatientsByWardRequest + 8, // 45: services.tasks_svc.v1.PatientService.GetPatientAssignmentByWard:input_type -> services.tasks_svc.v1.GetPatientAssignmentByWardRequest + 10, // 46: services.tasks_svc.v1.PatientService.GetPatientDetails:input_type -> services.tasks_svc.v1.GetPatientDetailsRequest + 12, // 47: services.tasks_svc.v1.PatientService.GetPatientList:input_type -> services.tasks_svc.v1.GetPatientListRequest + 14, // 48: services.tasks_svc.v1.PatientService.GetRecentPatients:input_type -> services.tasks_svc.v1.GetRecentPatientsRequest + 16, // 49: services.tasks_svc.v1.PatientService.UpdatePatient:input_type -> services.tasks_svc.v1.UpdatePatientRequest + 18, // 50: services.tasks_svc.v1.PatientService.AssignBed:input_type -> services.tasks_svc.v1.AssignBedRequest + 20, // 51: services.tasks_svc.v1.PatientService.UnassignBed:input_type -> services.tasks_svc.v1.UnassignBedRequest + 22, // 52: services.tasks_svc.v1.PatientService.DischargePatient:input_type -> services.tasks_svc.v1.DischargePatientRequest + 24, // 53: services.tasks_svc.v1.PatientService.ReadmitPatient:input_type -> services.tasks_svc.v1.ReadmitPatientRequest + 26, // 54: services.tasks_svc.v1.PatientService.DeletePatient:input_type -> services.tasks_svc.v1.DeletePatientRequest + 1, // 55: services.tasks_svc.v1.PatientService.CreatePatient:output_type -> services.tasks_svc.v1.CreatePatientResponse + 3, // 56: services.tasks_svc.v1.PatientService.GetPatient:output_type -> services.tasks_svc.v1.GetPatientResponse + 5, // 57: services.tasks_svc.v1.PatientService.GetPatientByBed:output_type -> services.tasks_svc.v1.GetPatientByBedResponse + 7, // 58: services.tasks_svc.v1.PatientService.GetPatientsByWard:output_type -> services.tasks_svc.v1.GetPatientsByWardResponse + 9, // 59: services.tasks_svc.v1.PatientService.GetPatientAssignmentByWard:output_type -> services.tasks_svc.v1.GetPatientAssignmentByWardResponse + 11, // 60: services.tasks_svc.v1.PatientService.GetPatientDetails:output_type -> services.tasks_svc.v1.GetPatientDetailsResponse + 13, // 61: services.tasks_svc.v1.PatientService.GetPatientList:output_type -> services.tasks_svc.v1.GetPatientListResponse + 15, // 62: services.tasks_svc.v1.PatientService.GetRecentPatients:output_type -> services.tasks_svc.v1.GetRecentPatientsResponse + 17, // 63: services.tasks_svc.v1.PatientService.UpdatePatient:output_type -> services.tasks_svc.v1.UpdatePatientResponse + 19, // 64: services.tasks_svc.v1.PatientService.AssignBed:output_type -> services.tasks_svc.v1.AssignBedResponse + 21, // 65: services.tasks_svc.v1.PatientService.UnassignBed:output_type -> services.tasks_svc.v1.UnassignBedResponse + 23, // 66: services.tasks_svc.v1.PatientService.DischargePatient:output_type -> services.tasks_svc.v1.DischargePatientResponse + 25, // 67: services.tasks_svc.v1.PatientService.ReadmitPatient:output_type -> services.tasks_svc.v1.ReadmitPatientResponse + 27, // 68: services.tasks_svc.v1.PatientService.DeletePatient:output_type -> services.tasks_svc.v1.DeletePatientResponse + 55, // [55:69] is the sub-list for method output_type + 41, // [41:55] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_services_tasks_svc_v1_patient_svc_proto_init() } @@ -4093,6 +4300,7 @@ func file_services_tasks_svc_v1_patient_svc_proto_init() { } file_services_tasks_svc_v1_patient_svc_proto_msgTypes[0].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[3].OneofWrappers = []interface{}{} + file_services_tasks_svc_v1_patient_svc_proto_msgTypes[5].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[11].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[12].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[16].OneofWrappers = []interface{}{} @@ -4104,6 +4312,7 @@ func file_services_tasks_svc_v1_patient_svc_proto_init() { file_services_tasks_svc_v1_patient_svc_proto_msgTypes[30].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[32].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[36].OneofWrappers = []interface{}{} + file_services_tasks_svc_v1_patient_svc_proto_msgTypes[40].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[41].OneofWrappers = []interface{}{} file_services_tasks_svc_v1_patient_svc_proto_msgTypes[45].OneofWrappers = []interface{}{} type x struct{} diff --git a/gen/ts/libs/common/v1/types_pb.d.ts b/gen/ts/libs/common/v1/types_pb.d.ts index f38738310..ed0e54198 100644 --- a/gen/ts/libs/common/v1/types_pb.d.ts +++ b/gen/ts/libs/common/v1/types_pb.d.ts @@ -1,25 +1,31 @@ import * as jspb from 'google-protobuf' -import * as google_protobuf_wrappers_pb from 'google-protobuf/google/protobuf/wrappers_pb'; // proto import: "google/protobuf/wrappers.proto" +import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb'; // proto import: "google/protobuf/timestamp.proto" -export class StringArray extends jspb.Message { - getStringsList(): Array; - setStringsList(value: Array): StringArray; - clearStringsList(): StringArray; - addStrings(value?: google_protobuf_wrappers_pb.StringValue, index?: number): google_protobuf_wrappers_pb.StringValue; +export class Date extends jspb.Message { + getDate(): google_protobuf_timestamp_pb.Timestamp | undefined; + setDate(value?: google_protobuf_timestamp_pb.Timestamp): Date; + hasDate(): boolean; + clearDate(): Date; serializeBinary(): Uint8Array; - toObject(includeInstance?: boolean): StringArray.AsObject; - static toObject(includeInstance: boolean, msg: StringArray): StringArray.AsObject; - static serializeBinaryToWriter(message: StringArray, writer: jspb.BinaryWriter): void; - static deserializeBinary(bytes: Uint8Array): StringArray; - static deserializeBinaryFromReader(message: StringArray, reader: jspb.BinaryReader): StringArray; + toObject(includeInstance?: boolean): Date.AsObject; + static toObject(includeInstance: boolean, msg: Date): Date.AsObject; + static serializeBinaryToWriter(message: Date, writer: jspb.BinaryWriter): void; + static deserializeBinary(bytes: Uint8Array): Date; + static deserializeBinaryFromReader(message: Date, reader: jspb.BinaryReader): Date; } -export namespace StringArray { +export namespace Date { export type AsObject = { - stringsList: Array, + date?: google_protobuf_timestamp_pb.Timestamp.AsObject, } } +export enum Sex { + SEX_UNSPECIFIED = 0, + SEX_FEMALE = 1, + SEX_MALE = 2, + SEX_DIVERSE = 3, +} diff --git a/gen/ts/libs/common/v1/types_pb.js b/gen/ts/libs/common/v1/types_pb.js index d70600d0d..65c622d87 100644 --- a/gen/ts/libs/common/v1/types_pb.js +++ b/gen/ts/libs/common/v1/types_pb.js @@ -21,9 +21,10 @@ var global = (function () { return this; }).call(null) || Function('return this')(); -var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js'); -goog.object.extend(proto, google_protobuf_wrappers_pb); -goog.exportSymbol('proto.libs.common.v1.StringArray', null, global); +var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js'); +goog.object.extend(proto, google_protobuf_timestamp_pb); +goog.exportSymbol('proto.libs.common.v1.Date', null, global); +goog.exportSymbol('proto.libs.common.v1.Sex', null, global); /** * Generated by JsPbCodeGenerator. * @param {Array=} opt_data Optional initial data array, typically from a @@ -34,25 +35,18 @@ goog.exportSymbol('proto.libs.common.v1.StringArray', null, global); * @extends {jspb.Message} * @constructor */ -proto.libs.common.v1.StringArray = function(opt_data) { - jspb.Message.initialize(this, opt_data, 0, -1, proto.libs.common.v1.StringArray.repeatedFields_, null); +proto.libs.common.v1.Date = function(opt_data) { + jspb.Message.initialize(this, opt_data, 0, -1, null, null); }; -goog.inherits(proto.libs.common.v1.StringArray, jspb.Message); +goog.inherits(proto.libs.common.v1.Date, jspb.Message); if (goog.DEBUG && !COMPILED) { /** * @public * @override */ - proto.libs.common.v1.StringArray.displayName = 'proto.libs.common.v1.StringArray'; + proto.libs.common.v1.Date.displayName = 'proto.libs.common.v1.Date'; } -/** - * List of repeated fields within this message type. - * @private {!Array} - * @const - */ -proto.libs.common.v1.StringArray.repeatedFields_ = [1]; - if (jspb.Message.GENERATE_TO_OBJECT) { @@ -68,8 +62,8 @@ if (jspb.Message.GENERATE_TO_OBJECT) { * http://goto/soy-param-migration * @return {!Object} */ -proto.libs.common.v1.StringArray.prototype.toObject = function(opt_includeInstance) { - return proto.libs.common.v1.StringArray.toObject(opt_includeInstance, this); +proto.libs.common.v1.Date.prototype.toObject = function(opt_includeInstance) { + return proto.libs.common.v1.Date.toObject(opt_includeInstance, this); }; @@ -78,14 +72,13 @@ proto.libs.common.v1.StringArray.prototype.toObject = function(opt_includeInstan * @param {boolean|undefined} includeInstance Deprecated. Whether to include * the JSPB instance for transitional soy proto support: * http://goto/soy-param-migration - * @param {!proto.libs.common.v1.StringArray} msg The msg instance to transform. + * @param {!proto.libs.common.v1.Date} msg The msg instance to transform. * @return {!Object} * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.libs.common.v1.StringArray.toObject = function(includeInstance, msg) { +proto.libs.common.v1.Date.toObject = function(includeInstance, msg) { var f, obj = { - stringsList: jspb.Message.toObjectList(msg.getStringsList(), - google_protobuf_wrappers_pb.StringValue.toObject, includeInstance) + date: (f = msg.getDate()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f) }; if (includeInstance) { @@ -99,23 +92,23 @@ proto.libs.common.v1.StringArray.toObject = function(includeInstance, msg) { /** * Deserializes binary data (in protobuf wire format). * @param {jspb.ByteSource} bytes The bytes to deserialize. - * @return {!proto.libs.common.v1.StringArray} + * @return {!proto.libs.common.v1.Date} */ -proto.libs.common.v1.StringArray.deserializeBinary = function(bytes) { +proto.libs.common.v1.Date.deserializeBinary = function(bytes) { var reader = new jspb.BinaryReader(bytes); - var msg = new proto.libs.common.v1.StringArray; - return proto.libs.common.v1.StringArray.deserializeBinaryFromReader(msg, reader); + var msg = new proto.libs.common.v1.Date; + return proto.libs.common.v1.Date.deserializeBinaryFromReader(msg, reader); }; /** * Deserializes binary data (in protobuf wire format) from the * given reader into the given message object. - * @param {!proto.libs.common.v1.StringArray} msg The message object to deserialize into. + * @param {!proto.libs.common.v1.Date} msg The message object to deserialize into. * @param {!jspb.BinaryReader} reader The BinaryReader to use. - * @return {!proto.libs.common.v1.StringArray} + * @return {!proto.libs.common.v1.Date} */ -proto.libs.common.v1.StringArray.deserializeBinaryFromReader = function(msg, reader) { +proto.libs.common.v1.Date.deserializeBinaryFromReader = function(msg, reader) { while (reader.nextField()) { if (reader.isEndGroup()) { break; @@ -123,9 +116,9 @@ proto.libs.common.v1.StringArray.deserializeBinaryFromReader = function(msg, rea var field = reader.getFieldNumber(); switch (field) { case 1: - var value = new google_protobuf_wrappers_pb.StringValue; - reader.readMessage(value,google_protobuf_wrappers_pb.StringValue.deserializeBinaryFromReader); - msg.addStrings(value); + var value = new google_protobuf_timestamp_pb.Timestamp; + reader.readMessage(value,google_protobuf_timestamp_pb.Timestamp.deserializeBinaryFromReader); + msg.setDate(value); break; default: reader.skipField(); @@ -140,9 +133,9 @@ proto.libs.common.v1.StringArray.deserializeBinaryFromReader = function(msg, rea * Serializes the message to binary data (in protobuf wire format). * @return {!Uint8Array} */ -proto.libs.common.v1.StringArray.prototype.serializeBinary = function() { +proto.libs.common.v1.Date.prototype.serializeBinary = function() { var writer = new jspb.BinaryWriter(); - proto.libs.common.v1.StringArray.serializeBinaryToWriter(this, writer); + proto.libs.common.v1.Date.serializeBinaryToWriter(this, writer); return writer.getResultBuffer(); }; @@ -150,59 +143,68 @@ proto.libs.common.v1.StringArray.prototype.serializeBinary = function() { /** * Serializes the given message to binary data (in protobuf wire * format), writing to the given BinaryWriter. - * @param {!proto.libs.common.v1.StringArray} message + * @param {!proto.libs.common.v1.Date} message * @param {!jspb.BinaryWriter} writer * @suppress {unusedLocalVariables} f is only used for nested messages */ -proto.libs.common.v1.StringArray.serializeBinaryToWriter = function(message, writer) { +proto.libs.common.v1.Date.serializeBinaryToWriter = function(message, writer) { var f = undefined; - f = message.getStringsList(); - if (f.length > 0) { - writer.writeRepeatedMessage( + f = message.getDate(); + if (f != null) { + writer.writeMessage( 1, f, - google_protobuf_wrappers_pb.StringValue.serializeBinaryToWriter + google_protobuf_timestamp_pb.Timestamp.serializeBinaryToWriter ); } }; /** - * repeated google.protobuf.StringValue strings = 1; - * @return {!Array} + * optional google.protobuf.Timestamp date = 1; + * @return {?proto.google.protobuf.Timestamp} */ -proto.libs.common.v1.StringArray.prototype.getStringsList = function() { - return /** @type{!Array} */ ( - jspb.Message.getRepeatedWrapperField(this, google_protobuf_wrappers_pb.StringValue, 1)); +proto.libs.common.v1.Date.prototype.getDate = function() { + return /** @type{?proto.google.protobuf.Timestamp} */ ( + jspb.Message.getWrapperField(this, google_protobuf_timestamp_pb.Timestamp, 1)); }; /** - * @param {!Array} value - * @return {!proto.libs.common.v1.StringArray} returns this + * @param {?proto.google.protobuf.Timestamp|undefined} value + * @return {!proto.libs.common.v1.Date} returns this */ -proto.libs.common.v1.StringArray.prototype.setStringsList = function(value) { - return jspb.Message.setRepeatedWrapperField(this, 1, value); +proto.libs.common.v1.Date.prototype.setDate = function(value) { + return jspb.Message.setWrapperField(this, 1, value); }; /** - * @param {!proto.google.protobuf.StringValue=} opt_value - * @param {number=} opt_index - * @return {!proto.google.protobuf.StringValue} + * Clears the message field making it undefined. + * @return {!proto.libs.common.v1.Date} returns this */ -proto.libs.common.v1.StringArray.prototype.addStrings = function(opt_value, opt_index) { - return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.google.protobuf.StringValue, opt_index); +proto.libs.common.v1.Date.prototype.clearDate = function() { + return this.setDate(undefined); }; /** - * Clears the list making it empty but non-null. - * @return {!proto.libs.common.v1.StringArray} returns this + * Returns whether this field is set. + * @return {boolean} */ -proto.libs.common.v1.StringArray.prototype.clearStringsList = function() { - return this.setStringsList([]); +proto.libs.common.v1.Date.prototype.hasDate = function() { + return jspb.Message.getField(this, 1) != null; }; +/** + * @enum {number} + */ +proto.libs.common.v1.Sex = { + SEX_UNSPECIFIED: 0, + SEX_FEMALE: 1, + SEX_MALE: 2, + SEX_DIVERSE: 3 +}; + goog.object.extend(exports, proto.libs.common.v1); diff --git a/gen/ts/services/property_svc/v1/property_value_svc_grpc_web_pb.js b/gen/ts/services/property_svc/v1/property_value_svc_grpc_web_pb.js index e1181a89c..58d1940e0 100644 --- a/gen/ts/services/property_svc/v1/property_value_svc_grpc_web_pb.js +++ b/gen/ts/services/property_svc/v1/property_value_svc_grpc_web_pb.js @@ -25,6 +25,8 @@ var services_property_svc_v1_types_pb = require('../../../services/property_svc/ var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js') var libs_common_v1_conflict_pb = require('../../../libs/common/v1/conflict_pb.js') + +var libs_common_v1_types_pb = require('../../../libs/common/v1/types_pb.js') const proto = {}; proto.services = {}; proto.services.property_svc = {}; diff --git a/gen/ts/services/property_svc/v1/property_value_svc_pb.d.ts b/gen/ts/services/property_svc/v1/property_value_svc_pb.d.ts index 6b9ae98ae..006c44e19 100644 --- a/gen/ts/services/property_svc/v1/property_value_svc_pb.d.ts +++ b/gen/ts/services/property_svc/v1/property_value_svc_pb.d.ts @@ -3,6 +3,7 @@ import * as jspb from 'google-protobuf' import * as services_property_svc_v1_types_pb from '../../../services/property_svc/v1/types_pb'; // proto import: "services/property_svc/v1/types.proto" import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb'; // proto import: "google/protobuf/timestamp.proto" import * as libs_common_v1_conflict_pb from '../../../libs/common/v1/conflict_pb'; // proto import: "libs/common/v1/conflict.proto" +import * as libs_common_v1_types_pb from '../../../libs/common/v1/types_pb'; // proto import: "libs/common/v1/types.proto" export class SelectValueOption extends jspb.Message { @@ -67,8 +68,8 @@ export class AttachPropertyValueRequest extends jspb.Message { getBoolValue(): boolean; setBoolValue(value: boolean): AttachPropertyValueRequest; - getDateValue(): services_property_svc_v1_types_pb.Date | undefined; - setDateValue(value?: services_property_svc_v1_types_pb.Date): AttachPropertyValueRequest; + getDateValue(): libs_common_v1_types_pb.Date | undefined; + setDateValue(value?: libs_common_v1_types_pb.Date): AttachPropertyValueRequest; hasDateValue(): boolean; clearDateValue(): AttachPropertyValueRequest; @@ -107,7 +108,7 @@ export namespace AttachPropertyValueRequest { textValue: string, numberValue: number, boolValue: boolean, - dateValue?: services_property_svc_v1_types_pb.Date.AsObject, + dateValue?: libs_common_v1_types_pb.Date.AsObject, dateTimeValue?: google_protobuf_timestamp_pb.Timestamp.AsObject, selectValue: string, multiSelectValue?: AttachPropertyValueRequest.MultiSelectValue.AsObject, @@ -343,8 +344,8 @@ export namespace GetAttachedPropertyValuesResponse { getBoolValue(): boolean; setBoolValue(value: boolean): Value; - getDateValue(): services_property_svc_v1_types_pb.Date | undefined; - setDateValue(value?: services_property_svc_v1_types_pb.Date): Value; + getDateValue(): libs_common_v1_types_pb.Date | undefined; + setDateValue(value?: libs_common_v1_types_pb.Date): Value; hasDateValue(): boolean; clearDateValue(): Value; @@ -391,7 +392,7 @@ export namespace GetAttachedPropertyValuesResponse { textValue: string, numberValue: number, boolValue: boolean, - dateValue?: services_property_svc_v1_types_pb.Date.AsObject, + dateValue?: libs_common_v1_types_pb.Date.AsObject, dateTimeValue?: google_protobuf_timestamp_pb.Timestamp.AsObject, selectValue?: SelectValueOption.AsObject, multiSelectValue?: MultiSelectValue.AsObject, diff --git a/gen/ts/services/property_svc/v1/property_value_svc_pb.js b/gen/ts/services/property_svc/v1/property_value_svc_pb.js index 21e796b49..4002bedbb 100644 --- a/gen/ts/services/property_svc/v1/property_value_svc_pb.js +++ b/gen/ts/services/property_svc/v1/property_value_svc_pb.js @@ -27,6 +27,8 @@ var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/time goog.object.extend(proto, google_protobuf_timestamp_pb); var libs_common_v1_conflict_pb = require('../../../libs/common/v1/conflict_pb.js'); goog.object.extend(proto, libs_common_v1_conflict_pb); +var libs_common_v1_types_pb = require('../../../libs/common/v1/types_pb.js'); +goog.object.extend(proto, libs_common_v1_types_pb); goog.exportSymbol('proto.services.property_svc.v1.AttachPropertyValueRequest', null, global); goog.exportSymbol('proto.services.property_svc.v1.AttachPropertyValueRequest.MultiSelectValue', null, global); goog.exportSymbol('proto.services.property_svc.v1.AttachPropertyValueRequest.ValueCase', null, global); @@ -668,7 +670,7 @@ proto.services.property_svc.v1.AttachPropertyValueRequest.toObject = function(in textValue: jspb.Message.getFieldWithDefault(msg, 3, ""), numberValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 4, 0.0), boolValue: jspb.Message.getBooleanFieldWithDefault(msg, 5, false), - dateValue: (f = msg.getDateValue()) && services_property_svc_v1_types_pb.Date.toObject(includeInstance, f), + dateValue: (f = msg.getDateValue()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), dateTimeValue: (f = msg.getDateTimeValue()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), selectValue: jspb.Message.getFieldWithDefault(msg, 8, ""), multiSelectValue: (f = msg.getMultiSelectValue()) && proto.services.property_svc.v1.AttachPropertyValueRequest.MultiSelectValue.toObject(includeInstance, f), @@ -730,8 +732,8 @@ proto.services.property_svc.v1.AttachPropertyValueRequest.deserializeBinaryFromR msg.setBoolValue(value); break; case 6: - var value = new services_property_svc_v1_types_pb.Date; - reader.readMessage(value,services_property_svc_v1_types_pb.Date.deserializeBinaryFromReader); + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); msg.setDateValue(value); break; case 7: @@ -821,7 +823,7 @@ proto.services.property_svc.v1.AttachPropertyValueRequest.serializeBinaryToWrite writer.writeMessage( 6, f, - services_property_svc_v1_types_pb.Date.serializeBinaryToWriter + libs_common_v1_types_pb.Date.serializeBinaryToWriter ); } f = message.getDateTimeValue(); @@ -1207,17 +1209,17 @@ proto.services.property_svc.v1.AttachPropertyValueRequest.prototype.hasBoolValue /** - * optional Date date_value = 6; - * @return {?proto.services.property_svc.v1.Date} + * optional libs.common.v1.Date date_value = 6; + * @return {?proto.libs.common.v1.Date} */ proto.services.property_svc.v1.AttachPropertyValueRequest.prototype.getDateValue = function() { - return /** @type{?proto.services.property_svc.v1.Date} */ ( - jspb.Message.getWrapperField(this, services_property_svc_v1_types_pb.Date, 6)); + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 6)); }; /** - * @param {?proto.services.property_svc.v1.Date|undefined} value + * @param {?proto.libs.common.v1.Date|undefined} value * @return {!proto.services.property_svc.v1.AttachPropertyValueRequest} returns this */ proto.services.property_svc.v1.AttachPropertyValueRequest.prototype.setDateValue = function(value) { @@ -2413,7 +2415,7 @@ proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.toObject textValue: jspb.Message.getFieldWithDefault(msg, 6, ""), numberValue: jspb.Message.getFloatingPointFieldWithDefault(msg, 7, 0.0), boolValue: jspb.Message.getBooleanFieldWithDefault(msg, 8, false), - dateValue: (f = msg.getDateValue()) && services_property_svc_v1_types_pb.Date.toObject(includeInstance, f), + dateValue: (f = msg.getDateValue()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), dateTimeValue: (f = msg.getDateTimeValue()) && google_protobuf_timestamp_pb.Timestamp.toObject(includeInstance, f), selectValue: (f = msg.getSelectValue()) && proto.services.property_svc.v1.SelectValueOption.toObject(includeInstance, f), multiSelectValue: (f = msg.getMultiSelectValue()) && proto.services.property_svc.v1.MultiSelectValue.toObject(includeInstance, f), @@ -2488,8 +2490,8 @@ proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.deseriali msg.setBoolValue(value); break; case 9: - var value = new services_property_svc_v1_types_pb.Date; - reader.readMessage(value,services_property_svc_v1_types_pb.Date.deserializeBinaryFromReader); + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); msg.setDateValue(value); break; case 10: @@ -2605,7 +2607,7 @@ proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.serialize writer.writeMessage( 9, f, - services_property_svc_v1_types_pb.Date.serializeBinaryToWriter + libs_common_v1_types_pb.Date.serializeBinaryToWriter ); } f = message.getDateTimeValue(); @@ -2866,17 +2868,17 @@ proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.prototype /** - * optional Date date_value = 9; - * @return {?proto.services.property_svc.v1.Date} + * optional libs.common.v1.Date date_value = 9; + * @return {?proto.libs.common.v1.Date} */ proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.prototype.getDateValue = function() { - return /** @type{?proto.services.property_svc.v1.Date} */ ( - jspb.Message.getWrapperField(this, services_property_svc_v1_types_pb.Date, 9)); + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 9)); }; /** - * @param {?proto.services.property_svc.v1.Date|undefined} value + * @param {?proto.libs.common.v1.Date|undefined} value * @return {!proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value} returns this */ proto.services.property_svc.v1.GetAttachedPropertyValuesResponse.Value.prototype.setDateValue = function(value) { diff --git a/gen/ts/services/tasks_svc/v1/patient_svc_grpc_web_pb.js b/gen/ts/services/tasks_svc/v1/patient_svc_grpc_web_pb.js index 08edb8d39..b865b6568 100644 --- a/gen/ts/services/tasks_svc/v1/patient_svc_grpc_web_pb.js +++ b/gen/ts/services/tasks_svc/v1/patient_svc_grpc_web_pb.js @@ -23,6 +23,8 @@ grpc.web = require('grpc-web'); var services_tasks_svc_v1_types_pb = require('../../../services/tasks_svc/v1/types_pb.js') var libs_common_v1_conflict_pb = require('../../../libs/common/v1/conflict_pb.js') + +var libs_common_v1_types_pb = require('../../../libs/common/v1/types_pb.js') const proto = {}; proto.services = {}; proto.services.tasks_svc = {}; diff --git a/gen/ts/services/tasks_svc/v1/patient_svc_pb.d.ts b/gen/ts/services/tasks_svc/v1/patient_svc_pb.d.ts index 6c20da1f1..85f38f97a 100644 --- a/gen/ts/services/tasks_svc/v1/patient_svc_pb.d.ts +++ b/gen/ts/services/tasks_svc/v1/patient_svc_pb.d.ts @@ -2,6 +2,7 @@ import * as jspb from 'google-protobuf' import * as services_tasks_svc_v1_types_pb from '../../../services/tasks_svc/v1/types_pb'; // proto import: "services/tasks_svc/v1/types.proto" import * as libs_common_v1_conflict_pb from '../../../libs/common/v1/conflict_pb'; // proto import: "libs/common/v1/conflict.proto" +import * as libs_common_v1_types_pb from '../../../libs/common/v1/types_pb'; // proto import: "libs/common/v1/types.proto" export class CreatePatientRequest extends jspb.Message { @@ -13,6 +14,16 @@ export class CreatePatientRequest extends jspb.Message { hasNotes(): boolean; clearNotes(): CreatePatientRequest; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): CreatePatientRequest; + hasSex(): boolean; + clearSex(): CreatePatientRequest; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): CreatePatientRequest; + hasDateOfBirth(): boolean; + clearDateOfBirth(): CreatePatientRequest; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): CreatePatientRequest.AsObject; static toObject(includeInstance: boolean, msg: CreatePatientRequest): CreatePatientRequest.AsObject; @@ -25,12 +36,24 @@ export namespace CreatePatientRequest { export type AsObject = { humanReadableIdentifier: string, notes?: string, + sex?: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, } export enum NotesCase { _NOTES_NOT_SET = 0, NOTES = 2, } + + export enum SexCase { + _SEX_NOT_SET = 0, + SEX = 3, + } + + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 4, + } } export class CreatePatientResponse extends jspb.Message { @@ -83,6 +106,14 @@ export class GetPatientResponse extends jspb.Message { getNotes(): string; setNotes(value: string): GetPatientResponse; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): GetPatientResponse; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): GetPatientResponse; + hasDateOfBirth(): boolean; + clearDateOfBirth(): GetPatientResponse; + getRoom(): GetPatientResponse.Room | undefined; setRoom(value?: GetPatientResponse.Room): GetPatientResponse; hasRoom(): boolean; @@ -109,6 +140,8 @@ export namespace GetPatientResponse { id: string, humanReadableIdentifier: string, notes: string, + sex: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, room?: GetPatientResponse.Room.AsObject, bed?: GetPatientResponse.Bed.AsObject, consistency: string, @@ -172,6 +205,11 @@ export namespace GetPatientResponse { } + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 11, + } + export enum RoomCase { _ROOM_NOT_SET = 0, ROOM = 7, @@ -211,6 +249,14 @@ export class GetPatientByBedResponse extends jspb.Message { getNotes(): string; setNotes(value: string): GetPatientByBedResponse; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): GetPatientByBedResponse; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): GetPatientByBedResponse; + hasDateOfBirth(): boolean; + clearDateOfBirth(): GetPatientByBedResponse; + getBedId(): string; setBedId(value: string): GetPatientByBedResponse; @@ -230,9 +276,16 @@ export namespace GetPatientByBedResponse { id: string, humanReadableIdentifier: string, notes: string, + sex: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, bedId: string, consistency: string, } + + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 7, + } } export class GetPatientsByWardRequest extends jspb.Message { @@ -282,6 +335,14 @@ export namespace GetPatientsByWardResponse { getNotes(): string; setNotes(value: string): Patient; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): Patient; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): Patient; + hasDateOfBirth(): boolean; + clearDateOfBirth(): Patient; + getBedId(): string; setBedId(value: string): Patient; hasBedId(): boolean; @@ -303,10 +364,17 @@ export namespace GetPatientsByWardResponse { id: string, humanReadableIdentifier: string, notes: string, + sex: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, bedId?: string, consistency: string, } + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 7, + } + export enum BedIdCase { _BED_ID_NOT_SET = 0, BED_ID = 4, @@ -421,6 +489,9 @@ export namespace GetPatientAssignmentByWardResponse { getName(): string; setName(value: string): Patient; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): Patient; + getConsistency(): string; setConsistency(value: string): Patient; @@ -436,6 +507,7 @@ export namespace GetPatientAssignmentByWardResponse { export type AsObject = { id: string, name: string, + sex: libs_common_v1_types_pb.Sex, consistency: string, } } @@ -479,6 +551,14 @@ export class GetPatientDetailsResponse extends jspb.Message { getNotes(): string; setNotes(value: string): GetPatientDetailsResponse; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): GetPatientDetailsResponse; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): GetPatientDetailsResponse; + hasDateOfBirth(): boolean; + clearDateOfBirth(): GetPatientDetailsResponse; + getTasksList(): Array; setTasksList(value: Array): GetPatientDetailsResponse; clearTasksList(): GetPatientDetailsResponse; @@ -513,6 +593,8 @@ export namespace GetPatientDetailsResponse { id: string, humanReadableIdentifier: string, notes: string, + sex: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, tasksList: Array, room?: GetPatientDetailsResponse.Room.AsObject, bed?: GetPatientDetailsResponse.Bed.AsObject, @@ -665,6 +747,11 @@ export namespace GetPatientDetailsResponse { } + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 10, + } + export enum RoomCase { _ROOM_NOT_SET = 0, ROOM = 5, @@ -797,6 +884,17 @@ export namespace GetPatientListResponse { getHumanReadableIdentifier(): string; setHumanReadableIdentifier(value: string): Patient; + getNotes(): string; + setNotes(value: string): Patient; + + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): Patient; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): Patient; + hasDateOfBirth(): boolean; + clearDateOfBirth(): Patient; + getRoom(): GetPatientListResponse.Room | undefined; setRoom(value?: GetPatientListResponse.Room): Patient; hasRoom(): boolean; @@ -807,9 +905,6 @@ export namespace GetPatientListResponse { hasBed(): boolean; clearBed(): Patient; - getNotes(): string; - setNotes(value: string): Patient; - getTasksList(): Array; setTasksList(value: Array): Patient; clearTasksList(): Patient; @@ -830,12 +925,19 @@ export namespace GetPatientListResponse { export type AsObject = { id: string, humanReadableIdentifier: string, + notes: string, + sex: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, room?: GetPatientListResponse.Room.AsObject, bed?: GetPatientListResponse.Bed.AsObject, - notes: string, tasksList: Array, consistency: string, } + + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 9, + } } @@ -1025,6 +1127,9 @@ export namespace GetRecentPatientsResponse { getHumanReadableIdentifier(): string; setHumanReadableIdentifier(value: string): Patient; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): Patient; + getRoom(): GetRecentPatientsResponse.Room | undefined; setRoom(value?: GetRecentPatientsResponse.Room): Patient; hasRoom(): boolean; @@ -1050,6 +1155,7 @@ export namespace GetRecentPatientsResponse { export type AsObject = { id: string, humanReadableIdentifier: string, + sex: libs_common_v1_types_pb.Sex, room?: GetRecentPatientsResponse.Room.AsObject, bed?: GetRecentPatientsResponse.Bed.AsObject, consistency: string, @@ -1082,6 +1188,16 @@ export class UpdatePatientRequest extends jspb.Message { hasNotes(): boolean; clearNotes(): UpdatePatientRequest; + getSex(): libs_common_v1_types_pb.Sex; + setSex(value: libs_common_v1_types_pb.Sex): UpdatePatientRequest; + hasSex(): boolean; + clearSex(): UpdatePatientRequest; + + getDateOfBirth(): libs_common_v1_types_pb.Date | undefined; + setDateOfBirth(value?: libs_common_v1_types_pb.Date): UpdatePatientRequest; + hasDateOfBirth(): boolean; + clearDateOfBirth(): UpdatePatientRequest; + getConsistency(): string; setConsistency(value: string): UpdatePatientRequest; hasConsistency(): boolean; @@ -1100,6 +1216,8 @@ export namespace UpdatePatientRequest { id: string, humanReadableIdentifier?: string, notes?: string, + sex?: libs_common_v1_types_pb.Sex, + dateOfBirth?: libs_common_v1_types_pb.Date.AsObject, consistency?: string, } @@ -1113,6 +1231,16 @@ export namespace UpdatePatientRequest { NOTES = 3, } + export enum SexCase { + _SEX_NOT_SET = 0, + SEX = 5, + } + + export enum DateOfBirthCase { + _DATE_OF_BIRTH_NOT_SET = 0, + DATE_OF_BIRTH = 6, + } + export enum ConsistencyCase { _CONSISTENCY_NOT_SET = 0, CONSISTENCY = 4, diff --git a/gen/ts/services/tasks_svc/v1/patient_svc_pb.js b/gen/ts/services/tasks_svc/v1/patient_svc_pb.js index 286a33f6d..40dae1089 100644 --- a/gen/ts/services/tasks_svc/v1/patient_svc_pb.js +++ b/gen/ts/services/tasks_svc/v1/patient_svc_pb.js @@ -25,6 +25,8 @@ var services_tasks_svc_v1_types_pb = require('../../../services/tasks_svc/v1/typ goog.object.extend(proto, services_tasks_svc_v1_types_pb); var libs_common_v1_conflict_pb = require('../../../libs/common/v1/conflict_pb.js'); goog.object.extend(proto, libs_common_v1_conflict_pb); +var libs_common_v1_types_pb = require('../../../libs/common/v1/types_pb.js'); +goog.object.extend(proto, libs_common_v1_types_pb); goog.exportSymbol('proto.services.tasks_svc.v1.AssignBedRequest', null, global); goog.exportSymbol('proto.services.tasks_svc.v1.AssignBedResponse', null, global); goog.exportSymbol('proto.services.tasks_svc.v1.CreatePatientRequest', null, global); @@ -1070,7 +1072,9 @@ proto.services.tasks_svc.v1.CreatePatientRequest.prototype.toObject = function(o proto.services.tasks_svc.v1.CreatePatientRequest.toObject = function(includeInstance, msg) { var f, obj = { humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 1, ""), - notes: jspb.Message.getFieldWithDefault(msg, 2, "") + notes: jspb.Message.getFieldWithDefault(msg, 2, ""), + sex: jspb.Message.getFieldWithDefault(msg, 3, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f) }; if (includeInstance) { @@ -1115,6 +1119,15 @@ proto.services.tasks_svc.v1.CreatePatientRequest.deserializeBinaryFromReader = f var value = /** @type {string} */ (reader.readString()); msg.setNotes(value); break; + case 3: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 4: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; default: reader.skipField(); break; @@ -1158,6 +1171,21 @@ proto.services.tasks_svc.v1.CreatePatientRequest.serializeBinaryToWriter = funct f ); } + f = /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getField(message, 3)); + if (f != null) { + writer.writeEnum( + 3, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 4, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } }; @@ -1215,6 +1243,79 @@ proto.services.tasks_svc.v1.CreatePatientRequest.prototype.hasNotes = function() }; +/** + * optional libs.common.v1.Sex sex = 3; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.CreatePatientRequest} returns this + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.setSex = function(value) { + return jspb.Message.setField(this, 3, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.services.tasks_svc.v1.CreatePatientRequest} returns this + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.clearSex = function() { + return jspb.Message.setField(this, 3, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.hasSex = function() { + return jspb.Message.getField(this, 3) != null; +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 4; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 4)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.CreatePatientRequest} returns this +*/ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 4, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.CreatePatientRequest} returns this + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.CreatePatientRequest.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 4) != null; +}; + + @@ -1540,6 +1641,8 @@ proto.services.tasks_svc.v1.GetPatientResponse.toObject = function(includeInstan id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), notes: jspb.Message.getFieldWithDefault(msg, 3, ""), + sex: jspb.Message.getFieldWithDefault(msg, 10, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), room: (f = msg.getRoom()) && proto.services.tasks_svc.v1.GetPatientResponse.Room.toObject(includeInstance, f), bed: (f = msg.getBed()) && proto.services.tasks_svc.v1.GetPatientResponse.Bed.toObject(includeInstance, f), consistency: jspb.Message.getFieldWithDefault(msg, 9, "") @@ -1591,6 +1694,15 @@ proto.services.tasks_svc.v1.GetPatientResponse.deserializeBinaryFromReader = fun var value = /** @type {string} */ (reader.readString()); msg.setNotes(value); break; + case 10: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 11: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; case 7: var value = new proto.services.tasks_svc.v1.GetPatientResponse.Room; reader.readMessage(value,proto.services.tasks_svc.v1.GetPatientResponse.Room.deserializeBinaryFromReader); @@ -1655,6 +1767,21 @@ proto.services.tasks_svc.v1.GetPatientResponse.serializeBinaryToWriter = functio f ); } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 10, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 11, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } f = message.getRoom(); if (f != null) { writer.writeMessage( @@ -2145,6 +2272,61 @@ proto.services.tasks_svc.v1.GetPatientResponse.prototype.setNotes = function(val }; +/** + * optional libs.common.v1.Sex sex = 10; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetPatientResponse.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 10, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetPatientResponse} returns this + */ +proto.services.tasks_svc.v1.GetPatientResponse.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 10, value); +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 11; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.GetPatientResponse.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 11)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.GetPatientResponse} returns this +*/ +proto.services.tasks_svc.v1.GetPatientResponse.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 11, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.GetPatientResponse} returns this + */ +proto.services.tasks_svc.v1.GetPatientResponse.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.GetPatientResponse.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 11) != null; +}; + + /** * optional Room room = 7; * @return {?proto.services.tasks_svc.v1.GetPatientResponse.Room} @@ -2402,6 +2584,8 @@ proto.services.tasks_svc.v1.GetPatientByBedResponse.toObject = function(includeI id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), notes: jspb.Message.getFieldWithDefault(msg, 3, ""), + sex: jspb.Message.getFieldWithDefault(msg, 6, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), bedId: jspb.Message.getFieldWithDefault(msg, 4, ""), consistency: jspb.Message.getFieldWithDefault(msg, 5, "") }; @@ -2452,6 +2636,15 @@ proto.services.tasks_svc.v1.GetPatientByBedResponse.deserializeBinaryFromReader var value = /** @type {string} */ (reader.readString()); msg.setNotes(value); break; + case 6: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 7: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; case 4: var value = /** @type {string} */ (reader.readString()); msg.setBedId(value); @@ -2510,6 +2703,21 @@ proto.services.tasks_svc.v1.GetPatientByBedResponse.serializeBinaryToWriter = fu f ); } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 6, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 7, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } f = message.getBedId(); if (f.length > 0) { writer.writeString( @@ -2581,6 +2789,61 @@ proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.setNotes = functio }; +/** + * optional libs.common.v1.Sex sex = 6; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetPatientByBedResponse} returns this + */ +proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 6, value); +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 7; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 7)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.GetPatientByBedResponse} returns this +*/ +proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.GetPatientByBedResponse} returns this + */ +proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.GetPatientByBedResponse.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 7) != null; +}; + + /** * optional string bed_id = 4; * @return {string} @@ -2904,6 +3167,8 @@ proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.toObject = functio id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), notes: jspb.Message.getFieldWithDefault(msg, 3, ""), + sex: jspb.Message.getFieldWithDefault(msg, 6, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), bedId: jspb.Message.getFieldWithDefault(msg, 4, ""), consistency: jspb.Message.getFieldWithDefault(msg, 5, "") }; @@ -2954,6 +3219,15 @@ proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.deserializeBinaryF var value = /** @type {string} */ (reader.readString()); msg.setNotes(value); break; + case 6: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 7: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; case 4: var value = /** @type {string} */ (reader.readString()); msg.setBedId(value); @@ -3012,6 +3286,21 @@ proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.serializeBinaryToW f ); } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 6, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 7, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } f = /** @type {string} */ (jspb.Message.getField(message, 4)); if (f != null) { writer.writeString( @@ -3083,6 +3372,61 @@ proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.setNotes }; +/** + * optional libs.common.v1.Sex sex = 6; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient} returns this + */ +proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 6, value); +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 7; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 7)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient} returns this +*/ +proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 7, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient} returns this + */ +proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.GetPatientsByWardResponse.Patient.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 7) != null; +}; + + /** * optional string bed_id = 4; * @return {string} @@ -3769,6 +4113,7 @@ proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient. var f, obj = { id: jspb.Message.getFieldWithDefault(msg, 1, ""), name: jspb.Message.getFieldWithDefault(msg, 2, ""), + sex: jspb.Message.getFieldWithDefault(msg, 4, 0), consistency: jspb.Message.getFieldWithDefault(msg, 3, "") }; @@ -3814,6 +4159,10 @@ proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient. var value = /** @type {string} */ (reader.readString()); msg.setName(value); break; + case 4: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; case 3: var value = /** @type {string} */ (reader.readString()); msg.setConsistency(value); @@ -3861,6 +4210,13 @@ proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient. f ); } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 4, + f + ); + } f = message.getConsistency(); if (f.length > 0) { writer.writeString( @@ -3907,6 +4263,24 @@ proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient. }; +/** + * optional libs.common.v1.Sex sex = 4; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 4, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient} returns this + */ +proto.services.tasks_svc.v1.GetPatientAssignmentByWardResponse.Room.Bed.Patient.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 4, value); +}; + + /** * optional string consistency = 3; * @return {string} @@ -4318,6 +4692,8 @@ proto.services.tasks_svc.v1.GetPatientDetailsResponse.toObject = function(includ id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), notes: jspb.Message.getFieldWithDefault(msg, 3, ""), + sex: jspb.Message.getFieldWithDefault(msg, 9, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), tasksList: jspb.Message.toObjectList(msg.getTasksList(), proto.services.tasks_svc.v1.GetPatientDetailsResponse.Task.toObject, includeInstance), room: (f = msg.getRoom()) && proto.services.tasks_svc.v1.GetPatientDetailsResponse.Room.toObject(includeInstance, f), @@ -4372,6 +4748,15 @@ proto.services.tasks_svc.v1.GetPatientDetailsResponse.deserializeBinaryFromReade var value = /** @type {string} */ (reader.readString()); msg.setNotes(value); break; + case 9: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 10: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; case 4: var value = new proto.services.tasks_svc.v1.GetPatientDetailsResponse.Task; reader.readMessage(value,proto.services.tasks_svc.v1.GetPatientDetailsResponse.Task.deserializeBinaryFromReader); @@ -4445,6 +4830,21 @@ proto.services.tasks_svc.v1.GetPatientDetailsResponse.serializeBinaryToWriter = f ); } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 9, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 10, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } f = message.getTasksList(); if (f.length > 0) { writer.writeRepeatedMessage( @@ -5558,6 +5958,61 @@ proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.setNotes = funct }; +/** + * optional libs.common.v1.Sex sex = 9; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 9, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetPatientDetailsResponse} returns this + */ +proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 9, value); +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 10; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 10)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.GetPatientDetailsResponse} returns this +*/ +proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 10, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.GetPatientDetailsResponse} returns this + */ +proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.GetPatientDetailsResponse.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 10) != null; +}; + + /** * repeated Task tasks = 4; * @return {!Array} @@ -6457,9 +6912,11 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.toObject = function(i var f, obj = { id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), + notes: jspb.Message.getFieldWithDefault(msg, 5, ""), + sex: jspb.Message.getFieldWithDefault(msg, 8, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), room: (f = msg.getRoom()) && proto.services.tasks_svc.v1.GetPatientListResponse.Room.toObject(includeInstance, f), bed: (f = msg.getBed()) && proto.services.tasks_svc.v1.GetPatientListResponse.Bed.toObject(includeInstance, f), - notes: jspb.Message.getFieldWithDefault(msg, 5, ""), tasksList: jspb.Message.toObjectList(msg.getTasksList(), proto.services.tasks_svc.v1.GetPatientListResponse.Task.toObject, includeInstance), consistency: jspb.Message.getFieldWithDefault(msg, 7, "") @@ -6507,6 +6964,19 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.deserializeBinaryFrom var value = /** @type {string} */ (reader.readString()); msg.setHumanReadableIdentifier(value); break; + case 5: + var value = /** @type {string} */ (reader.readString()); + msg.setNotes(value); + break; + case 8: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 9: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; case 3: var value = new proto.services.tasks_svc.v1.GetPatientListResponse.Room; reader.readMessage(value,proto.services.tasks_svc.v1.GetPatientListResponse.Room.deserializeBinaryFromReader); @@ -6517,10 +6987,6 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.deserializeBinaryFrom reader.readMessage(value,proto.services.tasks_svc.v1.GetPatientListResponse.Bed.deserializeBinaryFromReader); msg.setBed(value); break; - case 5: - var value = /** @type {string} */ (reader.readString()); - msg.setNotes(value); - break; case 6: var value = new proto.services.tasks_svc.v1.GetPatientListResponse.Task; reader.readMessage(value,proto.services.tasks_svc.v1.GetPatientListResponse.Task.deserializeBinaryFromReader); @@ -6573,6 +7039,28 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.serializeBinaryToWrit f ); } + f = message.getNotes(); + if (f.length > 0) { + writer.writeString( + 5, + f + ); + } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 8, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 9, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } f = message.getRoom(); if (f != null) { writer.writeMessage( @@ -6589,13 +7077,6 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.serializeBinaryToWrit proto.services.tasks_svc.v1.GetPatientListResponse.Bed.serializeBinaryToWriter ); } - f = message.getNotes(); - if (f.length > 0) { - writer.writeString( - 5, - f - ); - } f = message.getTasksList(); if (f.length > 0) { writer.writeRepeatedMessage( @@ -6650,6 +7131,79 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.setHumanRea }; +/** + * optional string notes = 5; + * @return {string} + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.getNotes = function() { + return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); +}; + + +/** + * @param {string} value + * @return {!proto.services.tasks_svc.v1.GetPatientListResponse.Patient} returns this + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.setNotes = function(value) { + return jspb.Message.setProto3StringField(this, 5, value); +}; + + +/** + * optional libs.common.v1.Sex sex = 8; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 8, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetPatientListResponse.Patient} returns this + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 8, value); +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 9; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 9)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.GetPatientListResponse.Patient} returns this +*/ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 9, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.GetPatientListResponse.Patient} returns this + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 9) != null; +}; + + /** * optional Room room = 3; * @return {?proto.services.tasks_svc.v1.GetPatientListResponse.Room} @@ -6724,24 +7278,6 @@ proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.hasBed = fu }; -/** - * optional string notes = 5; - * @return {string} - */ -proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.getNotes = function() { - return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 5, "")); -}; - - -/** - * @param {string} value - * @return {!proto.services.tasks_svc.v1.GetPatientListResponse.Patient} returns this - */ -proto.services.tasks_svc.v1.GetPatientListResponse.Patient.prototype.setNotes = function(value) { - return jspb.Message.setProto3StringField(this, 5, value); -}; - - /** * repeated Task tasks = 6; * @return {!Array} @@ -8187,6 +8723,7 @@ proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient.toObject = functio var f, obj = { id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), + sex: jspb.Message.getFieldWithDefault(msg, 6, 0), room: (f = msg.getRoom()) && proto.services.tasks_svc.v1.GetRecentPatientsResponse.Room.toObject(includeInstance, f), bed: (f = msg.getBed()) && proto.services.tasks_svc.v1.GetRecentPatientsResponse.Bed.toObject(includeInstance, f), consistency: jspb.Message.getFieldWithDefault(msg, 5, "") @@ -8234,6 +8771,10 @@ proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient.deserializeBinaryF var value = /** @type {string} */ (reader.readString()); msg.setHumanReadableIdentifier(value); break; + case 6: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; case 3: var value = new proto.services.tasks_svc.v1.GetRecentPatientsResponse.Room; reader.readMessage(value,proto.services.tasks_svc.v1.GetRecentPatientsResponse.Room.deserializeBinaryFromReader); @@ -8291,6 +8832,13 @@ proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient.serializeBinaryToW f ); } + f = message.getSex(); + if (f !== 0.0) { + writer.writeEnum( + 6, + f + ); + } f = message.getRoom(); if (f != null) { writer.writeMessage( @@ -8353,6 +8901,24 @@ proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient.prototype.setHuman }; +/** + * optional libs.common.v1.Sex sex = 6; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 6, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient} returns this + */ +proto.services.tasks_svc.v1.GetRecentPatientsResponse.Patient.prototype.setSex = function(value) { + return jspb.Message.setProto3EnumField(this, 6, value); +}; + + /** * optional Room room = 3; * @return {?proto.services.tasks_svc.v1.GetRecentPatientsResponse.Room} @@ -8518,6 +9084,8 @@ proto.services.tasks_svc.v1.UpdatePatientRequest.toObject = function(includeInst id: jspb.Message.getFieldWithDefault(msg, 1, ""), humanReadableIdentifier: jspb.Message.getFieldWithDefault(msg, 2, ""), notes: jspb.Message.getFieldWithDefault(msg, 3, ""), + sex: jspb.Message.getFieldWithDefault(msg, 5, 0), + dateOfBirth: (f = msg.getDateOfBirth()) && libs_common_v1_types_pb.Date.toObject(includeInstance, f), consistency: jspb.Message.getFieldWithDefault(msg, 4, "") }; @@ -8567,6 +9135,15 @@ proto.services.tasks_svc.v1.UpdatePatientRequest.deserializeBinaryFromReader = f var value = /** @type {string} */ (reader.readString()); msg.setNotes(value); break; + case 5: + var value = /** @type {!proto.libs.common.v1.Sex} */ (reader.readEnum()); + msg.setSex(value); + break; + case 6: + var value = new libs_common_v1_types_pb.Date; + reader.readMessage(value,libs_common_v1_types_pb.Date.deserializeBinaryFromReader); + msg.setDateOfBirth(value); + break; case 4: var value = /** @type {string} */ (reader.readString()); msg.setConsistency(value); @@ -8621,6 +9198,21 @@ proto.services.tasks_svc.v1.UpdatePatientRequest.serializeBinaryToWriter = funct f ); } + f = /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getField(message, 5)); + if (f != null) { + writer.writeEnum( + 5, + f + ); + } + f = message.getDateOfBirth(); + if (f != null) { + writer.writeMessage( + 6, + f, + libs_common_v1_types_pb.Date.serializeBinaryToWriter + ); + } f = /** @type {string} */ (jspb.Message.getField(message, 4)); if (f != null) { writer.writeString( @@ -8721,6 +9313,79 @@ proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.hasNotes = function() }; +/** + * optional libs.common.v1.Sex sex = 5; + * @return {!proto.libs.common.v1.Sex} + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.getSex = function() { + return /** @type {!proto.libs.common.v1.Sex} */ (jspb.Message.getFieldWithDefault(this, 5, 0)); +}; + + +/** + * @param {!proto.libs.common.v1.Sex} value + * @return {!proto.services.tasks_svc.v1.UpdatePatientRequest} returns this + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.setSex = function(value) { + return jspb.Message.setField(this, 5, value); +}; + + +/** + * Clears the field making it undefined. + * @return {!proto.services.tasks_svc.v1.UpdatePatientRequest} returns this + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.clearSex = function() { + return jspb.Message.setField(this, 5, undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.hasSex = function() { + return jspb.Message.getField(this, 5) != null; +}; + + +/** + * optional libs.common.v1.Date date_of_birth = 6; + * @return {?proto.libs.common.v1.Date} + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.getDateOfBirth = function() { + return /** @type{?proto.libs.common.v1.Date} */ ( + jspb.Message.getWrapperField(this, libs_common_v1_types_pb.Date, 6)); +}; + + +/** + * @param {?proto.libs.common.v1.Date|undefined} value + * @return {!proto.services.tasks_svc.v1.UpdatePatientRequest} returns this +*/ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.setDateOfBirth = function(value) { + return jspb.Message.setWrapperField(this, 6, value); +}; + + +/** + * Clears the message field making it undefined. + * @return {!proto.services.tasks_svc.v1.UpdatePatientRequest} returns this + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.clearDateOfBirth = function() { + return this.setDateOfBirth(undefined); +}; + + +/** + * Returns whether this field is set. + * @return {boolean} + */ +proto.services.tasks_svc.v1.UpdatePatientRequest.prototype.hasDateOfBirth = function() { + return jspb.Message.getField(this, 6) != null; +}; + + /** * optional string consistency = 4; * @return {string} diff --git a/libs/hwdb/helper.go b/libs/hwdb/helper.go index 722e9d919..a6a3884a1 100644 --- a/libs/hwdb/helper.go +++ b/libs/hwdb/helper.go @@ -44,6 +44,20 @@ func TimeToDate(src time.Time) pgtype.Date { return pgtype.Date{Time: src.UTC(), Valid: true} } +func DateToTime(date pgtype.Date) *time.Time { + if date.Valid { + return &date.Time + } + return nil +} + +func TimePtrToDate(src *time.Time) pgtype.Date { + if src == nil { + return pgtype.Date{} + } + return TimeToDate(*src) +} + func PbToTimestamp(src *timestamppb.Timestamp) pgtype.Timestamp { if src == nil { return pgtype.Timestamp{Valid: false} diff --git a/libs/hwutil/types.go b/libs/hwutil/types.go index 4b6fb9781..be6872980 100644 --- a/libs/hwutil/types.go +++ b/libs/hwutil/types.go @@ -1,5 +1,7 @@ package hwutil +import "time" + // IntInterval should be lower-bound inclusive, upper-bound exclusive type IntInterval struct { Min *int `json:"min"` @@ -8,3 +10,8 @@ type IntInterval struct { // InclusiveIntInterval is a IntInterval where both Min and Max should be inclusive type InclusiveIntInterval IntInterval + +// TruncateTimeToDay is useful for proto/lib/common/v1/types' Date type +func TruncateTimeToDay(t time.Time) time.Time { + return time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) +} diff --git a/proto/libs/common/v1/types.proto b/proto/libs/common/v1/types.proto new file mode 100644 index 000000000..b07d5d288 --- /dev/null +++ b/proto/libs/common/v1/types.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; + +package libs.common.v1; + +import "google/protobuf/timestamp.proto"; + +option go_package = "gen/libs/common/v1"; + +message Date { + // information more precise than date information shall be disregarded by clients + google.protobuf.Timestamp date = 1; +} + +enum Sex { + SEX_UNSPECIFIED = 0; + SEX_FEMALE = 1; + SEX_MALE = 2; + SEX_DIVERSE = 3; +} diff --git a/proto/services/property_svc/v1/property_value_svc.proto b/proto/services/property_svc/v1/property_value_svc.proto index 61d7e4360..620fb7730 100644 --- a/proto/services/property_svc/v1/property_value_svc.proto +++ b/proto/services/property_svc/v1/property_value_svc.proto @@ -5,6 +5,7 @@ package services.property_svc.v1; import "services/property_svc/v1/types.proto"; import "google/protobuf/timestamp.proto"; import "libs/common/v1/conflict.proto"; +import "libs/common/v1/types.proto"; option go_package = "gen/services/property-svc/v1"; @@ -29,7 +30,7 @@ message AttachPropertyValueRequest{ string text_value = 3; // @gotags: validate:"required" // FIELD_TYPE_TEXT double number_value = 4; // FIELD_TYPE_NUMBER bool bool_value = 5; // FIELD_TYPE_CHECKBOX - Date date_value = 6; // FIELD_TYPE_DATE + libs.common.v1.Date date_value = 6; // FIELD_TYPE_DATE google.protobuf.Timestamp date_time_value = 7; // FIELD_TYPE_DATE_TIME string select_value = 8; // @gotags: validate:"uuid4" // FIELD_TYPE_SELECT, id of option MultiSelectValue multi_select_value = 9; // FIELD_TYPE_MULTI_SELECT @@ -94,7 +95,7 @@ message GetAttachedPropertyValuesResponse { string text_value = 6; // FIELD_TYPE_TEXT double number_value = 7; // FIELD_TYPE_NUMBER bool bool_value = 8; // FIELD_TYPE_CHECKBOX - Date date_value = 9; // FIELD_TYPE_DATE + libs.common.v1.Date date_value = 9; // FIELD_TYPE_DATE google.protobuf.Timestamp date_time_value = 10; // FIELD_TYPE_DATE_TIME SelectValueOption select_value = 11; // FIELD_TYPE_SELECT, id of option MultiSelectValue multi_select_value = 12; diff --git a/proto/services/tasks_svc/v1/patient_svc.proto b/proto/services/tasks_svc/v1/patient_svc.proto index dd394dbec..130f34a43 100644 --- a/proto/services/tasks_svc/v1/patient_svc.proto +++ b/proto/services/tasks_svc/v1/patient_svc.proto @@ -4,6 +4,7 @@ package services.tasks_svc.v1; import "services/tasks_svc/v1/types.proto"; import "libs/common/v1/conflict.proto"; +import "libs/common/v1/types.proto"; option go_package = "gen/services/tasks-svc/v1"; @@ -14,6 +15,8 @@ option go_package = "gen/services/tasks-svc/v1"; message CreatePatientRequest { string human_readable_identifier = 1; // @gotags: validate:"required" optional string notes = 2; + optional libs.common.v1.Sex sex = 3; + optional libs.common.v1.Date date_of_birth = 4; } message CreatePatientResponse { @@ -33,6 +36,9 @@ message GetPatientResponse { string id = 1; string human_readable_identifier = 2; string notes = 3; + libs.common.v1.Sex sex = 10; + optional libs.common.v1.Date date_of_birth = 11; + optional Room room = 7; optional Bed bed = 8; @@ -65,6 +71,9 @@ message GetPatientByBedResponse { string id = 1; string human_readable_identifier = 2; string notes = 3; + libs.common.v1.Sex sex = 6; + optional libs.common.v1.Date date_of_birth = 7; + string bed_id = 4; string consistency = 5; } @@ -84,7 +93,10 @@ message GetPatientsByWardResponse { string id = 1; string human_readable_identifier = 2; string notes = 3; + libs.common.v1.Sex sex = 6; + optional libs.common.v1.Date date_of_birth = 7; optional string bed_id = 4; + string consistency = 5; } } @@ -116,6 +128,7 @@ message GetPatientAssignmentByWardResponse { message Patient { string id = 1; string name = 2; + libs.common.v1.Sex sex = 4; string consistency = 3; } } @@ -134,6 +147,9 @@ message GetPatientDetailsResponse { string id = 1; string human_readable_identifier = 2; string notes = 3; + libs.common.v1.Sex sex = 9; + optional libs.common.v1.Date date_of_birth = 10; + repeated Task tasks = 4; optional Room room = 5; optional Bed bed = 6; @@ -201,10 +217,15 @@ message GetPatientListResponse { message Patient { string id = 1; string human_readable_identifier = 2; + + string notes = 5; + libs.common.v1.Sex sex = 8; + optional libs.common.v1.Date date_of_birth = 9; + Room room = 3; Bed bed = 4; - string notes = 5; repeated Task tasks = 6; + string consistency = 7; } @@ -253,6 +274,7 @@ message GetRecentPatientsResponse { message Patient { string id = 1; string human_readable_identifier = 2; + libs.common.v1.Sex sex = 6; optional Room room = 3; optional Bed bed = 4; string consistency = 5; @@ -268,6 +290,8 @@ message UpdatePatientRequest { string id = 1; // @gotags: validate:"uuid4" optional string human_readable_identifier = 2; optional string notes = 3; + optional libs.common.v1.Sex sex = 5; + optional libs.common.v1.Date date_of_birth = 6; optional string consistency = 4; // no conflict detection, if not provided } diff --git a/services/property-svc/internal/property-value/api/grpc.go b/services/property-svc/internal/property-value/api/grpc.go index 08c59cba1..ad2f1a78f 100644 --- a/services/property-svc/internal/property-value/api/grpc.go +++ b/services/property-svc/internal/property-value/api/grpc.go @@ -3,6 +3,7 @@ package api import ( "context" "fmt" + commonPb "gen/libs/common/v1" pb "gen/services/property_svc/v1" "hwes" "hwutil" @@ -220,8 +221,8 @@ func (s *PropertyValueGrpcService) GetAttachedPropertyValues( } case pnv.Value.DateValue != nil: res.Value = &pb.GetAttachedPropertyValuesResponse_Value_DateValue{ - DateValue: &pb.Date{ - Date: timestamppb.New(*pnv.Value.DateValue), + DateValue: &commonPb.Date{ + Date: timestamppb.New(hwutil.TruncateTimeToDay(*pnv.Value.DateValue)), }, } default: diff --git a/services/property-svc/internal/property-value/queries/v1/get_property_values_by_subject_id.go b/services/property-svc/internal/property-value/queries/v1/get_property_values_by_subject_id.go index 5df2824e9..aee4aa152 100644 --- a/services/property-svc/internal/property-value/queries/v1/get_property_values_by_subject_id.go +++ b/services/property-svc/internal/property-value/queries/v1/get_property_values_by_subject_id.go @@ -123,9 +123,7 @@ func NewGetRelevantPropertyValuesQueryHandler( func(dtV pgtype.Timestamp) time.Time { return dtV.Time }), - DateValue: hwutil.MapIf(row.DateValue.Valid, row.DateValue, func(dV pgtype.Date) time.Time { - return dV.Time - }), + DateValue: hwdb.DateToTime(row.DateValue), } } } diff --git a/services/tasks-svc/internal/patient/aggregate/actions.go b/services/tasks-svc/internal/patient/aggregate/actions.go index c452d76aa..fb99d2c7b 100644 --- a/services/tasks-svc/internal/patient/aggregate/actions.go +++ b/services/tasks-svc/internal/patient/aggregate/actions.go @@ -2,17 +2,25 @@ package aggregate import ( "context" + v1 "gen/libs/common/v1" + "time" patientEventsV1 "tasks-svc/internal/patient/events/v1" "github.com/google/uuid" ) -func (a *PatientAggregate) CreatePatient(ctx context.Context, humanReadableIdentifier string, notes string) error { +func (a *PatientAggregate) CreatePatient( + ctx context.Context, + humanReadableIdentifier string, + notes string, + sex v1.Sex, + dateOfBirth *time.Time, +) error { // The "Patient" entity is our main entity in this aggregate. // Therefore, we are using the same ID id := a.GetID() - event, err := patientEventsV1.NewPatientCreatedEvent(ctx, a, id, humanReadableIdentifier, notes) + event, err := patientEventsV1.NewPatientCreatedEvent(ctx, a, id, humanReadableIdentifier, notes, sex, dateOfBirth) if err != nil { return err } @@ -59,6 +67,22 @@ func (a *PatientAggregate) UpdateNotes(ctx context.Context, newNotes string) err return a.Apply(event) } +func (a *PatientAggregate) UpdateSex(ctx context.Context, sex v1.Sex) error { + event, err := patientEventsV1.NewSexUpdatedEvent(ctx, a, sex) + if err != nil { + return err + } + return a.Apply(event) +} + +func (a *PatientAggregate) UpdateDateOfBirth(ctx context.Context, dateOfBirth time.Time) error { + event, err := patientEventsV1.NewDateOfBirthUpdatedEvent(ctx, a, dateOfBirth) + if err != nil { + return err + } + return a.Apply(event) +} + func (a *PatientAggregate) ReadmitPatient(ctx context.Context) error { event, err := patientEventsV1.NewPatientReadmittedEvent(ctx, a) if err != nil { diff --git a/services/tasks-svc/internal/patient/aggregate/aggregate.go b/services/tasks-svc/internal/patient/aggregate/aggregate.go index 714f4abef..c3f747133 100644 --- a/services/tasks-svc/internal/patient/aggregate/aggregate.go +++ b/services/tasks-svc/internal/patient/aggregate/aggregate.go @@ -39,6 +39,8 @@ func (a *PatientAggregate) initEventListeners() { a.RegisterEventListener(patientEventsV1.BedUnsassigned, a.onBedUnassigned) a.RegisterEventListener(patientEventsV1.PatientDischarged, a.onPatientDischarged) a.RegisterEventListener(patientEventsV1.NotesUpdated, a.onNotesUpdated) + a.RegisterEventListener(patientEventsV1.SexUpdated, a.onSexUpdated) + a.RegisterEventListener(patientEventsV1.DateOfBirthUpdated, a.onDateOfBirthUpdated) a.RegisterEventListener(patientEventsV1.HumanReadableIdentifierUpdated, a.onHumanReadableIdentifierUpdated) a.RegisterEventListener(patientEventsV1.PatientReadmitted, a.onPatientReadmitted) a.RegisterEventListener(patientEventsV1.PatientDeleted, a.onPatientDeleted) @@ -55,6 +57,8 @@ func (a *PatientAggregate) onPatientCreated(evt hwes.Event) error { a.Patient.HumanReadableIdentifier = payload.HumanReadableIdentifier a.Patient.CreatedAt = evt.Timestamp a.Patient.UpdatedAt = evt.Timestamp + a.Patient.Sex = payload.Sex + a.Patient.DateOfBirth = payload.DateOfBirth return nil } @@ -99,6 +103,26 @@ func (a *PatientAggregate) onNotesUpdated(evt hwes.Event) error { return nil } +func (a *PatientAggregate) onSexUpdated(evt hwes.Event) error { + var payload patientEventsV1.SexUpdatedEvent + if err := evt.GetJSONData(&payload); err != nil { + return err + } + + a.Patient.Sex = payload.Sex + return nil +} + +func (a *PatientAggregate) onDateOfBirthUpdated(evt hwes.Event) error { + var payload patientEventsV1.DateOfBirthUpdatedEvent + if err := evt.GetJSONData(&payload); err != nil { + return err + } + + a.Patient.DateOfBirth = &payload.DateOfBirth + return nil +} + func (a *PatientAggregate) onHumanReadableIdentifierUpdated(evt hwes.Event) error { var payload patientEventsV1.HumanReadableIdentifierUpdatedEvent if err := evt.GetJSONData(&payload); err != nil { diff --git a/services/tasks-svc/internal/patient/aggregate/aggregate_test.go b/services/tasks-svc/internal/patient/aggregate/aggregate_test.go index 728eabe3e..f76cf6d48 100644 --- a/services/tasks-svc/internal/patient/aggregate/aggregate_test.go +++ b/services/tasks-svc/internal/patient/aggregate/aggregate_test.go @@ -3,8 +3,12 @@ package aggregate_test import ( "common/auth" "context" + v1 "gen/libs/common/v1" "hwes" "testing" + "time" + + "github.com/stretchr/testify/require" "github.com/google/uuid" @@ -34,6 +38,8 @@ func TestPatientAggregate_CreatePatient(t *testing.T) { patientHumanReadableIdentifier := t.Name() patientNotes := "test-notes" + sex := v1.Sex_SEX_DIVERSE + dateOfBirth := time.Now().UTC() patientAggregate := aggregate.NewPatientAggregate(patientID) @@ -44,17 +50,15 @@ func TestPatientAggregate_CreatePatient(t *testing.T) { patientID, patientHumanReadableIdentifier, patientNotes, + sex, + &dateOfBirth, ) }) - if patientAggregate.Patient.HumanReadableIdentifier != patientHumanReadableIdentifier { - t.Errorf("Patient humanReadableIdentifier: expected '%s' got '%s'", - patientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) - } - - if patientAggregate.Patient.Notes != patientNotes { - t.Errorf("Patient notes: expected '%s' got '%s'", patientNotes, patientAggregate.Patient.Notes) - } + require.Equal(t, patientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) + require.Equal(t, patientNotes, patientAggregate.Patient.Notes) + require.Equal(t, sex, patientAggregate.Patient.Sex) + require.Equal(t, dateOfBirth, *patientAggregate.Patient.DateOfBirth) } func TestPatientAggregate_UpdateNotes(t *testing.T) { @@ -77,20 +81,18 @@ func TestPatientAggregate_UpdateNotes(t *testing.T) { patientID, patientHumanReadableIdentifier, initialPatientNotes, + v1.Sex_SEX_UNSPECIFIED, + nil, ) }) - if patientAggregate.Patient.Notes != initialPatientNotes { - t.Errorf("Patient Notes: expected '%s' got '%s'", initialPatientNotes, patientAggregate.Patient.Notes) - } + require.Equal(t, initialPatientNotes, patientAggregate.Patient.Notes) MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { return patientEventsV1.NewNotesUpdatedEvent(ctx, patientAggregate, updatedPatientNotes) }) - if patientAggregate.Patient.Notes != updatedPatientNotes { - t.Errorf("Patient Notes: expected '%s' got '%s'", updatedPatientNotes, patientAggregate.Patient.Notes) - } + require.Equal(t, updatedPatientNotes, patientAggregate.Patient.Notes) } func TestPatientAggregate_UpdateHumanReadableIdentifier(t *testing.T) { @@ -112,13 +114,12 @@ func TestPatientAggregate_UpdateHumanReadableIdentifier(t *testing.T) { patientID, initialPatientHumanReadableIdentifier, "", + v1.Sex_SEX_UNSPECIFIED, + nil, ) }) - if patientAggregate.Patient.HumanReadableIdentifier != initialPatientHumanReadableIdentifier { - t.Errorf("Patient Notes: expected '%s' got '%s'", - initialPatientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) - } + require.Equal(t, initialPatientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { return patientEventsV1.NewHumanReadableIdentifierUpdatedEvent( @@ -127,11 +128,73 @@ func TestPatientAggregate_UpdateHumanReadableIdentifier(t *testing.T) { updatedPatientHumanReadableIdentifier, ) }) + require.Equal(t, updatedPatientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) +} - if patientAggregate.Patient.HumanReadableIdentifier != updatedPatientHumanReadableIdentifier { - t.Errorf("Patient Notes: expected '%s' got '%s'", - updatedPatientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) - } +func TestPatientAggregate_UpdateSex(t *testing.T) { + ctx := context.Background() + ctx = auth.ContextWithUserID(ctx, uuid.New()) + ctx = auth.ContextWithOrganizationID(ctx, uuid.New()) + + patientID := uuid.New() + + patientAggregate := aggregate.NewPatientAggregate(patientID) + + MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { + return patientEventsV1.NewPatientCreatedEvent( + ctx, + patientAggregate, + patientID, + t.Name(), + "", + v1.Sex_SEX_UNSPECIFIED, + nil, + ) + }) + + require.Equal(t, v1.Sex_SEX_UNSPECIFIED, patientAggregate.Patient.Sex) + + MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { + return patientEventsV1.NewSexUpdatedEvent( + ctx, + patientAggregate, + v1.Sex_SEX_DIVERSE, + ) + }) + require.Equal(t, v1.Sex_SEX_DIVERSE, patientAggregate.Patient.Sex) +} + +func TestPatientAggregate_UpdateDateOfBirth(t *testing.T) { + ctx := context.Background() + ctx = auth.ContextWithUserID(ctx, uuid.New()) + ctx = auth.ContextWithOrganizationID(ctx, uuid.New()) + + patientID := uuid.New() + + patientAggregate := aggregate.NewPatientAggregate(patientID) + + MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { + return patientEventsV1.NewPatientCreatedEvent( + ctx, + patientAggregate, + patientID, + t.Name(), + "", + v1.Sex_SEX_UNSPECIFIED, + nil, + ) + }) + + newDoB := time.Now().UTC() + + MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { + return patientEventsV1.NewDateOfBirthUpdatedEvent( + ctx, + patientAggregate, + newDoB, + ) + }) + require.Equal(t, newDoB, *patientAggregate.Patient.DateOfBirth) } func TestPatientAggregate_DischargeReadmitPatient(t *testing.T) { @@ -150,13 +213,12 @@ func TestPatientAggregate_DischargeReadmitPatient(t *testing.T) { patientID, patientHumanReadableIdentifier, "", + v1.Sex_SEX_UNSPECIFIED, + nil, ) }) - if patientAggregate.Patient.HumanReadableIdentifier != patientHumanReadableIdentifier { - t.Errorf("Patient humanReadableIdentifier: expected '%s' got '%s'", - patientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) - } + require.Equal(t, patientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { return patientEventsV1.NewPatientDischargedEvent(ctx, patientAggregate) @@ -193,31 +255,24 @@ func TestPatientAggregate_AssignUnassignBed(t *testing.T) { patientID, patientHumanReadableIdentifier, "", + v1.Sex_SEX_UNSPECIFIED, + nil, ) }) - if patientAggregate.Patient.HumanReadableIdentifier != patientHumanReadableIdentifier { - t.Errorf("Patient humanReadableIdentifier: expected '%s' got '%s'", - patientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) - } + require.Equal(t, patientHumanReadableIdentifier, patientAggregate.Patient.HumanReadableIdentifier) MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { return patientEventsV1.NewBedAssignedEvent(ctx, patientAggregate, newBedID) }) - if patientAggregate.Patient.BedID.UUID != newBedID { - t.Errorf("Patient BedID: expected '%s' got '%s'", - newBedID.String(), patientAggregate.Patient.BedID.UUID.String()) - } + require.Equal(t, newBedID, patientAggregate.Patient.BedID.UUID) MustApplyEvent(t, patientAggregate, func() (hwes.Event, error) { return patientEventsV1.NewBedUnassignedEvent(ctx, patientAggregate) }) - if patientAggregate.Patient.BedID.UUID != uuid.Nil { - t.Errorf("Patient BedID: expected '%s' got '%s'", - uuid.Nil.String(), patientAggregate.Patient.BedID.UUID.String()) - } + require.Equal(t, uuid.Nil, patientAggregate.Patient.BedID.UUID) } func TestPatientAggregate_DeletePatient(t *testing.T) { @@ -230,9 +285,14 @@ func TestPatientAggregate_DeletePatient(t *testing.T) { patientAggregate := aggregate.NewPatientAggregate(patientID) - if err := patientAggregate.CreatePatient(ctx, humanRI, notes); err != nil { - t.Error(err) - } + err := patientAggregate.CreatePatient( + ctx, + humanRI, + notes, + v1.Sex_SEX_UNSPECIFIED, + nil, + ) + require.NoError(t, err) if err := patientAggregate.DeletePatient(ctx); err != nil { t.Error(err) diff --git a/services/tasks-svc/internal/patient/api/grpc.go b/services/tasks-svc/internal/patient/api/grpc.go index 8de04d8be..36574217c 100644 --- a/services/tasks-svc/internal/patient/api/grpc.go +++ b/services/tasks-svc/internal/patient/api/grpc.go @@ -4,6 +4,7 @@ import ( "common" "common/hwerr" "context" + v1 "gen/libs/common/v1" pb "gen/services/tasks_svc/v1" "hwauthz" "hwauthz/commonperm" @@ -11,6 +12,9 @@ import ( "hwdb/locale" "hwes" "hwutil" + "time" + + "google.golang.org/protobuf/types/known/timestamppb" "github.com/google/uuid" zlog "github.com/rs/zerolog/log" @@ -54,8 +58,14 @@ func (s *PatientGrpcService) CreatePatient( log := zlog.Ctx(ctx) patientID := uuid.New() + var dateOfBirth *time.Time + if dob := req.GetDateOfBirth(); dob != nil { + asTime := dob.GetDate().AsTime() + dateOfBirth = &asTime + } + consistency, err := s.handlers.Commands.V1.CreatePatient( - ctx, patientID, req.GetHumanReadableIdentifier(), req.Notes) + ctx, patientID, req.GetHumanReadableIdentifier(), req.Notes, req.GetSex(), dateOfBirth) if err != nil { return nil, err } @@ -70,6 +80,16 @@ func (s *PatientGrpcService) CreatePatient( }, nil } +// formatDateOfBirth takes a dob column values and yields a suitable proto message +func formatDateOfBirth(dob *time.Time) *v1.Date { + if dob == nil { + return nil + } + return &v1.Date{ + Date: timestamppb.New(hwutil.TruncateTimeToDay(*dob)), + } +} + func (s *PatientGrpcService) GetPatient( ctx context.Context, req *pb.GetPatientRequest, @@ -126,6 +146,8 @@ func (s *PatientGrpcService) GetPatient( Id: patient.ID.String(), HumanReadableIdentifier: patient.HumanReadableIdentifier, Notes: patient.Notes, + Sex: patient.Sex, + DateOfBirth: formatDateOfBirth(patient.DateOfBirth), Room: roomRes, Bed: bedRes, Consistency: patient.Consistency, @@ -153,6 +175,8 @@ func (s *PatientGrpcService) GetPatientByBed( Id: patient.ID.String(), HumanReadableIdentifier: patient.HumanReadableIdentifier, Notes: patient.Notes, + Sex: patient.Sex, + DateOfBirth: formatDateOfBirth(patient.DateOfBirth), BedId: req.GetBedId(), Consistency: patient.Consistency, }, nil @@ -179,6 +203,8 @@ func (s *PatientGrpcService) GetPatientsByWard( Id: patient.ID.String(), HumanReadableIdentifier: patient.HumanReadableIdentifier, Notes: patient.Notes, + Sex: patient.Sex, + DateOfBirth: formatDateOfBirth(patient.DateOfBirth), BedId: hwutil.NullUUIDToStringPtr(patient.BedID), Consistency: patient.Consistency, } @@ -252,10 +278,12 @@ func (s *PatientGrpcService) GetPatientDetails( Id: patientWithDetails.ID.String(), HumanReadableIdentifier: patientWithDetails.HumanReadableIdentifier, Notes: patientWithDetails.Notes, + Sex: patientWithDetails.Sex, + DateOfBirth: formatDateOfBirth(patientWithDetails.DateOfBirth), Tasks: taskResponse, - IsDischarged: patientWithDetails.IsDischarged, Room: roomResponse, Bed: bedResponse, + IsDischarged: patientWithDetails.IsDischarged, Consistency: patientWithDetails.Consistency, }, nil } @@ -337,9 +365,11 @@ func (s *PatientGrpcService) GetPatientList( res = append(res, &pb.GetPatientListResponse_Patient{ Id: patientDetails.ID.String(), HumanReadableIdentifier: patientDetails.HumanReadableIdentifier, + Notes: patientDetails.Notes, + Sex: patientDetails.Sex, + DateOfBirth: formatDateOfBirth(patientDetails.DateOfBirth), Room: roomResponse, Bed: bedResponse, - Notes: patientDetails.Notes, Tasks: taskResponse, Consistency: patientDetails.Consistency, }) @@ -437,6 +467,7 @@ func (s *PatientGrpcService) GetRecentPatients( return &pb.GetRecentPatientsResponse_Patient{ Id: patient.ID.String(), HumanReadableIdentifier: patient.HumanReadableIdentifier, + Sex: patient.Sex, Room: roomRes, Bed: bedRes, Consistency: patient.Consistency, @@ -455,7 +486,14 @@ func (s *PatientGrpcService) UpdatePatient( return nil, err } - consistency, err := s.handlers.Commands.V1.UpdatePatient(ctx, patientID, req.HumanReadableIdentifier, req.Notes) + consistency, err := s.handlers.Commands.V1.UpdatePatient( + ctx, + patientID, + req.HumanReadableIdentifier, + req.Notes, + req.Sex, + req.DateOfBirth, + ) if err != nil { return nil, err } @@ -599,10 +637,11 @@ func (s *PatientGrpcService) GetPatientAssignmentByWard( Patient: hwutil.MapIf( bedWithPatient.Patient != nil, bedWithPatient.Patient, - func(row *models.PatientWithConsistency) pb.GetPatientAssignmentByWardResponse_Room_Bed_Patient { + func(row *models.PatientBaseWithConsistency) pb.GetPatientAssignmentByWardResponse_Room_Bed_Patient { return pb.GetPatientAssignmentByWardResponse_Room_Bed_Patient{ Id: bedWithPatient.Patient.ID.String(), Name: bedWithPatient.Patient.HumanReadableIdentifier, + Sex: bedWithPatient.Patient.Sex, Consistency: bedWithPatient.Patient.Consistency, } }), diff --git a/services/tasks-svc/internal/patient/commands/v1/create_patient.go b/services/tasks-svc/internal/patient/commands/v1/create_patient.go index 6bbf10837..1dcddecb3 100644 --- a/services/tasks-svc/internal/patient/commands/v1/create_patient.go +++ b/services/tasks-svc/internal/patient/commands/v1/create_patient.go @@ -3,10 +3,12 @@ package v1 import ( "common" "context" + v1 "gen/libs/common/v1" "hwauthz" "hwauthz/commonperm" "hwes" "hwes/errs" + "time" "tasks-svc/internal/patient/perm" @@ -20,6 +22,8 @@ type CreatePatientCommandHandler func( patientID uuid.UUID, humanReadableIdentifier string, notes *string, + sex v1.Sex, + dateOfBirth *time.Time, ) (common.ConsistencyToken, error) func NewCreatePatientCommandHandler(as hwes.AggregateStore, authz hwauthz.AuthZ) CreatePatientCommandHandler { @@ -28,6 +32,8 @@ func NewCreatePatientCommandHandler(as hwes.AggregateStore, authz hwauthz.AuthZ) patientID uuid.UUID, humanReadableIdentifier string, notes *string, + sex v1.Sex, + dateOfBirth *time.Time, ) (common.ConsistencyToken, error) { a := aggregate.NewPatientAggregate(patientID) @@ -53,7 +59,7 @@ func NewCreatePatientCommandHandler(as hwes.AggregateStore, authz hwauthz.AuthZ) finalNotes = *notes } - if err := a.CreatePatient(ctx, humanReadableIdentifier, finalNotes); err != nil { + if err := a.CreatePatient(ctx, humanReadableIdentifier, finalNotes, sex, dateOfBirth); err != nil { return 0, err } diff --git a/services/tasks-svc/internal/patient/commands/v1/update_patient.go b/services/tasks-svc/internal/patient/commands/v1/update_patient.go index 0fc7b1e5f..94b85c2a1 100644 --- a/services/tasks-svc/internal/patient/commands/v1/update_patient.go +++ b/services/tasks-svc/internal/patient/commands/v1/update_patient.go @@ -3,6 +3,7 @@ package v1 import ( "common" "context" + v1 "gen/libs/common/v1" "hwauthz" "hwauthz/commonperm" "hwes" @@ -19,6 +20,8 @@ type UpdatePatientCommandHandler func( patientID uuid.UUID, humanReadableIdentifier *string, notes *string, + sex *v1.Sex, + dateOfBirth *v1.Date, ) (common.ConsistencyToken, error) func NewUpdatePatientCommandHandler(as hwes.AggregateStore, authz hwauthz.AuthZ) UpdatePatientCommandHandler { @@ -27,6 +30,8 @@ func NewUpdatePatientCommandHandler(as hwes.AggregateStore, authz hwauthz.AuthZ) patientID uuid.UUID, humanReadableIdentifier *string, notes *string, + sex *v1.Sex, + dateOfBirth *v1.Date, ) (common.ConsistencyToken, error) { user := commonperm.UserFromCtx(ctx) check := hwauthz.NewPermissionCheck(user, perm.PatientCanUserUpdate, perm.Patient(patientID)) @@ -51,6 +56,18 @@ func NewUpdatePatientCommandHandler(as hwes.AggregateStore, authz hwauthz.AuthZ) } } + if sex != nil { + if err := a.UpdateSex(ctx, *sex); err != nil { + return 0, err + } + } + + if dateOfBirth != nil { + if err := a.UpdateDateOfBirth(ctx, dateOfBirth.Date.AsTime()); err != nil { + return 0, err + } + } + return as.Save(ctx, a) } } diff --git a/services/tasks-svc/internal/patient/events/v1/events.go b/services/tasks-svc/internal/patient/events/v1/events.go index 7a4d24ce0..26c5c1c7a 100644 --- a/services/tasks-svc/internal/patient/events/v1/events.go +++ b/services/tasks-svc/internal/patient/events/v1/events.go @@ -2,7 +2,9 @@ package v1 import ( "context" + v1 "gen/libs/common/v1" "hwes" + "time" "github.com/google/uuid" ) @@ -11,6 +13,8 @@ const ( PatientCreated = "PATIENT_CREATED_v1" HumanReadableIdentifierUpdated = "HUMAN_READABLE_IDENTIFIER_UPDATED_v1" NotesUpdated = "NOTES_UPDATED_v1" + SexUpdated = "SEX_UPDATED_v1" + DateOfBirthUpdated = "DATE_OF_BIRTH_UPDATED_v1" BedAssigned = "BED_ASSIGNED_v1" BedUnsassigned = "BED_UNASSIGNED_v1" PatientDischarged = "PATIENT_DISCHARGED_v1" @@ -19,9 +23,11 @@ const ( ) type PatientCreatedEvent struct { - ID string `json:"id"` - HumanReadableIdentifier string `json:"human_readable_identifier"` - Notes string `json:"notes"` + ID string `json:"id"` + HumanReadableIdentifier string `json:"human_readable_identifier"` + Notes string `json:"notes"` + Sex v1.Sex `json:"sex"` + DateOfBirth *time.Time `json:"date_of_birth"` } type HumanReadableIdentifierUpdatedEvent struct { @@ -34,6 +40,16 @@ type NotesUpdatedEvent struct { Notes string `json:"notes"` } +type SexUpdatedEvent struct { + PatientID string `json:"patient_id"` + Sex v1.Sex `json:"sex"` +} + +type DateOfBirthUpdatedEvent struct { + PatientID string `json:"patient_id"` + DateOfBirth time.Time `json:"date_of_birth"` +} + type BedAssignedEvent struct { BedID string `json:"bed_id"` } @@ -48,11 +64,15 @@ func NewPatientCreatedEvent( id uuid.UUID, humanReadableIdentifier string, notes string, + sex v1.Sex, + dateOfBirth *time.Time, ) (hwes.Event, error) { payload := PatientCreatedEvent{ ID: id.String(), HumanReadableIdentifier: humanReadableIdentifier, Notes: notes, + Sex: sex, + DateOfBirth: dateOfBirth, } return hwes.NewEvent(a, PatientCreated, hwes.WithContext(ctx), hwes.WithData(payload)) } @@ -76,6 +96,22 @@ func NewNotesUpdatedEvent(ctx context.Context, a hwes.Aggregate, notes string) ( return hwes.NewEvent(a, NotesUpdated, hwes.WithContext(ctx), hwes.WithData(payload)) } +func NewSexUpdatedEvent(ctx context.Context, a hwes.Aggregate, sex v1.Sex) (hwes.Event, error) { + payload := SexUpdatedEvent{ + PatientID: a.GetID().String(), + Sex: sex, + } + return hwes.NewEvent(a, SexUpdated, hwes.WithContext(ctx), hwes.WithData(payload)) +} + +func NewDateOfBirthUpdatedEvent(ctx context.Context, a hwes.Aggregate, dateOfBirth time.Time) (hwes.Event, error) { + payload := DateOfBirthUpdatedEvent{ + PatientID: a.GetID().String(), + DateOfBirth: dateOfBirth, + } + return hwes.NewEvent(a, DateOfBirthUpdated, hwes.WithContext(ctx), hwes.WithData(payload)) +} + func NewBedAssignedEvent(ctx context.Context, a hwes.Aggregate, bedID uuid.UUID) (hwes.Event, error) { payload := BedAssignedEvent{ BedID: bedID.String(), diff --git a/services/tasks-svc/internal/patient/models/patient.go b/services/tasks-svc/internal/patient/models/patient.go index c5f570309..601f4a1c3 100644 --- a/services/tasks-svc/internal/patient/models/patient.go +++ b/services/tasks-svc/internal/patient/models/patient.go @@ -1,20 +1,27 @@ package models import ( + v1 "gen/libs/common/v1" "time" "github.com/google/uuid" "tasks-svc/internal/task/models" ) -type Patient struct { +type PatientBase struct { ID uuid.UUID HumanReadableIdentifier string - Notes string - BedID uuid.NullUUID - IsDischarged bool - CreatedAt time.Time - UpdatedAt time.Time + Sex v1.Sex +} + +type Patient struct { + PatientBase + Notes string + BedID uuid.NullUUID + IsDischarged bool + CreatedAt time.Time + UpdatedAt time.Time + DateOfBirth *time.Time } type PatientWithConsistency struct { @@ -22,6 +29,11 @@ type PatientWithConsistency struct { Consistency string } +type PatientBaseWithConsistency struct { + PatientBase + Consistency string +} + type PatientDetails struct { PatientWithConsistency Tasks []*models.TaskWithConsistency @@ -44,7 +56,7 @@ type Room struct { type BedWithPatient struct { Bed - Patient *PatientWithConsistency + Patient *PatientBaseWithConsistency } type RoomWithBedsWithPatient struct { diff --git a/services/tasks-svc/internal/patient/projections/postgres-projection/patient_postgres_projection.go b/services/tasks-svc/internal/patient/projections/postgres-projection/patient_postgres_projection.go index d0f710498..fa31deb65 100644 --- a/services/tasks-svc/internal/patient/projections/postgres-projection/patient_postgres_projection.go +++ b/services/tasks-svc/internal/patient/projections/postgres-projection/patient_postgres_projection.go @@ -42,6 +42,8 @@ func (p *Projection) initEventListeners() { p.RegisterEventListener(patientEventsV1.BedUnsassigned, p.onBedUnassigned) p.RegisterEventListener(patientEventsV1.PatientDischarged, p.onPatientDischarged) p.RegisterEventListener(patientEventsV1.NotesUpdated, p.onNotesUpdated) + p.RegisterEventListener(patientEventsV1.SexUpdated, p.onSexUpdated) + p.RegisterEventListener(patientEventsV1.DateOfBirthUpdated, p.onDateOfBirthUpdated) p.RegisterEventListener(patientEventsV1.HumanReadableIdentifierUpdated, p.onHumanReadableIdentifierUpdated) p.RegisterEventListener(patientEventsV1.PatientReadmitted, p.onPatientReadmitted) p.RegisterEventListener(patientEventsV1.PatientDeleted, p.onPatientDeleted) @@ -71,6 +73,8 @@ func (p *Projection) onPatientCreated(ctx context.Context, evt hwes.Event) (*esd ID: patientID, HumanReadableIdentifier: payload.HumanReadableIdentifier, Notes: payload.Notes, + Sex: int32(payload.Sex), + DateOfBirth: hwdb.TimePtrToDate(payload.DateOfBirth), CreatedAt: hwdb.TimeToTimestamp(evt.Timestamp), UpdatedAt: hwdb.TimeToTimestamp(evt.Timestamp), Consistency: int64(evt.GetVersion()), //nolint:gosec @@ -160,6 +164,50 @@ func (p *Projection) onNotesUpdated(ctx context.Context, evt hwes.Event) (*esdb. return nil, nil } +func (p *Projection) onSexUpdated(ctx context.Context, evt hwes.Event) (*esdb.NackAction, error) { + log := zlog.Ctx(ctx) + + var payload patientEventsV1.SexUpdatedEvent + if err := evt.GetJSONData(&payload); err != nil { + log.Error().Err(err).Msg("unmarshal failed") + return hwutil.PtrTo(esdb.NackActionPark), err + } + + err := p.patientRepo.UpdatePatient(ctx, patientrepo.UpdatePatientParams{ + ID: evt.AggregateID, + Sex: hwutil.PtrTo(int32(payload.Sex)), + UpdatedAt: hwdb.TimeToTimestamp(evt.Timestamp), + Consistency: int64(evt.GetVersion()), //nolint:gosec + }) + if err := hwdb.Error(ctx, err); err != nil { + return hwutil.PtrTo(esdb.NackActionRetry), err + } + + return nil, nil +} + +func (p *Projection) onDateOfBirthUpdated(ctx context.Context, evt hwes.Event) (*esdb.NackAction, error) { + log := zlog.Ctx(ctx) + + var payload patientEventsV1.DateOfBirthUpdatedEvent + if err := evt.GetJSONData(&payload); err != nil { + log.Error().Err(err).Msg("unmarshal failed") + return hwutil.PtrTo(esdb.NackActionPark), err + } + + err := p.patientRepo.UpdatePatient(ctx, patientrepo.UpdatePatientParams{ + ID: evt.AggregateID, + DateOfBirth: hwdb.TimeToDate(payload.DateOfBirth), + UpdatedAt: hwdb.TimeToTimestamp(evt.Timestamp), + Consistency: int64(evt.GetVersion()), //nolint:gosec + }) + if err := hwdb.Error(ctx, err); err != nil { + return hwutil.PtrTo(esdb.NackActionRetry), err + } + + return nil, nil +} + func (p *Projection) onHumanReadableIdentifierUpdated(ctx context.Context, evt hwes.Event) (*esdb.NackAction, error) { log := zlog.Ctx(ctx) diff --git a/services/tasks-svc/internal/patient/queries/v1/get_all_patients_with_details.go b/services/tasks-svc/internal/patient/queries/v1/get_all_patients_with_details.go index 009225493..a49194d33 100644 --- a/services/tasks-svc/internal/patient/queries/v1/get_all_patients_with_details.go +++ b/services/tasks-svc/internal/patient/queries/v1/get_all_patients_with_details.go @@ -4,6 +4,7 @@ import ( "common" "common/auth" "context" + v1 "gen/libs/common/v1" pb "gen/services/tasks_svc/v1" "hwauthz" "hwauthz/commonperm" @@ -67,13 +68,17 @@ func NewGetAllPatientsWithDetailsQueryHandler(authz hwauthz.AuthZ) GetAllPatient patientDetail = &models.PatientDetails{ PatientWithConsistency: models.PatientWithConsistency{ Patient: models.Patient{ - ID: row.Patient.ID, - HumanReadableIdentifier: row.Patient.HumanReadableIdentifier, - Notes: row.Patient.Notes, - BedID: row.Patient.BedID, - IsDischarged: row.Patient.IsDischarged, - CreatedAt: row.Patient.CreatedAt.Time, - UpdatedAt: row.Patient.UpdatedAt.Time, + PatientBase: models.PatientBase{ + ID: row.Patient.ID, + HumanReadableIdentifier: row.Patient.HumanReadableIdentifier, + Sex: v1.Sex(row.Patient.Sex), + }, + Notes: row.Patient.Notes, + BedID: row.Patient.BedID, + IsDischarged: row.Patient.IsDischarged, + CreatedAt: row.Patient.CreatedAt.Time, + UpdatedAt: row.Patient.UpdatedAt.Time, + DateOfBirth: hwdb.DateToTime(row.Patient.DateOfBirth), }, Consistency: common.ConsistencyToken(row.Patient.Consistency).String(), //nolint:gosec }, diff --git a/services/tasks-svc/internal/patient/queries/v1/get_patient_assignment_by_ward.go b/services/tasks-svc/internal/patient/queries/v1/get_patient_assignment_by_ward.go index 8f98c8cbb..a491ad0fc 100644 --- a/services/tasks-svc/internal/patient/queries/v1/get_patient_assignment_by_ward.go +++ b/services/tasks-svc/internal/patient/queries/v1/get_patient_assignment_by_ward.go @@ -56,12 +56,13 @@ func NewGetPatientAssignmentByWardQueryHandler(authz hwauthz.AuthZ) GetPatientAs if bedRow.RoomID != roomRow.RoomID || !bedRow.BedID.Valid { return nil } - var patient *models.PatientWithConsistency + var patient *models.PatientBaseWithConsistency if bedRow.PatientID.Valid { - patient = &models.PatientWithConsistency{ - Patient: models.Patient{ + patient = &models.PatientBaseWithConsistency{ + PatientBase: models.PatientBase{ ID: bedRow.PatientID.UUID, HumanReadableIdentifier: *bedRow.PatientHumanReadableIdentifier, + Sex: 0, }, Consistency: common.ConsistencyToken(roomRow.RoomConsistency).String(), //nolint:gosec } diff --git a/services/tasks-svc/internal/patient/queries/v1/get_patient_by_bed.go b/services/tasks-svc/internal/patient/queries/v1/get_patient_by_bed.go index e3156148d..cc490d376 100644 --- a/services/tasks-svc/internal/patient/queries/v1/get_patient_by_bed.go +++ b/services/tasks-svc/internal/patient/queries/v1/get_patient_by_bed.go @@ -3,6 +3,7 @@ package v1 import ( "common" "context" + v1 "gen/libs/common/v1" "hwauthz" "hwauthz/commonperm" "hwdb" @@ -50,13 +51,17 @@ func NewGetPatientByBedQueryHandler(authz hwauthz.AuthZ) GetPatientByBedQueryHan // return return &models.PatientWithConsistency{ Patient: models.Patient{ - ID: patient.ID, - HumanReadableIdentifier: patient.HumanReadableIdentifier, - Notes: patient.Notes, - BedID: patient.BedID, - IsDischarged: patient.IsDischarged, - CreatedAt: patient.CreatedAt.Time, - UpdatedAt: patient.UpdatedAt.Time, + PatientBase: models.PatientBase{ + ID: patient.ID, + HumanReadableIdentifier: patient.HumanReadableIdentifier, + Sex: v1.Sex(patient.Sex), + }, + Notes: patient.Notes, + BedID: patient.BedID, + IsDischarged: patient.IsDischarged, + CreatedAt: patient.CreatedAt.Time, + UpdatedAt: patient.UpdatedAt.Time, + DateOfBirth: hwdb.DateToTime(patient.DateOfBirth), }, Consistency: common.ConsistencyToken(patient.Consistency).String(), //nolint:gosec }, nil diff --git a/services/tasks-svc/internal/patient/queries/v1/get_patient_with_details_by_id.go b/services/tasks-svc/internal/patient/queries/v1/get_patient_with_details_by_id.go index b3b1cc45f..e64f25c40 100644 --- a/services/tasks-svc/internal/patient/queries/v1/get_patient_with_details_by_id.go +++ b/services/tasks-svc/internal/patient/queries/v1/get_patient_with_details_by_id.go @@ -3,6 +3,7 @@ package v1 import ( "common" "context" + v1 "gen/libs/common/v1" "hwauthz" "hwauthz/commonperm" "hwdb" @@ -69,13 +70,17 @@ func NewGetPatientWithDetailsByIDQueryHandler( return &models.PatientDetails{ PatientWithConsistency: models.PatientWithConsistency{ Patient: models.Patient{ - ID: patientRes.ID, - HumanReadableIdentifier: patientRes.HumanReadableIdentifier, - Notes: patientRes.Notes, - BedID: patientRes.BedID, - IsDischarged: patientRes.IsDischarged, - CreatedAt: patientRes.CreatedAt.Time, - UpdatedAt: patientRes.UpdatedAt.Time, + PatientBase: models.PatientBase{ + ID: patientRes.ID, + HumanReadableIdentifier: patientRes.HumanReadableIdentifier, + Sex: v1.Sex(patientRes.Sex), + }, + Notes: patientRes.Notes, + BedID: patientRes.BedID, + IsDischarged: patientRes.IsDischarged, + CreatedAt: patientRes.CreatedAt.Time, + UpdatedAt: patientRes.UpdatedAt.Time, + DateOfBirth: hwdb.DateToTime(patientRes.DateOfBirth), }, Consistency: common.ConsistencyToken(patientRes.Consistency).String(), //nolint:gosec }, diff --git a/services/tasks-svc/internal/patient/queries/v1/get_patients_by_ward.go b/services/tasks-svc/internal/patient/queries/v1/get_patients_by_ward.go index 3f82f2163..17006c19f 100644 --- a/services/tasks-svc/internal/patient/queries/v1/get_patients_by_ward.go +++ b/services/tasks-svc/internal/patient/queries/v1/get_patients_by_ward.go @@ -3,6 +3,7 @@ package v1 import ( "common" "context" + v1 "gen/libs/common/v1" "hwauthz" "hwauthz/commonperm" "hwdb" @@ -49,13 +50,17 @@ func NewGetPatientsByWardQueryHandler(authz hwauthz.AuthZ) GetPatientsByWardQuer } res := &models.PatientWithConsistency{ Patient: models.Patient{ - ID: patient.ID, - HumanReadableIdentifier: patient.HumanReadableIdentifier, - Notes: patient.Notes, - BedID: patient.BedID, - IsDischarged: patient.IsDischarged, - CreatedAt: patient.CreatedAt.Time, - UpdatedAt: patient.UpdatedAt.Time, + PatientBase: models.PatientBase{ + ID: patient.ID, + HumanReadableIdentifier: patient.HumanReadableIdentifier, + Sex: v1.Sex(patient.Sex), + }, + Notes: patient.Notes, + BedID: patient.BedID, + IsDischarged: patient.IsDischarged, + CreatedAt: patient.CreatedAt.Time, + UpdatedAt: patient.UpdatedAt.Time, + DateOfBirth: hwdb.DateToTime(patient.DateOfBirth), }, Consistency: common.ConsistencyToken(patient.Consistency).String(), //nolint:gosec } diff --git a/services/tasks-svc/migrations/000030_sex_dob.down.sql b/services/tasks-svc/migrations/000030_sex_dob.down.sql new file mode 100644 index 000000000..804474fd5 --- /dev/null +++ b/services/tasks-svc/migrations/000030_sex_dob.down.sql @@ -0,0 +1,2 @@ +ALTER TABLE patients DROP COLUMN IF EXISTS date_of_birth; +ALTER TABLE patients DROP COLUMN IF EXISTS sex; diff --git a/services/tasks-svc/migrations/000030_sex_dob.up.sql b/services/tasks-svc/migrations/000030_sex_dob.up.sql new file mode 100644 index 000000000..942f64d08 --- /dev/null +++ b/services/tasks-svc/migrations/000030_sex_dob.up.sql @@ -0,0 +1,2 @@ +ALTER TABLE patients ADD COLUMN IF NOT EXISTS sex integer NOT NULL DEFAULT 0; +ALTER TABLE patients ADD COLUMN IF NOT EXISTS date_of_birth date; diff --git a/services/tasks-svc/repos/bed-repo/models.go b/services/tasks-svc/repos/bed-repo/models.go index 43695d99b..40bd6c072 100644 --- a/services/tasks-svc/repos/bed-repo/models.go +++ b/services/tasks-svc/repos/bed-repo/models.go @@ -26,6 +26,8 @@ type Patient struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date } type Room struct { diff --git a/services/tasks-svc/repos/patient-repo/models.go b/services/tasks-svc/repos/patient-repo/models.go index e37ab182e..fd9184a70 100644 --- a/services/tasks-svc/repos/patient-repo/models.go +++ b/services/tasks-svc/repos/patient-repo/models.go @@ -26,6 +26,8 @@ type Patient struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date } type Room struct { diff --git a/services/tasks-svc/repos/patient-repo/patient_repo.sql.go b/services/tasks-svc/repos/patient-repo/patient_repo.sql.go index fa1b8cff0..33f2382d8 100644 --- a/services/tasks-svc/repos/patient-repo/patient_repo.sql.go +++ b/services/tasks-svc/repos/patient-repo/patient_repo.sql.go @@ -14,14 +14,16 @@ import ( const createPatient = `-- name: CreatePatient :exec INSERT INTO patients - (id, human_readable_identifier, notes, created_at, updated_at, consistency, organization_id) -VALUES ($1, $2, $3, $4, $5, $6, $7) + (id, human_readable_identifier, notes, sex, date_of_birth, created_at, updated_at, consistency, organization_id) +VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) ` type CreatePatientParams struct { ID uuid.UUID HumanReadableIdentifier string Notes string + Sex int32 + DateOfBirth pgtype.Date CreatedAt pgtype.Timestamp UpdatedAt pgtype.Timestamp Consistency int64 @@ -33,6 +35,8 @@ func (q *Queries) CreatePatient(ctx context.Context, arg CreatePatientParams) er arg.ID, arg.HumanReadableIdentifier, arg.Notes, + arg.Sex, + arg.DateOfBirth, arg.CreatedAt, arg.UpdatedAt, arg.Consistency, @@ -52,7 +56,7 @@ func (q *Queries) DeletePatient(ctx context.Context, id uuid.UUID) error { const getAllPatientsWithTasksBedAndRoom = `-- name: GetAllPatientsWithTasksBedAndRoom :many SELECT - patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, + patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, patients.sex, patients.date_of_birth, tasks.id as task_id, tasks.name as task_name, tasks.description as task_description, @@ -118,6 +122,8 @@ func (q *Queries) GetAllPatientsWithTasksBedAndRoom(ctx context.Context, organiz &i.Patient.IsDischarged, &i.Patient.Consistency, &i.Patient.OrganizationID, + &i.Patient.Sex, + &i.Patient.DateOfBirth, &i.TaskID, &i.TaskName, &i.TaskDescription, @@ -147,7 +153,7 @@ func (q *Queries) GetAllPatientsWithTasksBedAndRoom(ctx context.Context, organiz } const getPatientByBed = `-- name: GetPatientByBed :one -SELECT patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id +SELECT patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, patients.sex, patients.date_of_birth FROM patients WHERE bed_id = $1 LIMIT 1 @@ -166,13 +172,15 @@ func (q *Queries) GetPatientByBed(ctx context.Context, bedID uuid.NullUUID) (Pat &i.IsDischarged, &i.Consistency, &i.OrganizationID, + &i.Sex, + &i.DateOfBirth, ) return i, err } const getPatientWithBedAndRoom = `-- name: GetPatientWithBedAndRoom :one SELECT - patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, + patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, patients.sex, patients.date_of_birth, beds.name as bed_name, beds.consistency as bed_consistency, rooms.id as room_id, @@ -196,6 +204,8 @@ type GetPatientWithBedAndRoomRow struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date BedName *string BedConsistency *int64 RoomID uuid.NullUUID @@ -217,6 +227,8 @@ func (q *Queries) GetPatientWithBedAndRoom(ctx context.Context, patientID uuid.U &i.IsDischarged, &i.Consistency, &i.OrganizationID, + &i.Sex, + &i.DateOfBirth, &i.BedName, &i.BedConsistency, &i.RoomID, @@ -229,7 +241,7 @@ func (q *Queries) GetPatientWithBedAndRoom(ctx context.Context, patientID uuid.U const getPatientsByWard = `-- name: GetPatientsByWard :many SELECT - patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id + patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, patients.sex, patients.date_of_birth FROM patients JOIN beds ON patients.bed_id = beds.id JOIN rooms ON beds.room_id = rooms.id @@ -255,6 +267,8 @@ func (q *Queries) GetPatientsByWard(ctx context.Context, wardID uuid.UUID) ([]Pa &i.IsDischarged, &i.Consistency, &i.OrganizationID, + &i.Sex, + &i.DateOfBirth, ); err != nil { return nil, err } @@ -272,7 +286,9 @@ SET human_readable_identifier = coalesce($2, human_readable_identifier), notes = coalesce($3, notes), updated_at = coalesce($4, updated_at), is_discharged = coalesce($5, is_discharged), - consistency = $6 + sex = coalesce($6, sex), + date_of_birth = coalesce($7, date_of_birth), + consistency = $8 WHERE id = $1 ` @@ -282,6 +298,8 @@ type UpdatePatientParams struct { Notes *string UpdatedAt pgtype.Timestamp IsDischarged *bool + Sex *int32 + DateOfBirth pgtype.Date Consistency int64 } @@ -292,6 +310,8 @@ func (q *Queries) UpdatePatient(ctx context.Context, arg UpdatePatientParams) er arg.Notes, arg.UpdatedAt, arg.IsDischarged, + arg.Sex, + arg.DateOfBirth, arg.Consistency, ) return err diff --git a/services/tasks-svc/repos/patient_repo.sql b/services/tasks-svc/repos/patient_repo.sql index 6b2446e35..b930f0483 100644 --- a/services/tasks-svc/repos/patient_repo.sql +++ b/services/tasks-svc/repos/patient_repo.sql @@ -1,7 +1,7 @@ -- name: CreatePatient :exec INSERT INTO patients - (id, human_readable_identifier, notes, created_at, updated_at, consistency, organization_id) -VALUES ($1, $2, $3, $4, $5, $6, $7); + (id, human_readable_identifier, notes, sex, date_of_birth, created_at, updated_at, consistency, organization_id) +VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9); -- name: UpdatePatient :exec UPDATE patients @@ -9,6 +9,8 @@ SET human_readable_identifier = coalesce(sqlc.narg('human_readable_identfier'), notes = coalesce(sqlc.narg('notes'), notes), updated_at = coalesce(sqlc.narg('updated_at'), updated_at), is_discharged = coalesce(sqlc.narg('is_discharged'), is_discharged), + sex = coalesce(sqlc.narg('sex'), sex), + date_of_birth = coalesce(sqlc.narg('date_of_birth'), date_of_birth), consistency = @consistency WHERE id = $1; diff --git a/services/tasks-svc/repos/room-repo/models.go b/services/tasks-svc/repos/room-repo/models.go index e19d28db6..e6012948a 100644 --- a/services/tasks-svc/repos/room-repo/models.go +++ b/services/tasks-svc/repos/room-repo/models.go @@ -26,6 +26,8 @@ type Patient struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date } type Room struct { diff --git a/services/tasks-svc/repos/task-repo/models.go b/services/tasks-svc/repos/task-repo/models.go index 81b36610c..4313fee9b 100644 --- a/services/tasks-svc/repos/task-repo/models.go +++ b/services/tasks-svc/repos/task-repo/models.go @@ -26,6 +26,8 @@ type Patient struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date } type Room struct { diff --git a/services/tasks-svc/repos/task-repo/task_repo.sql.go b/services/tasks-svc/repos/task-repo/task_repo.sql.go index fc571cefb..9689565fe 100644 --- a/services/tasks-svc/repos/task-repo/task_repo.sql.go +++ b/services/tasks-svc/repos/task-repo/task_repo.sql.go @@ -108,7 +108,7 @@ func (q *Queries) DeleteTask(ctx context.Context, id uuid.UUID) error { const getTaskWithPatientById = `-- name: GetTaskWithPatientById :many SELECT tasks.id, tasks.name, tasks.description, tasks.status, tasks.assigned_user_id, tasks.patient_id, tasks.public, tasks.created_by, tasks.due_at, tasks.created_at, tasks.consistency, - patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, + patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, patients.sex, patients.date_of_birth, subtasks.id as subtask_id, subtasks.name as subtask_name, subtasks.done as subtask_done, @@ -158,6 +158,8 @@ func (q *Queries) GetTaskWithPatientById(ctx context.Context, id uuid.UUID) ([]G &i.Patient.IsDischarged, &i.Patient.Consistency, &i.Patient.OrganizationID, + &i.Patient.Sex, + &i.Patient.DateOfBirth, &i.SubtaskID, &i.SubtaskName, &i.SubtaskDone, @@ -176,7 +178,7 @@ func (q *Queries) GetTaskWithPatientById(ctx context.Context, id uuid.UUID) ([]G const getTasksWithPatientByAssignee = `-- name: GetTasksWithPatientByAssignee :many SELECT tasks.id, tasks.name, tasks.description, tasks.status, tasks.assigned_user_id, tasks.patient_id, tasks.public, tasks.created_by, tasks.due_at, tasks.created_at, tasks.consistency, - patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, + patients.id, patients.human_readable_identifier, patients.notes, patients.bed_id, patients.created_at, patients.updated_at, patients.is_discharged, patients.consistency, patients.organization_id, patients.sex, patients.date_of_birth, subtasks.id as subtask_id, subtasks.name as subtask_name, subtasks.done as subtask_done, @@ -226,6 +228,8 @@ func (q *Queries) GetTasksWithPatientByAssignee(ctx context.Context, assignedUse &i.Patient.IsDischarged, &i.Patient.Consistency, &i.Patient.OrganizationID, + &i.Patient.Sex, + &i.Patient.DateOfBirth, &i.SubtaskID, &i.SubtaskName, &i.SubtaskDone, diff --git a/services/tasks-svc/repos/task-template-repo/models.go b/services/tasks-svc/repos/task-template-repo/models.go index e8255f515..faf63eb72 100644 --- a/services/tasks-svc/repos/task-template-repo/models.go +++ b/services/tasks-svc/repos/task-template-repo/models.go @@ -26,6 +26,8 @@ type Patient struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date } type Room struct { diff --git a/services/tasks-svc/repos/ward-repo/models.go b/services/tasks-svc/repos/ward-repo/models.go index 91b252380..4d9885004 100644 --- a/services/tasks-svc/repos/ward-repo/models.go +++ b/services/tasks-svc/repos/ward-repo/models.go @@ -26,6 +26,8 @@ type Patient struct { IsDischarged bool Consistency int64 OrganizationID uuid.UUID + Sex int32 + DateOfBirth pgtype.Date } type Room struct { diff --git a/services/tasks-svc/schema.sql b/services/tasks-svc/schema.sql index 27e4b37e3..49d6fd8b6 100644 --- a/services/tasks-svc/schema.sql +++ b/services/tasks-svc/schema.sql @@ -59,7 +59,9 @@ CREATE TABLE public.patients ( updated_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL, is_discharged boolean DEFAULT false NOT NULL, consistency bigint DEFAULT 0 NOT NULL, - organization_id uuid NOT NULL + organization_id uuid NOT NULL, + sex integer DEFAULT 0 NOT NULL, + date_of_birth date ); diff --git a/services/tasks-svc/stories/PatientCRUD_test.go b/services/tasks-svc/stories/PatientCRUD_test.go index 0dc970b1f..7900138e8 100644 --- a/services/tasks-svc/stories/PatientCRUD_test.go +++ b/services/tasks-svc/stories/PatientCRUD_test.go @@ -2,6 +2,7 @@ package stories import ( "context" + v1 "gen/libs/common/v1" pb "gen/services/tasks_svc/v1" "hwauthz" "hwauthz/commonperm" @@ -12,12 +13,63 @@ import ( "testing" "time" + "google.golang.org/protobuf/types/known/timestamppb" + "github.com/google/uuid" zlog "github.com/rs/zerolog/log" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) +// nowTuple yields time.Now() wrapped in a v1.Date, and a rounded-to-date copy as Timestamp +func nowTuple() (*v1.Date, *timestamppb.Timestamp) { + now := time.Now() + y, m, d := now.Date() + exact := &v1.Date{Date: timestamppb.New(now)} + trunc := timestamppb.New(time.Date(y, m, d, 0, 0, 0, 0, time.UTC)) + return exact, trunc +} + +func TestCreatePatient(t *testing.T) { + ctx := context.Background() + patientClient := patientServiceClient() + + // + // create new patient + // + + hrI := t.Name() + " patient" + notes := "A " + t.Name() + " patient" + sex := v1.Sex_SEX_DIVERSE + + dob, expDob := nowTuple() + + createRes, err := patientClient.CreatePatient(ctx, &pb.CreatePatientRequest{ + HumanReadableIdentifier: hrI, + Notes: ¬es, + Sex: &sex, + DateOfBirth: dob, + }) + require.NoError(t, err, "could not create patient") + + hwtesting.WaitForProjectionsToSettle() + + patientID := createRes.GetId() + + // + // get new patient + // + + getPatientRes, err := patientClient.GetPatient(ctx, &pb.GetPatientRequest{Id: patientID}) + require.NoError(t, err, "could not get after creation") + + assert.Equal(t, hrI, getPatientRes.GetHumanReadableIdentifier()) + assert.Equal(t, notes, getPatientRes.GetNotes()) + assert.Equal(t, createRes.GetConsistency(), getPatientRes.GetConsistency()) + assert.Equal(t, sex, getPatientRes.GetSex()) + assert.Equal(t, expDob, getPatientRes.DateOfBirth.Date) +} + func TestCreateUpdateGetPatient(t *testing.T) { ctx := context.Background() @@ -30,6 +82,8 @@ func TestCreateUpdateGetPatient(t *testing.T) { createReq := &pb.CreatePatientRequest{ HumanReadableIdentifier: t.Name() + " patient", Notes: hwutil.PtrTo("A " + t.Name() + " patient"), + Sex: nil, + DateOfBirth: nil, } createRes, err := patientClient.CreatePatient(ctx, createReq) require.NoError(t, err, "could not create patient") @@ -48,14 +102,20 @@ func TestCreateUpdateGetPatient(t *testing.T) { assert.Equal(t, createReq.GetHumanReadableIdentifier(), getPatientRes.GetHumanReadableIdentifier()) assert.Equal(t, createReq.GetNotes(), getPatientRes.GetNotes()) assert.Equal(t, createRes.GetConsistency(), getPatientRes.GetConsistency()) + assert.Equal(t, v1.Sex_SEX_UNSPECIFIED, getPatientRes.GetSex()) + assert.Nil(t, getPatientRes.DateOfBirth) // // update patient // + dateOfBirth := time.Now().UTC().Round(time.Hour * 24) updateReq := &pb.UpdatePatientRequest{ Id: patientID, HumanReadableIdentifier: hwutil.PtrTo(t.Name() + " patient 1"), + Notes: hwutil.PtrTo(t.Name() + " Notes"), + Sex: hwutil.PtrTo(v1.Sex_SEX_DIVERSE), + DateOfBirth: &v1.Date{Date: timestamppb.New(dateOfBirth)}, Consistency: &getPatientRes.Consistency, } updateRes, err := patientClient.UpdatePatient(ctx, updateReq) @@ -72,6 +132,8 @@ func TestCreateUpdateGetPatient(t *testing.T) { assert.Equal(t, updateReq.GetHumanReadableIdentifier(), getPatientRes.GetHumanReadableIdentifier()) assert.Equal(t, updateRes.GetConsistency(), getPatientRes.GetConsistency()) + assert.Equal(t, updateReq.GetSex(), getPatientRes.GetSex()) + assert.Equal(t, updateReq.GetDateOfBirth().Date.AsTime(), getPatientRes.GetDateOfBirth().Date.AsTime()) // // discharge patient @@ -184,9 +246,13 @@ func TestGetPatientByBed(t *testing.T) { roomID, _ := prepareRoom(t, ctx, wardID, "") bedID, _ := prepareBed(t, ctx, roomID, "") + dob, expDob := nowTuple() + createReq := &pb.CreatePatientRequest{ HumanReadableIdentifier: t.Name() + " patient", Notes: hwutil.PtrTo("A " + t.Name() + " patient"), + Sex: hwutil.PtrTo(v1.Sex_SEX_DIVERSE), + DateOfBirth: dob, } createRes, err := patientClient.CreatePatient(ctx, createReq) require.NoError(t, err, "could not create patient") @@ -214,6 +280,8 @@ func TestGetPatientByBed(t *testing.T) { assert.Equal(t, createReq.GetHumanReadableIdentifier(), getRes.GetHumanReadableIdentifier()) assert.Equal(t, createReq.GetNotes(), getRes.GetNotes()) assert.Equal(t, assRes.GetConsistency(), getRes.GetConsistency()) + assert.Equal(t, *createReq.Sex, getRes.GetSex()) + assert.Equal(t, expDob, getRes.DateOfBirth.Date) } func TestGetPatientsByWard(t *testing.T) { @@ -230,9 +298,13 @@ func TestGetPatientsByWard(t *testing.T) { bedID1, _ := prepareBed(t, ctx, roomID, "1") bedID2, _ := prepareBed(t, ctx, roomID, "2") + dob, expDob := nowTuple() + createReq1 := &pb.CreatePatientRequest{ HumanReadableIdentifier: t.Name() + " patient 1", Notes: hwutil.PtrTo("A " + t.Name() + " patient"), + Sex: hwutil.PtrTo(v1.Sex_SEX_DIVERSE), + DateOfBirth: dob, } createRes1, err := patientClient.CreatePatient(ctx, createReq1) require.NoError(t, err, "could not create patient") @@ -290,12 +362,16 @@ func TestGetPatientsByWard(t *testing.T) { assert.Equal(t, createReq1.HumanReadableIdentifier, patient1.HumanReadableIdentifier) assert.Equal(t, *createReq1.Notes, patient1.Notes) assert.Equal(t, assRes1.Consistency, patient1.Consistency) + assert.Equal(t, *createReq1.Sex, patient1.GetSex()) + assert.Equal(t, expDob, patient1.DateOfBirth.Date) assert.Equal(t, createRes2.Id, patient2.Id) assert.Equal(t, &bedID2, patient2.BedId) assert.Equal(t, createReq2.HumanReadableIdentifier, patient2.HumanReadableIdentifier) assert.Equal(t, *createReq2.Notes, patient2.Notes) assert.Equal(t, assRes2.Consistency, patient2.Consistency) + assert.Equal(t, v1.Sex_SEX_UNSPECIFIED, patient2.GetSex()) + assert.Nil(t, patient2.DateOfBirth) } func TestGetPatientAssignmentByWard(t *testing.T) { @@ -548,9 +624,13 @@ func TestGetPatientDetails(t *testing.T) { roomID, _ := prepareRoom(t, ctx, wardID, "") bedID, _ := prepareBed(t, ctx, roomID, "") + dob, expDob := nowTuple() + createReq := &pb.CreatePatientRequest{ HumanReadableIdentifier: t.Name() + " patient", Notes: hwutil.PtrTo("A " + t.Name() + " patient"), + Sex: hwutil.PtrTo(v1.Sex_SEX_DIVERSE), + DateOfBirth: dob, } createRes, err := patientClient.CreatePatient(ctx, createReq) require.NoError(t, err, "could not create patient") @@ -619,6 +699,8 @@ func TestGetPatientDetails(t *testing.T) { assert.Equal(t, createRes.Id, getRes.Id) assert.Equal(t, createReq.GetHumanReadableIdentifier(), getRes.GetHumanReadableIdentifier()) assert.Equal(t, createReq.GetNotes(), getRes.GetNotes()) + assert.Equal(t, *createReq.Sex, getRes.Sex) + assert.Equal(t, expDob, getRes.DateOfBirth.Date) assert.Len(t, getRes.GetTasks(), len(suffixMap)) assert.Subset(t, taskIds, hwutil.Map(getRes.GetTasks(), func(tsk *pb.GetPatientDetailsResponse_Task) string {